1. issue 和 设计文档:
完整描述问题现象和需求;
代码开发前现有明确的设计,设计文档要求达到文档交给别人也能照着开发完成的标准;
所有设计到的逻辑和接口都进行讨论,不遗漏;
复杂/多线程的逻辑 对于数据正确性要有充分论证;
---
2. 代码风格:
1. 函数,变量命名规范可读性、代码整体可读性
2. 注释是完整标准的英文句子,第一个字母大写
3. 不要有中文
4. 代码缩进符合 code style
5. 不要有测试 log
6. 正常的日志输出格式要统一
7. 必要的地方添加 TODO
---
3. 函数:
1. 重复的代码要进行抽象
2. 固定的值,设置为常量
3. 实现的逻辑是否有已知的内外部库可以替代
4. 实现逻辑是否过于复杂,有其他简洁实现的方式;是否有其他类似实现,实现方式/风格是否统一。
5. 设计:分层设计,模块划分
---
4. 程序健壮性:
1. 是否有必要的单元测试,单测覆盖度
2. 参数校验
3. 是否有兼容性问题
---
5. 扩展性:
1. 抽象,善用设计模式、接口等
避免以下问题:
1. 写好了方法,后来发现这个方法好像不够用,又回头去改方法。
2. 写好了功能,其他人要求这里改xxx,又去大量改动原有代码
---
6. 正确性:
1. 复杂的逻辑,需要提供设计、论证说明
2. 并发场景,要有事务/锁的控制,一致性,变量的原子性
---
文档不断完善中,自查/review 过程中遇到的 case 不局限于上面内容。