扫码阅读
手机扫码阅读

代码整洁之道

263 2023-08-17

什么是整洁的代码?整洁的代码我认为具有如下几个特征:

  • 容易阅读。不需要多么资深的技术,就能比较轻松地阅读代码,理解写作者的用意。不必费尽心机去猜测某些代码的用途。代码的行数不会太长,不同的职责通过结构化编程、面向对象编程方式巧妙地分开,每一块代码的职责都比较单一;代码的命名很容易理解,看到名字就知道什么意思,而不是依赖大量注释来表明意图;

  • 容易扩展。当代码需要增加新的特性的时候,不必大动干戈,而是以最小的改动代价,完成功能的扩展。随着功能越来越多,代码结构不会被腐化。

  • 容易寻找。功能相关的、经常需要一起阅读和修改的代码被放在一起,以包、目录的形式分开存放。这样在修改、扩展的时候,很容易在文件之间导航。

  • 容易测试。代码功能高内聚、低耦合、单一职责、通过接口依赖其他系统。这样的代码很容易通过单元测试对其逻辑进行测试,测试代码也不会太过于冗长。

那么如何写出整洁的代码?整洁的代码不是一蹴而就的,特别是面对复杂的业务,想一步就写出整洁的代码,即使是哪些编程大师,一般也做不到。因此,写出整洁的代码要分两步:

  • 编写业务代码,让它可以工作。Make it works.

  • 重构业务代码,让它变得整洁。Make it right.

重构工作应该在编写完成后立即进行,否则你这块代码将永无时间进行重构。因为业务总是有没完没了的需求要做,你总是没有时间去进行“重要而不紧急”的重构工作。不要以功能实现为标准提交工作,而是以整洁的代码实现为标准。

有人会说我们没有时间,我们只有时间编写完成,没有时间重构。如果你没有时间保持代码整洁,那么你就必须得有时间去调试Bug、必须有时间去费劲地阅读过去的代码、必须有时间去费劲地添加新功能。出来混,迟早要还的。

现代编程语言提供给了我们三种编程范式用来保持代码整洁,结构化编程、面向对象编程、函数式编程,我们要合理使用。

现在的IDE工具提供给了我们强大的重构功能,我们要充分利用,让代码保持整洁。

要保证重构工作的顺利进行,则有必要用TDD测试驱动开发的方式。当你有了测试代码护航,你对你的重构工作将非常有信心,只要测试代码都是绿条,那么在保证代码整洁的时候就不会失去正确性。

代码被阅读的次数远大于被编写、修改的次数。因此我们值得花很大力气让它保持整洁,这是我们保证效率之道。由于整洁的代码如此重要,在Code Review的时候主要工作也应该是代码的整洁性,而不是是否有缺陷、效率是否高。

最后推荐 《整洁代码之道 Clean Code》和《Clean Architecture》两本书,仔细阅读并实践。

原文链接: http://mp.weixin.qq.com/s?__biz=MzUzMzkxMjE3NQ==&mid=2247483693&idx=1&sn=0f88bfe1900e4af91e523bd1792a8316&chksm=fa9d8e2dcdea073b5aae0a7656683d37c50f16224cdb1b563e57c8d2b7ac3131fce6c304bec5#rd