优秀的代码就像一封情书,别让祖传代码被称为「屎山」!

91cc99788120aca13facbea0dde0f4b9.gif

【编者按】编程是一种交流的方式,优秀的代码就像一封情书,个体化、真诚、深思熟虑,使用设计模式与原则构造,遵循最佳实践和重视测试,表达对读者的共感和尊重,是开发者留给后续开发者的持久遗产。

原文链接:https://addyosmani.com/blog/good-code/

本文已获作者授权,未经允许,禁止转载!

作者 | Addy Osmani     译者 | 明明如月

责编 | 夏萌

出品 | CSDN(ID:CSDNnews)

我们有时候对编程有着过于理想化的认识,将其看作是一种抽象的艺术、科学,甚至赋予了神秘的魔力。然而,现实情况却更为务实。从根本上说,代码是一种交流的方式。在我撰写的《学习 JavaScript 设计模式》一书中,我有句引言:“优质的代码如同写给后续开发者的一封情书。” 这就是跨越时间与空间的深情交流,从一位开发者传递到另一位开发者。

3499cf53b22b9d8bc35ad52cc4f7b494.png

代码:爱的语言

情书是充满个人色彩、真诚、深思熟虑的,它以诗意的方式表达了情感,经常通过精心选择的词句准确地传达感情。优秀的代码同样拥有这些特性。它具有个体化的特点,因为代码反映了程序员的逻辑思维和问题解决方法。优秀的代码需真诚,避免不必要的复杂性。它需要深思熟虑,考虑到下一个解读它的开发者。最重要的是,优秀的代码需精心设计,其目标是以最高效的方式解决问题。

45d5be01f79ba9dd255d99a71a5d95b8.png

设计模式与原则

正如我们有语法规则和句子结构来构造语言,以便情感可以被理解,我们也有设计模式和原则来构建代码。这些模式使得代码可扩展、可维护、高效,并且易读和易理解。设计模式提供了一种开发者共享的语汇,使他们能以公认的结构表达复杂的软件设计。

因此,优质的代码会有策略地运用这些模式,就像经验丰富的诗人会运用诗词技巧来创造共鸣一样。使用这些模式的目的并非仅仅为了使用,而是因为这些模式增强了解决方案的价值,使代码更易于理解,并确保代码库的持久性。

SOLID(单一职责原则、开闭原则、里氏替换原则、接口隔离原则和赖反转原则英文首字母构成的单词)、DRY ( Don't Repeat Yourself,强调避免在代码中出现重复的逻辑或信息)、KISS (Keep It Simple, Stupid。强调设计和实现软件时,应该尽量保持简单和直接,避免过度复杂化)和 YAGNI ( You Ain't Gonna Need It。核心思想是在编写代码时,不要去实现当前不需要的功能,也不要为未来可能需要的功能增加复杂性)不仅是原则,开发者更将它们视为编写优秀代码的基石。它们引导开发者做出明智的决策,在过度设计和过度简化之间找到平衡,最终,创造出一份会被接收者珍视的"代码情书"。

7d46da8ae75b07874c023b48a1cdf7cd.png

最佳实践

优秀的代码遵循已经确认的最佳实践,这就像在写情书时需要遵守的社交礼仪。适当的命名规则、模块化的设计以及详尽的注释都是其中的一部分。这些不仅仅是需要遵守的规则,更是衡量编程者在代码中对后续开发者是否负责的标准。它们的存在就是为了确保在代码的理解和传递过程中,程序员的初衷不会丢失。

f826cce603d7c2fb2dd7cb9cff373f69.png

重视测试

如同作者会对他们的作品进行校对一样,开发者也应对自己的代码进行测试。严谨的测试和测试驱动开发(TDD)是精心编写的代码的重要标志。测试能在各种环境下验证代码的性能,揭示潜在的缺陷和盲点。强大的测试框架往往就是代码质量的有力保证。

31e488c13e7511fef04d6aeadce8898b.png

共感与尊重

最重要的是,情书的核心在于对读者的共感和尊重,优秀的代码同样如此。编写出其他人可以阅读、理解和维护的代码,是一种对专业的尊重。这表明程序员理解他们的工作是更大的、持续的努力的一部分,软件是一个不断演进的实体,并且会有许多人在时间的推进中影响其命运。

05cf6c7e13d17af122d3170172faab3e.png

结论

最后,编程是一种创造性的活动,与写诗或画画有共通之处。然而,我们的创作之美并非仅仅由我们的算法的优雅或代码的效率决定,而是取决于他人是否能愉快、轻松地在我们的成果之上进一步构建。作为开发者,我们的职责不仅是解决当下的问题,也要确保我们的工作不会成为未来的困扰。

因此,我们编写的优秀代码不仅仅是一封情书,更是我们留给后续开发者的宝贵遗产。

你是否认同优秀的代码就像一封情书?你是否见过如情诗一样的优雅代码?你认为优秀的代码应该是怎样的?

08abd7a46caddf060fda3c2074175623.gif

猜你喜欢

转载自blog.csdn.net/FL63Zv9Zou86950w/article/details/131928836