我最近写了五本书,这些书改变了我的编程风格。在评论中,一些读者推荐了Robert S. Martin的“ Clean Code”。结果,我读了这本书,发现它值得深入审查。
关于这本书
« » 2008 , Amazon. , « », Agile Manifesto . 4,4 Goodreads 13 000 . , , .
.
1. —
, — . , ( ) .
相反,我们将从草图开始,逐步添加细节。我们修改,完善和扩展-我们在不同的抽象层次上工作,直到软件按我们需要的方式工作为止。该软件从未真正完成过。
这是“清洁代码”的主要本质。在整本书中,作者始终认为软件是艺术,类似于绘画。
好的代码。资料来源:xkcd
但是,如何从编写简单代码到编程艺术呢?
Martin认为,我们可以使用的主要工具是持续重构和测试驱动开发(TDD)。它们彼此密不可分,就像硬币的两面一样。这里是一些定义。
— .
— , , .
, .
- . , .
- , . .
- . .
« , « ». , «», , . ».
, , , , — , , .
2. !
« — . , ».
.
, .
- — 20 10 .
- , .
. , .
. . (SRP).
— « » , . , , , .
3.
« ».
.
, , , . :
:
:
- .
- .
- , .
- , .
.
- 使用显示意图的名称-例如,int elapsedTimeInDays,而不是int days ...
- 使用明显的名称-例如客户,而不是DtaRcrd102
- 避免编码-不要使用m_前缀,也不要使用匈牙利表示法。
- 为每个概念选择一个词-本质上,不要使用不同的名称(例如,获取,检索和获取)进行相同的操作。
4.抽象很重要
抽象。资料来源:Abstruse Goose
根据Clean Code,如果我们要确保函数仅执行一项任务,则需要确保每个函数中的所有命令处于相同的抽象级别。
Martin通过FitNesse的以下示例对此进行了说明:
. — hr , — . , , :
:
- render () hr.
- HtmlTag.
- .
:
« ».
.
5. —
, , , , . , .
, , , , . « », , « , ».
« . , . , ».
.
, , , . , , — . , — .
« » , . , , — , .
, , . , , 13 , . , , , « », 2021 . , .