代码质量保证

本文分为四节如:如何提高代码的可读性、一般异常的处理机制、JVM内存管理机制、并发控制

 

一、如何提高代码的可读性

最佳实践:

  • 看thinging in java和effective in java 感觉这两本书非常经典,尤其是第一本书需要反复的看几遍才能够理解里面的真谛,而第二本书主要是一些编程实践,可以在工作当中一天学习一两个法则,这个也非常关键
  • 内功练习好了,可以pratice,这个在工作中等项目快结束了,同事之间进行code review我感觉是对自己代码的提升非常大,因为几个人的思维视野可以指导你的坏代码。一定要互相code review哦。。。
  • 有时候代码的提升需要阅读别人的代码,不知道大家有没有发现对于优雅代码的理论知识已经足够了,但是自己写代码的时候为了赶工期或者是遇见复杂的业务,自己没有设计好,这样致使自己的代码很多if else,方法非常庞大或者是自己在开发当中碰到比较纠结的地方不知道如何处理。呵呵呵 自己是有这样的体会,如果有这样的情况,有这样的纠结,可以参见自己项目组中大牛的代码,看看人家对于复杂业务是如何设计代码的。比如说:自己遇见一个非常复杂的业务,该如何处理,可以考虑利用业务的规则引擎,将共有的抽象出来,利用模版模式和工厂模式解决这样复杂的业务场景。
  • 有一个特别重要的提升代码的能力,那就是jdk源代码;千万不要忘记这里的源代码,大家可以看看java.util.*,java.lang.*,java.io.*等等,即可以学习数据结构(java集合类),强烈推荐里面的底层是怎么实现。
  • 呵呵 说道这里可以推荐一个经典的开源框架spring,学习IOC和AOP的思想,还有里面经典的设计模式等等

                   还有其他的方法大家可以探讨哦。。。

 

二、一般异常的处理机制

 


代码质量保证_第1张图片
 上面基本异常继承体系,下面对于异常应该尽量避免的几点:

 

  • 丢弃异常或者不处理又抛出异常
  • 异常处理忘记回收资源,比如:数据库链接、socket、IO等等
  • 不指定具体异常,即把所有的异常当作Exception做处理
  • 过于庞大的Try,这样会影响堆栈空间占用
  • 不处理自己能处理的异常,也就是在自己的业务层应该能处理的异常但是还是抛出给其他方法处理

下面是提倡异常处理的三个方法:

 

  • 提供完整的异常信息
  • 异常日志帮助分析问题但是利用开源包的时候一定要注意logger.isDebug方法使用能够提高性能
  • 不往外抛出异常

三、内存管理

 

下面是java堆的内层结构:

 


代码质量保证_第2张图片
 下面对于堆的内层模型需要掌握到什么程度呢?

  1. 需要知道堆中内存各个区域,以及参数调整
  2. 几种GC算法,每种GC算法使用的场景是最好的
  3. 自己写程序,让每个区域都OutOfMemoryError,如你会写让你的Perm直接OutOfMemory吗?以及其他空间OutOFMemoryError吗?
  4. 你会写让你的java对象永远存放在你的so或者s1区域吗?
  5. 自动调节停留s0或s1区域的次数
  6. 如何让你的java对象发生小GC的时候,就复制到Old区域吗?等等里面的水很深的哦

 

你可能感兴趣的:(代码)