ID生成器需求背景:标识哪些日志是需要属于同一个请求的;
Java中可以 存储在请求的上下文(context)的Servlet线程中的ThreadLocal 或者 Slf4j日志框架中MDC中;
常规checklist?
目录设置是否合理、模块划分是否清晰、代码结构是否满足“高内聚、松耦合”?
是否遵循经典的设计原则和设计思想(SOLID、DRY、KISS、YAGNI、LOD 等)?
设计模式是否应用得当?是否有过度设计?
代码是否容易扩展?如果要添加新功能,是否容易实现?
代码是否可以复用?是否可以复用已有的项目代码或类库?是否有重复造轮子?
代码是否容易测试?单元测试是否全面覆盖了各种正常和异常的情况?
代码是否易读?是否符合编码规范(比如命名和注释是否恰当、代码风格是否一致等)?
业务需求checklist:
代码是否实现了预期的业务需求?逻辑是否正确?
是否处理了各种异常情况?
日志打印是否得当?是否方便 debug 排查问题?
接口是否易用?
是否支持幂等、事务等?
代码是否存在并发问题?是否线程安全?
性能是否有优化空间,比如,SQL、算法是否可以优化?
是否有安全漏洞?比如输入输出校验是否全面?
网友评论