可扩展性
-
是否可以快速的支持新的迭代?
-
SOLID原则
单一职责原则(Single Responsibility) 开闭原则(Open Closed) 里氏代换原则(Liskov Substitution) 接口隔离原原则(Interface Segregation) 依赖倒置原则(Dependency Inversion)
可维护性
-
团队认知
如果项目交接,他人能够快速了解代码意图吗?
-
编码规范
PHP 编码规范 https://psr.phphub.org/
-
持续迭代
如果后续功能迭代,能够快速支持且不影响现有功能或者其他模块吗?
-
类库复用
-
设计模式
-
过时用法
性能
整体执行耗时
-
空间
按需加载,节省内存
-
时间
死循环 无穷递归 外部系统依赖 死锁
安全
-
输入输出校检
-
异常处理
-
边界处理(日期、数组等)
-
敏感信息
用户隐私
-
权限设置
日志
-
关键路径埋点
外部系统调用 敏感操作
-
指标纬度
记录时间 日志级别 日志标识 请求体 响应体 用户id 用户ip 服务器ip 会话id 文件行数
-
是否旁路
-
级别开关
监控
-
关键路径埋点
-
指标纬度
耗时 成功/失败率 失败状态码
-
是否旁路
评审方式
日常迭代
-
技术负责人评审
-
每日SVN评审变更点
-
合并时变更点周知全员
自动评审
评审会议
-
code在线评审
-
随机抽取最近提交
-
非指名提出建议
-
记录到知识库并跟进落地
版本计划
-
出具评审报告
-
PM责任制
合理的要求是对我的锻炼,不合理的要求是对我的磨练!