实战一(上):通过一段ID生成器代码, 学习如何发现代码质量问题

2020-12-02  本文已影响0人  _River_

    ID生成器需求背景:标识哪些日志是需要属于同一个请求的;

    Java中可以  存储在请求的上下文(context)的Servlet线程中的ThreadLocal 或者 Slf4j日志框架中MDC中;

   常规checklist?

    目录设置是否合理、模块划分是否清晰、代码结构是否满足“高内聚、松耦合”?

    是否遵循经典的设计原则和设计思想(SOLID、DRY、KISS、YAGNI、LOD 等)?

    设计模式是否应用得当?是否有过度设计?

    代码是否容易扩展?如果要添加新功能,是否容易实现?

    代码是否可以复用?是否可以复用已有的项目代码或类库?是否有重复造轮子?

    代码是否容易测试?单元测试是否全面覆盖了各种正常和异常的情况?

    代码是否易读?是否符合编码规范(比如命名和注释是否恰当、代码风格是否一致等)?

    业务需求checklist:

    代码是否实现了预期的业务需求?逻辑是否正确?

    是否处理了各种异常情况?

    日志打印是否得当?是否方便 debug 排查问题?

    接口是否易用?

    是否支持幂等、事务等?

    代码是否存在并发问题?是否线程安全?

    性能是否有优化空间,比如,SQL、算法是否可以优化?

    是否有安全漏洞?比如输入输出校验是否全面?

上一篇 下一篇

猜你喜欢

热点阅读