函数重构发生在什么时候
1、编写代码时
编写的过程中一旦发现函数逻辑有点儿复杂,就要进行函数的重构。(这应该是函数重构最重要的时刻)
2、维护代码时
1) 添加功能时,如果发现函数过于复杂,要进行函数的重构。
2) 修改bug如果发现函数很难理解,很难维护,也要进行函数的重构。
重构3原则
原则1: 函数主题超过10行就意味着可能需要进行重构。
1)函数要一样就能看出来在做什么
2)编写代码的时候,一旦发现一个函数超过了10行,就要试图重构。
3)函数主体不包括参数检查和是否需要进行处理的判断。
函数结构如何设计
原则2: 要区分出不需要处理和需要处理的情况。
在做主体处理之间要先排除不需要的情况:
1)判断参数是否合法。
2)判断内部状态或数据错误是否正确。
3)对于这些不需要处理的情况,直接return或return错误。
内部数据或状态
参数 函数 结果
函数的三段式
XXX FUNC(......)
{
// 参数合法性判断
// 排除掉不需要做处理的情况
// 正常的处理
}
函数逻辑如何设计
原则3: 要把What to do 和 How to do放在不同的函数
1)What to do 和 How to do是不同抽象层次的事情,应该放在不同的函数中
2)复杂的函数(需要重构的函数)往往是因为做了不同抽象层次低的事。
主函数:写做哪些事情(what to do)
主函数的主体只需要体现出来三种类型的结构: 分支结构、顺序结构、循环结构。
每一个处理都是一条赋值语句或调用一个子函数。(What to do)
How to do : 子函数1 子函数2 ... ...