有意义的命名
-
名副其实:名称不需要注释补充就可见其含义、用途。避免功能迭代后方法已经变了但名称还没变
-
避免误导:比如名字是xxList,但并不是一个list
-
做有意义的区分:比如ProductInfo和ProductData,从名字上看不出区别
-
使用读的出来的名字:避免过分缩写,如yyds
-
使用可搜索的名字:比如xxxConsumer,xxxEnum
-
避免思维映射:不要让别人把你的名字翻译成他们熟悉的名字
-
类名:名词
-
方法名:动词
-
每个概念对应一个名字:比如获取多个对象用list做前缀,获取单个对象用get做前缀
- add、save、insert、query、get、select、list
-
尽量用术语:计算机、数学、专业领域术语
-
别用双关词:add
具体实践
- 枚举Enum结尾
- 工具类Utils结尾
- 设计模式相关的类,如Factory结尾、Proxy结尾
- 接口实现类Impl结尾
- 消费者Consumer结尾
- 校验方法valid开头
- 异步方法Async结尾
- map命名keyValueMap
函数
- 短小:20行最佳
- 只做一件事:单一职责
- 使用描述性的名词:不要怕命名太长
- 函数参数:入参超过3个最好封装成类
- 别重复自己:消除重复代码
- 先把函数写出来,再规范化
具体实践
- 注意for循环内的逻辑,避免出现循环RPC调用
- 方法逻辑修改的同时,考虑方法名是不是也要修改
- 事务方法内不要调用外部接口
注释
-
注释不能美化糟糕的代码:代码还是重写吧
-
类、类属性、类方法的注释必须使用 Javadoc 规范:不写IDEA会有提示
-
好注释:
- 提供信息、解释意图、警示、阐释、todo注释
-
坏注释:
- 啰嗦、多余、误导性、废话
格式
-
垂直距离
- 变量声明应该尽可能靠近使用位置
- 实体变量应该放在类的顶部声明
- 相关的函数应该放在一起
- 函数的排列顺序保持其相互调用的顺序
- 通过空行分隔不同逻辑,提高可读性
-
水平位置
- 一行代码尽量短,不超过100 - 120 个字符
- 用空格将相关性弱的分开
写完代码整理一下:IDEA整理代码快捷键 option+command+L