目录设置是否合理、模块划分是否清晰?
是否容易扩展?添加新功能,是否容易实现?
代码是否可以复用?是否可以复用已有的项目代码或类库?是否有重复造轮子?
代码是否容易测试?单元测试是否全面覆盖了各种正常和异常的情况?
代码是否易读?是否符合编码规范?
是否遵循经典的设计原则和思想?
代码是否实现了预期的业务需求?
代码逻辑是否正确?是否处理了各种异常?
日志打印是否得当?是否方便debug排查问题?
接口是否易用?
代码是否存在并发问题?线程是否安全?
性能是否有优化的空间?
是否有安全漏洞?输入输出校验是否全面?
SOLID:
SRP (单一职责原则)
OCP (开闭原则)
LSP (里式替换原则)
ISP (接口隔离原则)和 IOC (依赖反转原则)
KISS:保持简单
YAGNI:不要过度设计
DRY:不要重复
LOD:迪米特法则(不该有的依赖,不要依赖,要最小接口,不要最大实现)