Back to Vjtools

《阿里Java开发手册》定制纪录

docs/standard/ali.md

latest9.7 KB
Original Source

《阿里Java开发手册》定制纪录

只记录较大的改动,对更多条目内容的重新组织与扩写,则未一一冗述。

(一) 命名规约

对应 阿里规范《命名风格》一章

VIP 规范阿里规范修改
13. 变量、参数重名覆盖新增规则
1. 禁止拼音缩写2. 严禁使用拼音与英文混合的方式改写规则
3. 禁用其他编程语言风格的前缀和后缀1. 代码中的命名均不能以下划线或美元符号开始扩写规则,把其他语言的啰嗦都禁止掉
4. 命名的好坏,在于其“模糊度”11. 为了达到代码自解释的目标扩写规则,参考《Clean Code》的更多例子
6. 常量命名全部大写5.常量名大写扩写规则
7. 类型与中括号紧挨相连来定义数组删除规则,非命名风格,也不重要
13. 接口类中的方法和成员变量不要加任何修饰符号移动规则,非命名风格,移到类设计
16. 各层命名规约删除规则,各公司有自己的习惯

(二) 格式规约

对应 阿里规范《代码格式》一章

VIP 规范阿里规范修改
1. 项目组统一的代码格式模板规则1-8用IDE模版代替逐条描述
同时对Tab/空格不做硬性规定
3. 用小括号来限定运算优先级新增规则
4. 类内方法定义的顺序新增规则
5. 通过空行进行逻辑分段11. 不同逻辑、不同语义改写规则
6. 避免IDE格式化新增规则
10.单个方法行数不超过80行删除规则,非格式规约,移动方法设计
11.没有必要增加若干空格来对齐删除规则,现在很少人这么做

(三) 注释规约

对应 阿里规范《注释规约》一章

VIP 规范阿里规范修改
2. 删除空注释,无意义注释增加规则
7. JavaDoc中不要大量使用HTML标签和转义字符增加规则
1. 注释的基本要求9. 对于注释的要求扩写规则
4.避免创建人的注释3.所有的类都必须添加创建者冲突规则
2.所有的抽象方法必须用Javadoc注释删除规则,因为规则2不强制,并入规则1
4.方法内部单行注释,使用//注释删除规则,区别不大不强求
5. 所有的枚举类型字段必须要有注释删除规则,因为规则2不强制

(四) 方法设计


(五) 类设计

对应 阿里规范《OOP规范》一章

VIP 规范阿里规范修改
2.减少类之间的依赖增加规则
3.定义变量与方法参数时,尽量使用接口增加规则
4.类的长度度量增加规则
5.Builder模式增加规则
8.静态方法不能被覆写增加规则
9.静态方法的访问原则扩写规则
10.内部类原则增加规则
12-14.hashCode,equals,toString的规则增加规则
16.总是移除无用属性、方法与参数增加规则
18.【推荐】得墨忒耳法则增加规则
3. 提倡同学们尽量不用可变参数编程删除规则
9. 定义DO/DTO/VO等POJO类时,不要设定任何属性默认值删除规则
10. 序列化类新增属性时,请不要修改serialVersionUID字段删除规则
13. 使用索引访问用String的split方法时删除规则
19. 慎用Object的clone方法来拷贝对象删除规则
规则4,5移到《方法规约》
规则6移到《通用设计》
规则7,8,17移到《基础类型》
规则14,15移到《格式规约》

(六) 控制语句

对应 阿里规范《控制语句》一章

VIP 规范阿里规范修改
4.布尔表达式中的运算符个数不超过4个扩写规则
5.善用三目运算符增加规则
6.能造成短路概率较大的逻辑放前面增加规则
10.能用while循环实现的代码,就不用do-while循环增加规则
3. 在高并发场景中,避免使用 ”等于”作为条件删除规则
8. 接口入参保护删除规则
9. 下列情形,需要进行参数校验移到《方法规约》
10. 下列情形,不需要进行参数校移到《方法规约》

(七) 基本类型与字符串


(八) 集合处理

对应 阿里规范《集合处理》一章

VIP 规范阿里规范修改
2. foreach语法遍历增加规则
7. 长生命周期的集合增加规则
8. 并发集合增加规则
9. 泛型的通配符增加规则
10. List, List<?>List<Object>的选择增加规则
11. EnumMap增加规则
2. ArrayList的subList结果删除规则
6. 泛型通配符删除规则
12.合理利用好集合的有序性删除规则
13.利用Set元素唯一的特性删除规则
12.Array 与 List互转的使用集合转数组的方法,必须使用集合的toArray某位老大的测试,new String[0]也不错

(九) 并发处理: 并发与多线程

对应 阿里规范《并发处理》一章

VIP 规范阿里规范修改
1. 指定线程名扩写规则
4. 正确停止线程扩写规则
5. 编写可中断的Runnable增加规则
6. Runnable中必须捕获一切异常9.多线程并行处理定时任务扩写规则
7. 全局变量的线程安全扩写规则
10. 选择分离锁, 分散锁甚至无锁的数据结构增加规则
13. volatile修饰符,AtomicXX系列的正确使用扩写规则
8.并发修改同一记录时,需要加锁删除规则
10.使用CountDownLatch进行异步转同步操作删除规则
14.HashMap在容量不够进行resize移到《集合规约》一章
14. 延时初始化的正确写法12.双重检查锁冲突规则

(十) 异常处理

对应 阿里规范《异常处理》一章

VIP 规范阿里规范修改
2.在特定场合,避免每次构造异常增加规则
5.异常抛出的原则增加规则
6.异常捕获的原则增加规则
7.异常处理的原则增加规则
8.捕获异常与抛异常,必须是完全匹配删除规则
12.对于公司外的开放接口必须使用“错误码”删除规则
13.DRY原则删除规则,为什么会出现在这章,太著名了
9.返回值可以为null移到《方法设计》一章
10. 【推荐】防止NPE,是程序员的基本修养拆开到各章
11.避免直接抛出RuntimeException规则冲突

(十一) 日志规约

对应 阿里规范《日志规约》一章

VIP 规范阿里规范修改
4.尽量使用异步日志增加规则
5.禁止使用System.out()增加规则
6.禁止配置日志框架打印日志打印时的类名,行号等信息增加规则
2.日志文件推荐至少保存15天删除规则
3.应用中的扩展日志命名方式删除规则
6.异常信息应该包括两类信息移到《异常处理》
2.合理使用使用占位符4.对trace/debug/info级别的日志使用占位符还是要判断日志是否必然输出,
并强调条件判断与占位符之间的差别

(十二) 其他规约

保留 阿里规范《常量定义》一章的规则1

VIP 规范阿里规范修改
规则2-4删除规则
规则5. 如果变量值仅在一个固定范围内变化用enum类型来定义移到《基本类型》

保留 阿里规范《其他》一章的规则7

VIP 规范阿里规范修改
规则2-4,6-8删除规则
规则1. 在使用正则表达式时,利用好其预编译功移到《基本类型》
  • 规则3,4,5,6,7均为新增规则