重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
重构的时机发生在平时,每次写代码对丑陋的地方进行一次重构。保证每次离开时代码比进入时更干净就好了,大规模的重构和重写永远不会有结果
不要用 bool 形参
整理自
原因有两个:
bool 形参会导致代码的可读性变差,比如在只看函数调用而不看函数签名的时候很难理解参数的含义。尽管使用 IDE 可以方便地查看函数的签名,但并不是所有场合都能会 IDE 的
带有 bool 形参的函数违背的函数的单一职责。函数根据 bool 参数需要负责多个任务,违背了设计模式
优化方式:
将职责分离,一个函数分离成多个函数即可
使用枚举提高语义化
使用解释性变量
嵌套 if-else 语句优化
整理自
对于 if-else 很多的嵌套代码块,可以通过以下方式优化:
互斥条件表驱动
嵌套条件校验链
短路条件早返回
零散条件可组合
而对于并列的 if-else,可以使用以下方式优化:
字典映射
表驱动
多参数函数优化
使用 do while 简化多分支语句
首先是简化防御式编程。例如将下述代码进行简化:
bool func(){
bool bRet = false;
int *pAssHole = new int;
bRet = fuck1();
if(!bRet){
delete pAssHole;
return bRet;
}
bRet = fuck2();
if(!bRet){
delete pAssHole;
return bRet;
}
bRet = fuck3();
if(!bRet){
delete pAssHole;
return bRet;
}
}
简化为:
bool func(){
bool bRet = false;
int *pAssHole = new int;
do{
bRet = fuck1();
if(!bRet)
break;
bRet = fuck2();
if(!bRet)
break;
bRet = fuck3();
if(!bRet)
break;
}while(0)
delete pAssHole;
}