软件开发是一门充满权衡的学科。对于每一个选择,都存在一个同样合理但相反的选择。将方法设为私有?您正在鼓励复制粘贴。将方法设为公开?您正在过早地承诺一个接口。
软件开发人员每时每刻都在做出艰难的选择。虽然 Python 之禅 中的所有原则都在某种程度上涵盖了权衡,但以下原则以最严厉、最冷静的眼光审视了一些权衡。
可读性很重要。
在某种意义上,这条中间原则确实是整个 Python 之禅的中心。禅宗不是关于编写高效的程序。它甚至在很大程度上也不是关于编写健壮的程序。它是关于编写其他人可以阅读的程序。
阅读代码,就其本质而言,发生在代码添加到系统之后。通常,它发生在很久以后。忽视可读性是最容易的选择,因为它现在不会造成伤害。无论添加新代码的原因是什么——一个痛苦的错误或一个强烈要求的功能——它都会造成伤害。现在。
面对将可读性抛在一边而只是“解决问题”的巨大压力,Python 之禅提醒我们:可读性很重要。编写可读的代码是对您自己和他人的慈悲。
特殊情况不足以打破规则。
总是有借口。这个错误特别令人痛苦;让我们不要担心简洁性。此功能特别紧急;让我们不要担心美观。涵盖这种情况的领域规则特别复杂;让我们不要担心嵌套级别。
一旦我们允许特殊恳求,堤坝就会崩溃,不再有原则;事情会演变成疯狂的麦克斯反乌托邦,每个程序员都为自己而战,试图找到最好的借口。
纪律需要承诺。只有当事情变得困难,当存在强烈的诱惑时,软件开发人员才会受到考验。总是有充分的理由打破规则,这就是规则必须保持规则的原因。纪律是拒绝例外的艺术。再多的解释也无法改变这一点。
尽管如此,实用性胜过纯粹性。
“如果你只想着击打、弹跳、击打或触摸敌人,你将无法真正地砍倒他。”
— 宫本武藏,《水之卷》
最终,软件开发是一门实用的学科。它的目标是解决真实的人们面临的实际问题。实用性胜过纯粹性:最重要的是,我们必须解决问题。如果我们只考虑可读性、简洁性或美观性,我们将无法真正解决问题。
正如武藏所建议的那样,每个代码更改的首要目标应该是解决问题。问题必须始终铭记于心。如果我们偏离它而只考虑 Python 之禅,我们就辜负了 Python 之禅。这是 Python 之禅中固有的另一个矛盾。
评论已关闭。