读书笔记——《代码整洁之道》第三章 函数
主要内容
本章节所讲述的是有关编写良好函数的机制,从怎么写好函数的层面去剖析代码的整洁之道。如果你遵循这些规则,函数就会短小,有个很好名字,而且能被很好的归置。不过我们最终的目的就是把函数干净利落地拼装到一起,形成一种精确而清晰的语言,从而达到代码整洁的目的。
书写函数的几条规则
3.1 短小
函数的第一规则是要短小。第二条规则是还要更短小。那么函数到底多长才合适? 在20世纪80年代的说法是函数不该长于一屏。当然,说这话的时候,VT100屏幕只有24行、80列,而编辑器就得先占去4行的空间放菜单。如今的显示屏最大显示的行数在不断增加,这个标准也渐渐失去它的可信度。而函数长度的标准是:
每个函数都一目了然。每个函数都只说同一件事。而且每个函数都依序把你带到你下一个函数。
而达到每个函数保持在同一个抽象层上。
3.4 switch 语句
switch语句存在的问题
- 太长,当类型复杂起来时,会更长
- 不止做了一件事
- 违反了单一权责原则 [SRP,Single Responsibility Principle] (类只应该有一个权责——只有一个修改的理由)
- 违反了开放闭合原则 [OCP,Closed for Modification; Open for Extension] (类应该对扩展开放,对修改封闭)
ps:OO(Object–Oriented)的五大原则 SRP、OCP、LSP、DIP、ISP
解决方法:对于switch语句,用于创建多态对象,而且隐藏在某个继承关系中,在系统其他部分看不到
![enter description here][5]
3.5 使用描述性的名称
testableHtml改为SetupTeardownIncluderender; isTestable或includeSetupAndTeardownPages,
长的函数名具有描述性,要比描述性的长注释好。可以使用眸中约定,让函数名称中的多个单词更容易阅读,然后使用这些单词给函数取个能说清其功能的名称。
模块名用名词,而函数名用动词描述
3.6 函数参数
- 参数应该尽量少,如果参数太多,应该把几个参数抽象成对象
- 最理想的参数数量是零,其次是一个,再次是两个。除非有足够的理由才能用三个以上参数。
小结
- 函数应该短小
- 函数应该是做一件事,并做好这一件事
- 函数中的语句应该在同一抽象层级上
- 函数要么做一件事,要么回答一个问题,不要同时做这两个
- 参数应该尽量少,如果参数太多,应该把几个参数抽象成对象
- 使用异常,不要返回错误码
- 抽离错误处理语句,处理错误的函数不应再做其他事。
- 消除冗余,减少重复