开发者 发展 9 心智模式 (32)

整洁是一个相对的词,在我看来,它唯一的作用就是令维护简单。如果你写的代码不需维护(没有BUG、完成之后永 远不会做功能改动、没有任何其它代码基于这些代码编写等等,显然,如果满足了这些条件,没人“有必要”来阅读你的代码),比如用完即抛的很简单的一次性用 品,那么只要“可用”就行了,不需要“整洁”。值得注意的是,这里隐含了一个假设的前提条件:不保持代码整洁的情况下,你能够写出“可用”的代码。

复杂度是事物复杂程度的量化描述,其大概等价于使软件达到可用所需耗费的劳动(智力+体力)的总和。

无疑,(现有事实证明)软件开发是复杂度很高的活动,我们有各种方法论、工具、最佳实践等等等,其本质都是为了降低软件开发的复杂度,也就是:第一,使软件达到可用的标准;第二,尽可能地减少所需劳动。

所有软件活动包括根本任务——打造由抽象软件实体构成的复杂(现实)概念结构,次要任务——使用编程语言表达这些抽象实体,在时间和空间限制内将它们映射成机器语言。相应的,软件开发的复杂度由两部分构成:

来自根本任务:根本困难——对复杂现实情况的抽象,这是软件开发中固有的困难。

来自次要任务:次要困难——通过特定表达方式让计算机理解。这是受限于目前生产(方法、工具)的并非与生俱来的困难。

更具体一些,软件的复杂度来自这些:

规模: (容易)变化  (缺乏)一致性    不可见性

整洁

日常生活中我们谈起整洁,头脑中大概会浮现出这样的场景:每样物品都有序地摆放在它应该在的地方,一目了然,并且一尘不染,非常干净,令人愉快;同时,不那么明显的,整洁往往暗示着没有多余的东西,东西越少,越容易保持整洁。

整洁的代码有同样的特征:

1. 有序,各得其所,模块的归模块,接口的归接口,实现的归实现。

2. 一目了然。 流畅,没有障碍,它应该就是这个样子,而不是别的样子。任何维护工作的第一件事是什么?读代码。

3. 一尘不染。重点是保持。如果一直保持干净,一旦出现污点,将会显得非常刺眼,自然会被清除。相反,一扇窗户破了,若无人关心,最终整条街道都会腐化。

4. 只做必要的事,保持简单。从奥卡姆开始,到建筑,到飞机制造。“完成”不是指不能再往里塞东西,而是指不能再往外拿任何东西。

5.令人愉快。 成功永远令人愉快,美永远令人愉快。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwswjy.html