编写良好代码的重要性¶
GNOME 是一个雄心勃勃的自由软件项目,它由许多或多或少独立的软件包组成。GNOME 的许多工作都是由志愿者完成的:虽然有很多人全职或兼职为 GNOME 工作,但志愿者仍然是我们贡献者的很大一部分。程序员随时可能加入或离开,他们可以为 GNOME 项目投入不同的时间。人们的“现实世界”责任可能会发生变化,这也会反映在他们能够投入 GNOME 的时间上。
软件开发需要花费大量的时间和精力。这就是为什么大多数兼职志愿者无法独自开始大型项目的原因;为现有项目做贡献更容易、更有回报,因为这会产生立即可见和可用的结果。
因此,我们得出结论,让现有项目尽可能容易地让人们参与贡献非常重要。实现这一目标的一种方法是确保程序易于阅读、理解、修改和维护。
混乱的代码很难阅读,如果人们无法理解代码试图做什么,他们可能会失去兴趣。此外,程序员能够快速理解代码也很重要,这样他们才能在短时间内开始使用错误修复和增强功能进行贡献。源代码是一种交流形式,它更多的是为人们而不是为计算机服务的。就像没有人喜欢阅读带有拼写错误、语法错误和潦草标点的书一样,程序员应该努力编写易于他人理解和修改的良好代码。
以下是良好代码的一些重要特性
- 清晰性
清晰的代码易于阅读,无需付出太多努力。这让人们能够轻松地理解它。这包括编码风格本身(大括号放置、缩进、变量名)以及代码的实际控制流程。
- 一致性
一致的代码使人们更容易理解程序的运作方式。在阅读一致的代码时,人们会下意识地形成一些关于代码运作方式的假设和期望,因此更容易、更安全地对其进行修改。在两个地方看起来相同的代码也应该工作相同。
- 可扩展性
通用代码比具有大量硬编码假设的非常具体的代码更容易重用和修改。当有人想要向程序添加新功能时,如果代码从一开始就设计为可扩展的,显然会更容易做到。以这种方式未编写的代码可能会导致人们不得不实施难看的补丁来添加功能。
- 正确性
最后,设计为正确的代码可以让人们花更少的时间担心错误,而花更多的时间来增强程序的特性。用户也喜欢正确的代码,因为没有人喜欢崩溃的软件。为正确性和安全性编写的代码(即,明确尝试确保程序保持一致状态的代码)可以防止许多种类的愚蠢错误。
书籍参考¶
代码大全,作者:Steve McConnell
重构:改进现有代码的设计,作者:Martin Fowler。
设计模式:可重用面向对象软件的要素,作者:Erich Gamma, Richard Helm, Ralph Johnson 和 John Vlissides。
面向对象设计启发式,作者:Arthur Riel。