代码检视Checklist运作机制(试运行)
目标
代码检视 Checklist 诣在辅助 Committer 进行高质量代码检视,同时为开发者提供代码自检的参考指南。
Checklist 说明
代码检视 Checklist 分为 必选 与 可选 两节,其中:
必检项:
必选检查项位于Code review checklist下,为 Committer 代码Review的常规检查项,Committer 确认无问题后请在 CheckBox 勾选以表明完成对应检查(若当前 Pull request
不涉及某项,无须勾选);若当前 Pull request 涉及 【性能分析】中某子项、【是否涉及模块/特性间交互】,请开发者概述设计思想或实现方案。
-
Typical problems of security
coding [historical security coding cases reference]
-
Performance analysis (if a sub-item is involved, please outline the implementation idea or modification content)
-
-
-
-
-
-
Error handling and recording
可选检查项:
若当前Pull request涉及 【是否导致无法前向兼容】、【是否为对外接口变更】、【是否涉及依赖的三方库变更】
中某项,请将对应可选项的注释去掉,并增加对应的评审结论,如:”已于YYYY/MM/dd在SEG通过评审“;若涉及对外文档变更,请将**【是否涉及文档(安装、教程、设计、参考、API、迁移指南、FAQ等)修改】**
的注释打开,并附上文档变更的Pull request。
代码检视 Checklist 中英文参照表
检视项 |
checklist |
是否进行空指针校验 |
whether to verify the pointer is null/nullptr |
是否进行返回值校验 |
whether to verify the function's return value |
是否正确释放new/malloc内存 |
whether new/malloc memory is released correctly |
是否修改热点函数/算法/算子 |
whether to modify hotspot function / algorithm / operation |
是否考虑并发场景 |
whether to consider concurrent scenarios |
是否考虑通信场景 |
whether to consider communication scenario |
是否符合编码规范 【编码规范】 |
whether to comply with coding specifications [coding specification reference] |
是否遵守SOLID原则/迪米特法则 |
whether to comply with SOLID principle / Demeter's law |
是否涉及模块/特性间交互【若涉及请概述实现思路】 |
whether the interaction between modules / features is involved (if yes, please outline the implementation ideas) |
是否具备UT测试用例看护 && 测试用例为有效用例【若无测试用例请说明原因】 |
whether there is UT test case && the test case is a valid (if there is no test case, please explain the reason) |
秘钥是否被正确加载、释放 |
whether the secret key is loaded/released correctly |
是否充分考虑接口的异常场景 |
whether the interface exception scenarios are fully considered |
是否正确记录错误信息 |
whether the error is recorded appropriately |
是否涉及文档(安装、教程、设计、参考、API、迁移指南、FAQ等)修改 |
whether document (installation, tutorial, design, reference, API, migration guide, FAQ, etc.) modification is involved |
是否导致无法前向兼容 |
whether it causes forward compatibility failure |
是否为对外接口变更 |
whether the API change is involved |
是否涉及依赖的三方库变更 |
whether the dependent third-party library change is involved |