编写 Python 代码时要有所取舍
本文是 Python 之禅特别系列的一部分,重点此篇着眼于第七、八、九条原则:可读性、特殊情况和实用性。
软件开发是一门充满了取舍的学科。每一个选择,都有一个同样合理但相反的选择。将一个方法私有化?你在鼓励复制粘贴。将一个方法公开?你在过早地对一个接口做出承诺。
软件开发者每时每刻都在做艰难的选择。虽然 Python 之禅 中的所有原则都在一定程度上涵盖了权衡,但下面的原则对一些权衡进行了最艰难、最冷酷的审视。
可读性很重要Readability counts从某种意义上说,这一中间原则确实是整个 Python 之禅的中心。这条原则与编写高效的程序无关。在大多数情况下,它甚至与编写健壮的程序也无关。它讲的是编写出别人能读懂的程序。
阅读代码,就其本质而言,发生在代码被添加到系统中之后。通常,它会发生在很久很久以后。忽略可读性是最简单的选择,因为它对现在没有伤害。无论添加新代码的原因是什么,它都会对现在造成影响,无论是一个令人痛苦的 bug 还是一个被强烈要求的功能。
如果面对巨大的压力,把可读性扔到一边,只管 解决问题 ,而 Python 之禅提醒我们:可读性很重要。编写代码让它适合阅读,无论是对自己还是他人,都是一种慈悲。
特殊情况不足以违反规则Special cases aren t special enough to break the rules总是有各种借口:这个 bug 特别麻烦,先简单处理一下吧;这个功能特别紧急,别管美观了;这种情况下所涉及的领域规则特别复杂,嵌套深点也没关系。
一旦我们对特例的借口妥协,大坝就会破裂,就丧失了原则;事情就会演变成一个疯狂麦克斯的荒诞症,每个程序员都会为自己试图找到最好的借口。
纪律需要承诺。只有当事情艰辛、有强烈的诱惑时,才是对一个软件开发人员的考验。总是有合理的借口来破坏规则,这就是为什么必须坚守规矩的原因。纪律就是向例外说不的艺术。没有任何解释可以改变这一点。
虽然,实用性胜过纯洁性Although, practicality beats purity如果你只想着击打、弹跳、撞击、触碰敌人,你将无法真正打倒他。 《宫本武藏:水之卷》
归根结底,软件开发是一门实用的学科。它的目标是解决真实的人所面临的实际问题。实用性比纯粹性更重要:首先,我们必须解决问题。如果我们只考虑可读性、简单性或美观性,我们将无法真正解决问题。
正如宫本武藏所说的,每一次代码修改的首要目标应该是解决问题。这个问题需要我们心心念念地去解决它。如果我们不以解决问题为目标,只想着 Python 之禅,我们就辜负了这些原则。这是 Python 之禅所固有的另一种矛盾。
via: https://opensource.com/article/19/12/zen-python-trade-offs
作者:Moshe Zadka 选题:lujun9972 译者:wxy 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/50020.html
linuxpython程序员软件开发相关文章
- Python常用代码_python画图代码大全
- Python 分形算法__代码里开出来的数学之花
- 程序员python表白代码[通俗易懂]
- Python-selenium「建议收藏」
- python教程:用简单的Python编写Web应用程序
- 【说站】python列表有几种切片形式
- Python基础 – 使用别人代码的模块机制
- python分析人口出生率代码_国家统计局居然也能用的上Python?人口数据Python脚本了解一下?…[通俗易懂]
- Python代码编写辅导:CSC411 Digit Classification
- python中的深拷贝和浅拷贝_python浅复制和深复制的区别
- Python用KShape对时间序列进行聚类和肘方法确定最优聚类数k可视化|附代码数据
- 使用四元数计算两个分子之间的RMSD(附Python代码)
- 热加载技术:修改Python代码并实时查看结果 ⛵
- 1行Python代码,计算程序的运行时间,也可以用在算法和接口的调优上
- Python Socket套接字编程
- 【愚公系列】2023年02月 Python工具集合-DrissionPage自动化测试集成工具
- 独家 | 数据科学家对可复用Python代码的实用管理方法(附链接)
- 性能最快的代码分析工具,Ruff 正在席卷 Python 圈!
- python-Python与MongoDB数据库-使用Python执行MongoDB查询(二)
- Python_Day35_Socket模块3和hmac模块详解编程语言
- 使用Python执行Linux命令的方法(python调用linux命令)
- python的select服务端的代码和客户端的代码详解编程语言
- CherryTree 是一个支持无限层级分类的笔记软件,Python 编写,支持富文本编辑和代码高亮,支持 Mac、Linux、Windows平台。
- Python使用Socket(Https)Post登录百度的实现代码
- python登录QQ邮箱发信的实现代码
- Python版的文曲星猜数字游戏代码
- python共享引用(多个变量引用)示例代码
- python正则匹配查询港澳通行证办理进度示例分享
- python实现带验证码网站的自动登陆实现代码