RD研发素养 | 青训营笔记

179 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第18天。

关键词:代码质量、代码评审、重构、代码上线,CI,CR,技术债,Code Smell

代码评审:

image.png

CR的某一实例:

image.png

  1. Code Review
  2. 代码重构
重构实践:
  1. 技术债:理解它、处理它
  2. 重构是在有限范围内运用一定的方法
代码上线

image.png

代码质量

  1. 优秀代码特质:明确的语义,代码即注释;无联想、无泛指;便于调试
  2. 满足边界条件、功能变更只进行较小变动。会报错、自我纠正,应对新场景、安全攻击
  3. 代码维护
    • 统一的代码规范:命名、格式、注释。。。 image.png
    • 稳定的工程结构:目录清晰、模块化、组件化、依赖可控、访问权限控制。。。
      • 复用代码
      • 添加新的依赖
      • 依赖项稳定
    • 优秀方案实现:文档、用例、可测性、高内聚低耦合。。。
      • 架构设计思想:Binder IPC通信、IoC/SPI解耦
      • 自动化测试手段,保障重构正确性
      • 充分考虑场景用例
  4. 圈复杂度:条件复杂度 = num(deges)-num(nodes)+2

image.png 结果为1-10为好

  • 顺序执行:圈复杂度1
  • if-else:圈复杂度2
  • while:圈复杂度2
  • (简单判断方法:)圈复杂度:判定条件+1

代码评审(code review)简称CR

通过阅读源代码来检查代码是否符合编码规范,前置发现代码质量问题。

  1. 代码规范 image.png
  2. 功能设计 image.png

小CR-better(控制)

好处:审查更快,更彻底,更容易融入代码,如果被拒绝,可以快速返工。

实例: image.png

重构实践

  1. 技术债:未采用最佳方案造成未来负担

    • 公开技术债
    • 消费技术债
  2. 重构:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

    • 封装成员变量 (函数参数太多)
    • 方法提取(函数太长)
    • 一般化类型(处理重复代码)
    • 父子类之间的函数转移
    • 方法更名
    • 隐藏中间人调用:针对长调用链(避免加判空太多
  3. Code Smell 代码的坏味道,预示着即将变坏,重构是不断对抗Code Smell

代码上线

  1. 分支开发模式

  2. 持续集成概念CI

    • 将代码频繁的集成到代码仓库中持续集成并不能消除Bug,而是让它变得容易发现和修正
  3. 灰度发布

    • 逐步扩大使用的用户群体
  4. AB实验

    • 排除干扰因素,环境相同的条件下做实验,选取更优的结果