关于代码
合理换行
合理空行
写注释和更新注释
最小变量作用域
关于方法
突出主流程
典型案例-badcase
void doSomething(...){ if (? == null ) { throw new Exception(); } if (a == "" ) { a = "abc" + name; } List l = new List(); for (i in array) { result = aService.aservice(i); if (result == 1 ) { l.add(result); } } bService.bservice(l); ...... } |
Icon
1. 主流程和分支流程冗杂
2. 方法篇幅巨大
3. 非常难以阅读
典型案例-改进
void doSomething(...){ // 1. 校验参数 verifyParameter(...); // 2. 调用a服务 List l = handleA(...); // 3. 调用b服务 handleB(l); // 4. 其他处理 ...... } void verifyParameter(...) { ...... } void handleA(...) { ...... } void handleB(...) { ...... } |
Icon
clean code里面建议
1. 一个类不要超过50行
2. 一个方法不要超过5行
OK,我承认这个有点激进,但是根据经验稍微放宽标准之后是都能做到的
1. 一个类不要超过200行
2. 一个方法不要超过20行
(针对绝大多数case,一定会出现反例,具体问题具体分析)
相信我,都能做到,只是需要一点耐心和脑筋
起个合适的名字
Icon
我们不要最牛的,不要最怪的
我们要的是最“合适”的
注意区分:trim,trimToNull,trimToEmpty
强烈推荐无副作用的方法
关于类
注意类和包的层次
从类开始一次只专注一件事
合理使用继承
方便阅读
Icon
写代码当然要能执行,但是写能执行的代码很容易,我们不纠结一次
我们强调的是写容易阅读的代码
1. 好的代码应该能“自解释”,这需要你有良好的结构/命名/符合通用的设计思路
2. 不好理解的部分才需要注释
3. 最可怕的是写了注释别人都理解不了