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

65 阅读2分钟

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

重构实践

重构的概念

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

遵循重构的方法

封装成员变量、方法提取、一般化类型、将子类的函数移到父类、将父类的函数移到子类、方法更名………

Code Smell

代码的坏味道,预示着即将变坏。重构就是不断对抗Code Smell

技术债的产生和应对

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

公开技术债

一开始就与利益相关方权衡技术债的利弊,明确影响和解决方案可以将所有的技术债量化公示,短期和长期技术债可以区分对待大家遵循相同的编码规范。

消费技术债

每次迭代确定一定数量的技术债作为消费目标。 无需偿还技术债的产品是即将消亡、一次性的原型或者短命的产品避免使用过时的技术,旧资产和老方法充斥着安全漏洞,难以集成。

重构方法的运用

重复代码 → 类型一般化,公共代码抽离

函数参数过多 → 将参数封装,通过函数调用获取参数

超长函数,逻辑晦涩 → 提取方法,新建小的子函数

Switch-Case爆炸 → 策略模式,类型抽象

逻辑嵌套 → 提取方法,降低圈复杂度

长调用链:Obj.a().b().c().d() → 隐藏中间人调用

小结

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

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

代码上线

分支开发模式

Main、Hotfix、Release、Develop、Feature、Feature

持续集成概念

Continuous Integration, CI, 将代码频繁的集成到代码仓库中

持续集成并不能消除Bug,而是让它变得容易发现和修正

灰度发布

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

AB实验

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

后记

通过本节课,了解了重构是限定范围和方法的改造技术,以及代码需要持续得到验证才能够上线。