编写 Python 代码时进行权衡

这是关于 Python 之禅的特别系列文章的一部分,重点关注第七、第八和第九条原则:可读性、特殊情况和实用性。
110 位读者喜欢这篇文章。
Brick wall between two people, a developer and an operations manager

软件开发是一门充满权衡的学科。对于每一个选择,都存在一个同样合理但相反的选择。将方法设为私有?您正在鼓励复制粘贴。将方法设为公开?您正在过早地承诺一个接口。

软件开发人员每时每刻都在做出艰难的选择。虽然 Python 之禅 中的所有原则都在某种程度上涵盖了权衡,但以下原则以最严厉、最冷静的眼光审视了一些权衡。

可读性很重要。

在某种意义上,这条中间原则确实是整个 Python 之禅的中心。禅宗不是关于编写高效的程序。它甚至在很大程度上也不是关于编写健壮的程序。它是关于编写其他人可以阅读的程序。

阅读代码,就其本质而言,发生在代码添加到系统之后。通常,它发生在很久以后。忽视可读性是最容易的选择,因为它现在不会造成伤害。无论添加新代码的原因是什么——一个痛苦的错误或一个强烈要求的功能——它都会造成伤害。现在。

面对将可读性抛在一边而只是“解决问题”的巨大压力,Python 之禅提醒我们:可读性很重要。编写可读的代码是对您自己和他人的慈悲。

特殊情况不足以打破规则。

总是有借口。这个错误特别令人痛苦;让我们不要担心简洁性。此功能特别紧急;让我们不要担心美观。涵盖这种情况的领域规则特别复杂;让我们不要担心嵌套级别。

一旦我们允许特殊恳求,堤坝就会崩溃,不再有原则;事情会演变成疯狂的麦克斯反乌托邦,每个程序员都为自己而战,试图找到最好的借口。

纪律需要承诺。只有当事情变得困难,当存在强烈的诱惑时,软件开发人员才会受到考验。总是有充分的理由打破规则,这就是规则必须保持规则的原因。纪律是拒绝例外的艺术。再多的解释也无法改变这一点。

尽管如此,实用性胜过纯粹性。

“如果你只想着击打、弹跳、击打或触摸敌人,你将无法真正地砍倒他。”

— 宫本武藏,《水之卷

最终,软件开发是一门实用的学科。它的目标是解决真实的人们面临的实际问题。实用性胜过纯粹性:最重要的是,我们必须解决问题。如果我们只考虑可读性、简洁性或美观性,我们将无法真正解决问题

正如武藏所建议的那样,每个代码更改的首要目标应该是解决问题。问题必须始终铭记于心。如果我们偏离它而只考虑 Python 之禅,我们就辜负了 Python 之禅。这是 Python 之禅中固有的另一个矛盾。

接下来要读什么
标签
Moshe sitting down, head slightly to the side. His t-shirt has Guardians of the Galaxy silhoutes against a background of sound visualization bars.
自 1998 年以来,Moshe 一直参与 Linux 社区,在 Linux “安装聚会”中提供帮助。他自 1999 年以来一直编写 Python 程序,并为核心 Python 解释器做出了贡献。Moshe 在这些术语存在之前就一直是 DevOps/SRE,他非常关心软件可靠性、构建可重现性以及其他此类事情。

评论已关闭。

© . All rights reserved.