读书笔记——《代码整洁之道》第三章 函数

主要内容

本章节所讲述的是有关编写良好函数的机制,从怎么写好函数的层面去剖析代码的整洁之道。如果你遵循这些规则,函数就会短小,有个很好名字,而且能被很好的归置。不过我们最终的目的就是把函数干净利落地拼装到一起,形成一种精确而清晰的语言,从而达到代码整洁的目的。

书写函数的几条规则

3.1 短小

函数的第一规则是要短小。第二条规则是还要更短小。那么函数到底多长才合适? 在20世纪80年代的说法是函数不该长于一屏。当然,说这话的时候,VT100屏幕只有24行、80列,而编辑器就得先占去4行的空间放菜单。如今的显示屏最大显示的行数在不断增加,这个标准也渐渐失去它的可信度。而函数长度的标准是:
每个函数都一目了然。每个函数都只说同一件事。而且每个函数都依序把你带到你下一个函数。

而达到每个函数保持在同一个抽象层上。


3.4 switch 语句

switch语句存在的问题

  1. 太长,当类型复杂起来时,会更长
  2. 不止做了一件事
  3. 违反了单一权责原则 [SRP,Single Responsibility Principle] (类只应该有一个权责——只有一个修改的理由)
  4. 违反了开放闭合原则 [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 函数参数

  1. 参数应该尽量少,如果参数太多,应该把几个参数抽象成对象
  2. 最理想的参数数量是零,其次是一个,再次是两个。除非有足够的理由才能用三个以上参数。

小结

  • 函数应该短小
  • 函数应该是做一件事,并做好这一件事
  • 函数中的语句应该在同一抽象层级上
  • 函数要么做一件事,要么回答一个问题,不要同时做这两个
  • 参数应该尽量少,如果参数太多,应该把几个参数抽象成对象
  • 使用异常,不要返回错误码
  • 抽离错误处理语句,处理错误的函数不应再做其他事。
  • 消除冗余,减少重复
posted @ 2017-08-12 16:50  白白掰掰  阅读(252)  评论(0编辑  收藏  举报