这和很多“主流的”观点不同,函数的存在的主要意义在于:划分独立职责,隐藏具体细节操作,使得代码具有可读性,应对扩展的变化,方便进行单元测试,顺带的,偶尔可以用作复用。
函数应当遵循:
- 单一抽象层次原则:仅表达一个抽象层次上的一件事
- 单一职责原则:一个函数只做一件事,只做一个操作
- 短小原则:函数不能过长,层次不能太深
当发现一个函数具有以下特征时,需要考虑抽取函数
- 过长
- 嵌套层数过深(深度不超过5)
- 自然分块,需要使用注释描述该程序块
- 判断条件过于复杂(复杂度不超15)
- 函数的某些判断分支不断变化
- 参数过于复杂(参数不超过5)
- 逻辑重复
注:同时也需要注意的是,如果函数划分过多是否会导致更多的函数压栈、出栈操作,是否会导致消耗过大?也不可太盲目的划分函数。_