当前位置: 首页 > 科技观察

编写Python代码时需要权衡取舍

时间:2023-03-22 12:28:37 科技观察

本文是Python之禅特别系列的一部分,重点关注原则七、八和九:可读性、特殊情况和实用性。软件开发是一门充满权衡取舍的学科。对于每一个选择,都有一个同样合理但相反的选择。将方法设为私有?你鼓励复制粘贴。公开一个方法?您过早地致力于接口。软件开发人员每天都在做出艰难的选择。虽然《Python之禅》中的所有原则都在某种程度上涵盖了权衡取舍,但以下原则提供了一些最严格、最冷酷的审查。可读性很重要从某种意义上说,这个中间原则确实是整个Python禅宗的核心。这个原则与编写高效的程序无关。在大多数情况下,它甚至与编写健壮的程序无关。这是关于编写其他人可以理解的程序。就其本质而言,读取代码发生在代码被添加到系统之后。通常,它会在很长很长一段时间后发生。忽略可读性是最简单的选择,因为它现在没有坏处。无论添加新代码的原因是什么,它都会影响到现在,无论是一个令人痛苦的错误还是一个非常需要的功能。如果您承受着很大的压力,需要将可读性放在一边而只是“解决问题”,那么Python之禅提醒我们:可读性很重要。编写代码使其具有可读性是一种同情心,对自己和他人都是如此。特殊情况总有各种借口不足以违反规则:这个bug很麻烦,简单处理一下;这个功能非常紧急,不管外表如何;没关系。一旦我们妥协了特殊情况的借口,大坝就会破裂,原则就会丢失;事情演变成疯狂的麦克斯荒谬,每个程序员都试图为自己找到最好的借口。纪律需要承诺。对软件开发人员的唯一考验是在困难重重、诱惑力大的时候。违反规则总是有合理的借口,这就是为什么你必须遵守规则。纪律是对例外说不的艺术。没有任何解释可以改变这一点。虽然,实用胜于纯粹“如果你只想着打、弹、撞、碰敌人,你是无法真正击倒他的。”——《宫本武藏:水之卷》归根结底,软件开发是一门实践性的学科。它的目标是解决真实的人面临的真实问题。实用胜于纯粹:首先,我们要解决问题。如果我们只考虑可读性、简单性或美学,我们不会真正解决问题。正如宫本武藏所说,每一次代码修改的首要目标都应该是解决问题。这个问题需要我们全心全意去解决。如果我们不以解决问题为目标,而只想着Python之禅,那么我们就违背了这些原则。这是Python之禅固有的另一个矛盾。

猜你喜欢