编写业务逻辑代码-清晰可维护是很重要的

最近经常做业务逻辑代码review的工作,发现各种风格的代码,其中有一种是封装和抽象做的非常的多,代码层次非常的深入,表面给人感觉是:牛逼的代码。但是从清晰度和可维护性来说,还是不推荐这么做。 这种代码出现问题后,很难定位哪里出现问题 后续别人维护起来也相当困难 每看一个简单的case,都要跟踪很久 写ut也相当麻烦 我个人认为编写业务逻辑代码还是要从可读性入手,轻松的...
阅读(2984) 评论(2)

缓存外部系统接口返回信息的方案

概述在一个大的系统当中,通常会切分成多个子系统,子系统与子系统之间可以通过微服务、http接口或者mq等来相互通讯。假设有这样一种场景,A系统需要调用B系统的f1 接口,获取数据后再向前端系统输出。 前端系统通常所承受的并发量是非常大的,也就是说A系统的接口需要有很高的qps。这个时候我们需要缓存B系统接口的输出,以便提高A系统接口的响应速度。方案一 让缓存保持新鲜我们可以把B系统接口返回的数据存...
阅读(364) 评论(0)

java垃圾回收算法之-分代收集

概述这种算法,根据对象的存活周期的不同将内存划分成几块,新生代和老年代,这样就可以根据各个年代的特点采用最适当的收集算法。可以用抓重点的思路来理解这个算法。 新生代对象朝生夕死,对象数量多,只要重点扫描这个区域,那么就可以大大提高垃圾收集的效率。另外老年代对象存储久,无需经常扫描老年代,避免扫描导致的开销。新生代在新生代,每次垃圾收集器都发现有大批对象死去,只有少量存活,采用复制算法,只需要付出...
阅读(531) 评论(2)

java垃圾回收算法之-coping复制

之前的java垃圾回收算法之-标记清除 会导致内存碎片。下文的介绍的coping算法可以解决内存碎片问题。概述如果jvm使用了coping算法,一开始就会将可用内存分为两块,from域和to域, 每次只是使用from域,to域则空闲着。当from域内存不够了,开始执行GC操作,这个时候,会把from域存活的对象拷贝到to域,然后直接把from域进行内存清理。 应用场景coping算法一般是使用在新...
阅读(1144) 评论(0)

java垃圾回收算法之-标记__清除_压缩

之前写过的一篇java垃圾回收算法之-标记清除 ,这个算法有个缺点就是造成内存碎片,存在不连续的空间,这样会导致申请较大空间的时候,又需要进行垃圾回收。下面介绍一下标记-清除-压缩算法,可以避免内存碎片。空白部分是不连续的。概述这个算法的标记清除阶段,跟java垃圾回收算法之-标记清除 中介绍的是一样的,而对于压缩阶段,它的工作就是移动所有的可达对象到堆内存的同一个区域中,使他们紧凑的排列在一起,从...
阅读(428) 评论(0)

给Java说句公道话

王垠还是蛮有料的,部分文章值得深入看,本人博客也会引入一些牛人的好文章。给java说句公道话...
阅读(312) 评论(0)

center os 安装mysql5.6

软件 MySQL-server-5.6.13-1.el6.x86_64.rpm MySQL-client-5.6.13-1.el6.x86_64.rpm 安装命令 rpm -ivh MySQL-server-5.6.13-1.el6.x86_64.rpm rpm -ivh MySQL-client-5.6.13-1.el6.x86_64.rpm 启动mysql/etc/rc.d/init.d/mys...
阅读(754) 评论(0)

java垃圾回收算法之-标记清除

java垃圾回收算法之-引用计数器,这个算法其中一个优点便是,实时性,只要对象的引用计数器的值为0,则立刻回收。接下来介绍的标记清除算法,当对象的引用计数器的值为0时,不会立刻被回收的。概念介绍root对象在标记清除算法中,会把如下对象称之为root对象 被栈中的变量(栈中存的是对象的引用)所引用的对象 被static变量引用的对象 可访问的对象如果栈中有一个变量a引用了一个对象,那么该对象是可访问...
阅读(1697) 评论(0)
    个人资料
    • 访问:318786次
    • 积分:3484
    • 等级:
    • 排名:第9907名
    • 原创:118篇
    • 转载:5篇
    • 译文:0篇
    • 评论:163条
    博客专栏