这是我参与「第四届青训营 」笔记创作活动的第11天 代码问题导致的损失可能会很严重
代码质量
优秀代码的特质
- 需要具备明确的语义,代码即注释
- 阅读代码时不需要做其他联想,没有泛指
- 不能有开发的方法导致读代码有误解,负责存在隐患
- 完全满足产品需求
- 功能变更只需要小改动
- 发生异常优雅的报错,或者能自我修复
- 新的场景优雅的处理,即便没有提前遇见
- 安全攻击,系统能够处于安全状态之下
- 软件可信赖,易于维护,BUG比较少
代码可维护性原则
- 统一的编码规范:命名规范、代码格式、注释规范...
- 稳定的工程结构:目录清晰、模块化、组件化、依赖可控、访问权限...
- 优秀的方案实现:文档、用例、可测性、高内聚低耦合...
圈复杂度
圈复杂度也称条件复杂度,是一种软件度量手段。
圈复杂度=边的数量-结点数量+2
圈复杂度=判定条件数+1
小结
- 小小的代码错误,可酿成巨大的损失
- 优秀的代码可信赖、易维护、BUG少
- 面对庞大的代码需遵循可维护性规则
- 圈复杂度作为度量工具的计算和用途
代码评审
CR的形式:发出邀请、结对编程、团队定期
CR关注的点:代码规范(命名是否定义清晰、CR描述是否准确对应到功能、风格是否遵循统一的规范、是否同时改动了文档)、功能设计(是否良好的设计并适用于当前系统、功能实现是否正确、实现是否简洁,如果过于复杂是否有更简洁的方式、是否包含自动化测试)
如何处理不同意见
- 正视批评:对事不对人,不要因为批评而沮丧
- 修复代码:澄清代码,补充注释或者修复问题
- 自我反思:考虑评论是否有效