读阿里巴巴泰山版《java开发手册》总结(3)

写在前面

这里接上一篇博客上篇博客,前几日又看了几页,这里总结一下。

代码规范篇

并发处理

  • 1.【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。
  • 2.【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。
  • 3.【强制】 线程资源必须通过线程池提供,不允许在应用中自行创建线程。
  • 4.【强制】 SimpleDateFormat是线程不安全的类,一般不要定义为static变量,如果定义为static,必须加锁,或者使用DateUtils工具类。
  • 5.【强制】 对多个资源、数据库表、对象同时加锁时,需要保持一致的加锁顺序,否则可能会造成死锁。
  • 6.【推荐】 避免Random实例被多线程使用,虽然共享该实例是线程安全的,但会因竞争同一seed而导致性能下降。
  • 7.【参考】 ThreadLocal对象使用static修饰,ThreadLocal无法将解决共享对象的更新问题。

控制语句

  • 1.【强制】 在一个switch块内,每个case要么通过continue/break/return等来终止,要么注释说明程序将继续执行到哪一个case为止;在一个switch块内,都必须包含一个default语句并且放在最后,即使它什么代码也没有。
  • 2.【强制】当switch括号内的变量类型为String并且此变量为外部参数时,必须先进行null判断。
  • 3.【强制】 在if/else/while/for/do语句中必须使用大括号。
  • 4.【强制】 在高并发场景中,避免使用“等于”判断作为中断或退出的条件。
  • 5.【推荐】 当某个方法的代码行超过10行时,return/throw等中断逻辑的右大括号后加一个空行。
  • 6.【推荐】 表达异常的分支时,少用if-else方式。
  • 7.【推荐】 避免使用取反逻辑运算符

注释规范

  • 1.【强制】 类、类属性、类方法的注释必须使用javadoc注释,使用/**内容*/格式,不得使用//xxx方式。
  • 2.【强制】 所有的抽象方法(包括接口中的方法)必须要用javadoc注释、除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。
  • 3.【强制】 所有的类都必须添加创建者和创建日期。
  • 4.【推荐】 代码修改的同时,注释也要进行对应的修改,尤其是参数、返回值、异常、核心逻辑等的修改。

其他

  • 1.【强制】 在使用正则表达式的时,利用好其预编译功能,可以有效加快正则匹配速度。
  • 2.【强制】 避免使用Apache BeanUtils进行属性的copy
  • 3.【强制】 后台传输给页面的变量必须加$!{var}——中间的感叹号。
  • 4.【推荐】 不要在视图模版中加入任何复杂的逻辑。
  • 5.【推荐】 及时清理不再使用的代码段或配置信息

总结

到这里代码规范部分就看完了。剩下的部分待我对java了解更深刻后再来看吧。