共计 1932 个字符,预计需要花费 5 分钟才能阅读完成。
代码整洁之道
更有意义的命名
- 废话是另一种没意义的辨别。假如你有一个 Product 类。如果还有一个 ProductInfo 或 ProductData 类,那它们的名称尽管不同,意思却无区别。Info 和 Data 就像 a、an 和 the 一样,是意义含混的废话
- 应用读得进去的名称:人类长于记忆和应用单词。大脑的相当一部分就是用来包容和解决单词的。单词能读得进去。人类进化到大脑中有那么大的一块中央用来解决语言,若不善加利用,切实是种羞耻
- 窃以为单字母名称仅用于短办法中的本地变量。名称长短应与其作用域大小绝对应
- :: 类名和对象名:应该是名词或名词短语::,如 Customer、WikiPage、Account 和 AddressParser。防止应用 Manager、Processor、Data 或 Info 这样的类名。类名不该当是动词
- :: 办法名:该当是动词或动词短语::,如 postPayment、deletePage 或 save。属性拜访器、修改器和断言应该依据其值命名,并依 Javabean 规范 [10] 加上 get、set 和 is 前缀
- 取好名字最难的中央在于须要良好的形容技巧和共有文化背景。与其说这是一种技术、商业或治理问题,还不如说是一种教学问题。其后果是,这个畛域内的许多人都没能学会做得很好
函数
- :: 函数的第一规定是要短小。第二条规定是还要更短小::。我无奈证实这个断言。我给不出任何证实了小函数更好的钻研后果。我能说的是,近 40 年来,我写过各种不同大小的函数。我写过令人憎恨的长达 3000 行的厌物,也写过许多 100 行到 300 行的函数,我还写过 20 行到 30 行的。通过漫长的试错,教训通知我,函数就该小
- :: 函数应该做一件事。做好这件事。只做这一件事。::
- 要判断函数是否不止做了一件事,还有一个办法,就是看是否能再拆出一个函数,该函数不仅只是单纯地从新诠释其实现
- 参数::: 最现实的参数数量是零::(零参数函数),其次是一(单参数函数),再次是二(双参数函数),应尽量避免三(三参数函数)。有足够非凡的理由能力用三个以上参数(多参数函数)。有两个参数的函数要比一元函数难懂,对于一元函数,函数和参数该当造成一种十分良好的动词 / 名词对模式。例如,write(name)就相当令人认同。不论这个“name”是什么,都要被“write”。更好的名称大略是 writeField(name),它通知咱们,“name”是一个“field”
- 标示参数::: 标识参数俊俏不堪。向函数传入布尔值几乎就是骇人听闻的做法::。这样做,办法签名立即变得复杂起来,大声发表本函数不止做一件事。如果标识为 true 将会这样做,标识为 false 则会那样做!
在代码清单 3 - 7 中,咱们别无选择,因为调用者曾经传入了那个标识,而我想把重构范畴限度在该函数及该函数以下范畴之内。办法调用 render(true)对于可怜的读者来说依然摸不着头脑。卷动屏幕,看到 render(Boolean isSuite),稍许有点帮忙,不过依然不够。应该把该函数一分为二:reanderForSuite()和 renderForSingleTest()
- “Try/catch 代码块俊俏不堪。它们搞乱了代码构造,把错误处理与失常流程一概而论。最好把 try 和 catch 代码块的主体局部抽离进去,另外形成函数。
- “函数应该只做一件事。错误处理就是一件事。因而,处理错误的函数不该做其余事。这意味着(如上例所示)如果关键字 try 在某个函数中存在,它就该是这个函数的第一个单词,而且在 catch/finally 代码块前面也不该有其余内容”
- 别反复本人:反复可能是软件中所有邪恶的本源。许多准则与实际规定都是为管制与打消反复而创立
- 写代码和写别的货色很像。在写论文或文章时,你先想什么就写什么,而后再打磨它。初稿兴许简陋无序,你就斟酌斟酌,直至达到你心目中的样子。
我写函数时,一开始都简短而简单。有太多缩进和嵌套循环。有过长的参数列表。名称是随便取的,也会有反复的代码。不过我会配上一套单元测试,笼罩每行俊俏的代码。大师级程序员把零碎当作故事来讲,而不是当作程序来写
正文
- 正文的失当用法是补救咱们在用代码表白用意时遭逢的失败。留神,我用了“失败”一词。我是说真的。正文总是一种失败。咱们总无奈找到不必正文就能表白自我的办法,所以总要有正文,这并不值得庆祝
- 我为什么要竭力贬斥正文?因为正文会扯谎。也不是说总是如此或无意如此,但呈现得切实太频繁。正文存在的工夫越久,就离其所形容的代码越远,越来越变得全然谬误。起因很简略。程序员不能保持保护正文
- 实在只在一处中央有:代码。只有代码能忠诚地通知你它做的事。那是惟一真正精确的信息起源。所以,只管有时也须要正文,咱们也该多花心思尽量减少正文量
正文完