优秀代码性质:
圈复杂度:也称条件复杂度,是软件度量手段
圈复杂度=num(edges)-num(nodes)+2
顺序执行:圈复杂度=1-2+2=1
if-else:圈复杂度=4-2+2=2
while:圈复杂度=3-3+2=2
例子:
圈复杂度:=判定条件数+1
第一个答案:3; 第二个:1(for)+2(if)+2(if)+1(for)+2(if)+2(if)+1=11
小小代码错误,酿成巨大的损失
优秀代码可信赖、易维护、bug少
面对庞大的代码需要遵守可维护性规则
圈复杂度作为度量工具的计算用途
代码评审
小CR的好处:审查快,更彻底,更容易融入代码,如果被拒绝可以快速的返工
CR的例子:
重构:
技术债的产生和应对:
业务压力大,缺少过程和理解,模块之间依赖复杂,重构延迟,没有或不遵循标准规范
重构的用法:
重复代码---》类型一般化,公共代码抽离
函数参数特别多----》将函数封装,通过调用函数获取参数
超长函数,逻辑晦涩-----》提取方法,新建小的子函数
switch-Case爆炸----》策略模式,类型抽象
逻辑嵌套---》提取方法,降低圈复杂度
代码上线:
灰度发布:逐步扩大用户群体,1%->10%->30%->60%->100%
AR实验
# 最后
理解圈复杂度和代码质量的重要性
代码评审能够前置的发现代码问题
重构是限定范围和方法的改造技术
代码需要持续得到验