代码整洁之道笔记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.错误处理就是一件事,处理错误的函数不该做其他事

4.依赖磁铁(dependency magnet):其他许多类都得导入和使用它,如一些错误码枚举类

别重复自己

结构化编程

1.函数中的每个代码块都应该只有一个入口和一个出口

2.尽量少使用break,continue,不能用goto

如何写出这样的函数

1.打磨代码,分解函数、修改名称、消除重复

2.缩短和重新安置方法、拆散类、保持测试通过

posted @   lcz111  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示