可扩展性

  •  是否可以快速的支持新的迭代?

  •  SOLID原则

单一职责原则(Single Responsibility) 开闭原则(Open Closed) 里氏代换原则(Liskov Substitution) 接口隔离原原则(Interface Segregation) 依赖倒置原则(Dependency Inversion)

 

可维护性

  •  团队认知

如果项目交接,他人能够快速了解代码意图吗?

  •  编码规范

PHP 编码规范 https://psr.phphub.org/

  •  持续迭代

如果后续功能迭代,能够快速支持且不影响现有功能或者其他模块吗?

  •  类库复用

  •  设计模式

  •  过时用法

     

 

性能

整体执行耗时

  •  空间

按需加载,节省内存

 
  •  时间

死循环 无穷递归 外部系统依赖 死锁

 

安全

  •  输入输出校检

  •  异常处理

  •  边界处理(日期、数组等)

  •  敏感信息

用户隐私

  •  权限设置

日志

  •  关键路径埋点

外部系统调用 敏感操作

  •  指标纬度

记录时间 日志级别 日志标识 请求体 响应体 用户id 用户ip 服务器ip 会话id 文件行数

  •  是否旁路

  •  级别开关

监控

  •  关键路径埋点

  •  指标纬度

耗时 成功/失败率 失败状态码

  •  是否旁路

评审方式

 

日常迭代

  •  技术负责人评审

  •  每日SVN评审变更点

  •  合并时变更点周知全员

自动评审

 

评审会议

  •  code在线评审

  •  随机抽取最近提交

  •  非指名提出建议

  •  记录到知识库并跟进落地

版本计划

  • 出具评审报告

  • PM责任制