RD

134 阅读1分钟

优秀代码性质:

捕获.PNG 圈复杂度:也称条件复杂度,是软件度量手段

圈复杂度=num(edges)-num(nodes)+2

顺序执行:圈复杂度=1-2+2=1

if-else:圈复杂度=4-2+2=2

while:圈复杂度=3-3+2=2

捕获.PNG

捕获.PNG 例子:

捕获.PNG

圈复杂度:=判定条件数+1

第一个答案:3; 第二个:1(for)+2(if)+2(if)+1(for)+2(if)+2(if)+1=11

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

优秀代码可信赖、易维护、bug少

面对庞大的代码需要遵守可维护性规则

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

代码评审

image.png

image.png

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

image.png

CR的例子:

image.png

重构:

image.png

技术债的产生和应对:

业务压力大,缺少过程和理解,模块之间依赖复杂,重构延迟,没有或不遵循标准规范

image.png 重构的用法:

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

image.png

函数参数特别多----》将函数封装,通过调用函数获取参数

image.png

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

image.png

switch-Case爆炸----》策略模式,类型抽象

image.png

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

image.png

代码上线:

灰度发布:逐步扩大用户群体,1%->10%->30%->60%->100%

AR实验

image.png

# 最后

理解圈复杂度和代码质量的重要性

代码评审能够前置的发现代码问题

重构是限定范围和方法的改造技术

代码需要持续得到验