成为一名好 RD,你该具备的研发素养 | 青训营笔记

82 阅读2分钟

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

课堂笔记

代码质量

1.小小的代码错误,可酿成巨大的损失

2.优秀的代码可信赖、易维护、Bug少

3.面对庞大的代码需遵循可维护性规则

4.圈复杂度作为度量工具的计算和用途

举例

image.png 遍历一个列表,返回总价格

问题:

一个什么列表?

什么的价格?

为什么要计算这个列表的价格?

image.png

  1. 具备明确的语义,代码即注释
  2. "获取购物车中所有条目的总价格”
  3. 阅读代码时,不需要做其他联想
  4. 没有泛指,能明确知道变量名,便于调试

代码评审

1.CR能前置地发现代码质量问题

2.将CR做得小点能加快评审效率

3.谦逊坦诚面对不同的评审意见

CR关注的点:

  1. 命名:是否定义的清晰准确的变量名、函数名、类名
  2. 描述: CR的描述是否准确对应到功能
  3. 风格:是否遵循统一-的规范
  4. 文档:是否同时改动了文档

image.png

  • 设计:这段代码做什么?
  • 功能:实现的逻辑是否与目标一致?
  • 是否覆盖了全部的场景?
  • 是否存在异常?
  • 简洁:是否有更高性能的方式?
  • 测试:可测试性?测试覆盖?

重构实践

1.代码中常有技术债,理解它,处理它

2.重构是在有限范围内运用一定的方法

重构的概念

对软件内部结构的调整,目的是在不改变软件可观察行为前提下,提高可理解性,降低修改成本

技术债的产生与应对

Technical Debt,本应采用最佳方案,但妥协了,从而给未来带来了负担。 就像是债务,先欠下了,短期得到了好处,但长期必须偿还。

image.png

代码上线

分支开发模式

image.png

持续集成概念

Continuous Integration, CI,将代码频繁的集成到代码仓库中 持续集成并不能消除Bug,而是让它变得容易发现和修正

image.png

灰度发布

逐步扩大用户群体 image.png

课后总结与反思

代码开发注意要点

  1. 理解圈复杂度和代码质量的重要性
  2. 代码评审能够前置的发现代码问题
  3. 重构是限定范围和方法的改造技术
  4. 代码需要持续得到验证才能够上线

优秀代码

  1. 完全满足产品需求
  2. 功能变更时只需进行很少改动
  3. 发生异常时优雅的报错,或者能自我恢复
  4. 新的场景能够优雅的处理,即便没有提前预见
  5. 受到安全攻击时系统能够处于安全状态下