这是我参与「第四届青训营 」笔记创作活动的第8天
01 本堂课重点内容:
本课程从代码质量、代码评审、重构、代码上线几个角度向我们讲述了一个优秀的研发同学,应当具备什么样的基本素养。
02 详细知识点介绍:
2.1 代码质量
- 好的代码要做到以下几点:
- 完全满足产品需求
- 当进行功能变更时,只需要进行较小的改动
- 发生异常时可以优雅的报错,或者能自我恢复
- 在面对新的场景时,能够优雅的处理,即便没有提前预见
- 即便经历安全攻击,系统仍能够处于安全状态下
- 代码要具有较好的可维护性,需要做到
- 统一的编码规范:命名规范、代码格式、注释规范。
- 稳定的工程结构:目录清晰、模块化、组件化、依赖可控、访问权限。
- 优秀的方案实现:文档、用例、可测性、高内聚低耦合。
- 圈复杂度(Cyclomatic Complexity),也称条件复杂度,是一种软件度量手段。
2.2代码评审
CR的目标是通过阅读源代码来检查代码是否符合编码规范,前置发现代码质量问题主要关注代码规范和功能设计等问题
- 代码规范
- 命名:是否定义的清晰准确的变量名、函数名、类名
- 描述:CR的描述是否准确对应到功能
- 风格:是否遵循统一的规范
- 文档:是否同时改动了文档
- 功能设计
- 设计:是否良好的设计并适用于当前系统
- 功能:实现是否正确
- 简洁:实现是否简洁,如果过于复杂是否有更简单的方式
- 测试:是否包含自动化测试
- 总结
- CR能前置地发现代码质量问题
- 将CR做得小点能加快评审效率
- 谦逊坦诚面对不同的评审意见
2.3代码重构
重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
- 技术债(Technical Debt),指本应采用最佳方案,但妥协了,从而给未来带来了负担。就像是债务,先欠下了,短期得到了好处,但长期必须偿还。代码中常有技术债,我们要学会理解它,处理它。
03 课后总结:
- 理解圈复杂度和代码质量的重要性
- 代码评审能够前置的发现代码问题
- 重构是限定范围和方法的改造技术
- 代码需要持续得到验证才能够上线