代码整洁之道2

函数
短小,只做一件事

每个函数一个抽象层级

1.要确保函数只做一件事,函数中的语句都要在同一抽象层级上

2.自顶向下读代码:向下规则,让代码拥有自顶向下的阅读顺序,让每个函数后面都跟着下一抽象层级的函数,这样一来,在看函数列表时,就能循抽象层级向下阅读了,我把这叫做向下规则

switch语句

1.尽量隐藏switch,不要暴露

使用描述性的名称

1.沃德原则:“如果每个例程都让你感到深合已意,那就是整洁代码”

2.函数越短小,功能越集中,就越便于取个好名字

3.别害怕长名称,长而具有描述性的名称,要比短而令人费解的名称好

4.命名方式要保持一致。使用与模块名一脉相承的短语、名词和动词给函数命名

函数参数

1.最理想的参数数量是零,有足够的理由才能用三个以上参数

2.事件:在这种形式中,有输入参数而无输出参数,程序将函数看作一个事件,使用该参数修改系统状态

3.对于转换,使用输出参数而非返回值令人迷惑,如果函数要对输入参数进行转换操作,转换结果就该体现为返回值

4.向函数传入布尔值会使方法签名立刻变得复杂起来,大声宣布函数不止做一件事

5.如果函数看来需要两个、三个或三个以上参数,就说明其中一些参数应该封装为类了

6.有可变参数的函数可能是一元、二元甚至三元,超过这个数量就可能要犯错了

7.对于一元函数,函数和参数应当形成一种非常良好的动词/名词对形式

无副作用

1.函数承诺只做一件事,但还是会做其他被藏起来的事,会导致古怪的时序性耦合及顺序依赖

2.参数多数会被自然而然地看作是函数的输入

分隔指令与询问

1.函数要么做什么事,要么回答什么事,但二者不可得兼

使用异步替代返回错误码

1.从指令式函数返回错误码轻微违反了指令与询问分隔的规则。它鼓励了在if语句判断中把指令当作表达式使用

2.try/catch代码块把错误处理与正常流程混为一谈,最好把try和catch代码块的主体部分抽离出来,另外形成函数

3.错误处理就是一件事,处理错误的函数不该做其他事



 

posted @ 2023-05-31 10:59  cojames  阅读(21)  评论(0编辑  收藏  举报