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

248 阅读3分钟

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

本次课程是青训营Android开发的最后一课,本课程从代码质量、代码评审、重构、代码上线几个角度分享了一个优秀的研发同学,应当具备的基本素养。下面是针对课堂当中的重点部分所整理的一些笔记。

代码质量

优秀代码的特质:
1.完全满足所有的边界条件
2.只需要进行小的改动即可进行功能变更
3.在发生异常时可以优雅的报错,或者进行自我修复,而不是系统进入未知状态
4.即使是用于新的场景,也可以进行优雅的预见,而不是造成数据损坏
5.系统始终能够处于一种安全的状态下

总结:软件可信赖,易于维护,bug较少

代码的可维护性规则

  • 统一的编码规范:命名规范、代码格式、注释规范
  • 稳定的工程结构:目录清晰、模块化、组件化、依赖可控、访问权限
  • 优秀的方案实现:文档、用例、可测性、高内聚低耦合

代码评审

1.CR能前置地发现代码质量问题
2.将CR做得小点能加快评审效率
3.谦逊坦诚面对不同的评审意见

小CL(Change List)好处?

  • 审查更快,审查者更容易抽多次五分钟时间来审查小型CL,而不是留出30分钟来审查一个大型CL。
  • 审查得更彻底,如果是大的变更,审查者和提交者往往会因为大量细节的讨论翻来覆去而感到沮丧,有时甚至到了重要点被遗漏或丢失的程度。
  • 不太可能引入错误,由于您进行的变更较少,您和您的审查者可以更轻松有效地推断CL的影响,并查看是否已引入错误。如果被拒绝,减少浪费的工作,如果您写了一个巨大的CL,您的评论者说整个CL的方向都错误了,你就浪费了很多精力和时间。更容易合并,处理大型CL需要很长时间,在合并时会出现很多冲突,并且必须经常合并。
  • 更容易设计好,打磨一个小变更的设计和代码健康状况比完善一个大变更的所有细节要容易得多。

如何处理不同意见

正视批评、修复代码、自我反思

重构实践

重构的概念:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
1.代码中常有技术债,理解它,处理它
2.重构是在有限范围内运用一定的方法

代码上线

分支开发模式

image.png

持续集成的概念

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

灰度发布

逐步扩大使用的用户群体,1%→10%→30%→60%→100%

AB实验

干扰因素太多,代码直接上线无法量化收益,指标波动无法归因