Python 彩蛋 —— 开发人员留下的惊喜
Posted 闹闹不闹!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 彩蛋 —— 开发人员留下的惊喜相关的知识,希望对你有一定的参考价值。
Python 彩蛋 —— 开发人员留下的惊喜
简介:Python 核心程序开发人员在软件内部设计了2个彩蛋。一起来看看吧。
文章目录
💡彩蛋一:Python 之禅
Python 社区的理念都包含在
蒂姆·彼得斯(Tim Peters)
撰写的“Python之禅”中。想要了解这些编写优秀Python代码的指导原则,只需要在解释器中执行命令import this
。
《Python之禅》原文⬇️
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea – let’s do more of those!
翻译及解释⬇️
《Python之禅》,蒂姆·彼得斯著
- 美丽优于丑陋。(Beautiful is better than ugly.)
含义:程序员经常为实现功能而快速编写代码,导致没有考虑可读性。优美的代码肯定更加受人欢迎。
- 明了优于隐晦。(Explicit is better than implicit.)
含义:代码清晰易懂,避免将代码的功能隐藏晦涩的代码中,使得别人需要在非常熟悉代码之后才能完全理解其功能。代码应该命名规范并且多些注释,使程序可读性更高,跟容易理解。
- 简单优于复杂。(Simple is better than complex.)
含义:如果有两个解决方案,一个简单、一个复杂,都能达到需求,就选择简单的方案。这样方便代码的维护与改进。
- 复杂优于凌乱。(Complex is better than complicated.)
含义:如果没有简单的方案就选复杂的方案。
- 扁平优于嵌套。(Flat is better than nested.)
含义:优美的代码应当是扁平的,不能有太多的嵌套。将代码放到一个自定义模块中,而不是将代码分散在多个子模块或子类中。
- 稀疏优于密集。(Sparse is better than dense.)
含义:优美的代码有适当的间隔,不要奢望一行代码解决问题
- 可读性很重要!(Readability counts.)
含义:代码的可读性和可维护性很重要,因此,清晰易读的代码比简洁的不清晰代码更为重要。
- 即便假借特例的实用性之名,也不可违背这些规则。(Special cases aren’t special enough to break the rules.Although practicality beats purity.)
含义:这些规则比实用性更重要。
- 错误绝不能悄悄忽略, 除非它明确需要如此。(Errors should never pass silently.Unless explicitly silenced.)
含义:精准地捕获异常,不写 except:pass 风格的代码
- 面对不确定性,不要妄加猜测。(In the face of ambiguity, refuse the temptation to guess.)
含义:如果代码无法正常工作,那是有原因的。不要妄加猜测,可以使用穷举法。
- 而是尽量找一种,最好是唯一一种明显的解决方案(There should be one-- and preferably only one --obvious way to do it.)
含义:如果解决同一个问题有多种方法,这不见得是一件好事。过于灵活的解决方法可以让人自由发挥。但如果都是随个人习惯实现,那会让整个项目的代码参差不齐,后期维护人员也会一头雾水。
尽管这种方式一开始可能并不明显,除非你是荷兰人。(荷兰人指吉多·范罗苏姆)(Although that way may not be obvious at first unless you’re Dutch.)
做也许好过做,然而不假思索还不如不做。(Now is better than never.
Although never is often better than right now.)
含义:在编写程序之前要仔细思考,清楚实现的步骤。
很难解释的,必然是坏方法。(If the implementation is hard to explain, it’s a bad idea. )
很好解释的,可能是好方法(If the implementation is easy to explain, it may be a good idea.)
含义:Python致力于简化程序员的工作。程序需要编写它的程序员可以理解。如果“高性能”代码过于复杂以致程序员无法理解,那么它就是不好的代码。
- 命名空间是个绝妙的主意,我们应当多加利用(Namespaces are one honking great idea – let’s do more of those!)
含义:要好好利用命名空间。命名规范,名称不冲突。
💡彩蛋二:Python 有趣的漫画
xkcd是由
兰德尔·门罗(Randall Munroe)
所绘制的网络漫画,作者给作品的定义是一部“关于浪漫、讽刺、数学和语言的网络漫画” 感兴趣的可以在解释器中执行命令import antigravity
或xkcd链接。
惊喜的Antd 积雪彩蛋
在国外民众欢度圣诞期间,开发者社区却对 Antd 开发团队发起了连番的炮轰。原因是阿里开源UI框架项目Ant Design在未通知开发者的前提下,在圣诞节这天给所有按钮添加了积雪效果,对于一些政企类严肃网站来说是一场灾难。
库中暗藏了一个未事先告知的圣诞彩蛋、而且也没法手动禁用,导致许多项目方遭遇了客户投诉。从评论来看,网友们的情绪普遍比较激动,不少人表示“老板问我按钮为什么被狗啃了”、“今天的工作就是给客户们解释我们代码没有被注入”。
在代码托管网站 GitHub 上,开发者们表现出了一边倒的批评态度 ——“我留意到按钮组件的上方出现了一块雪花?这是圣诞节彩蛋吧?为什么不经过开发者的允许就擅自加上了?”
如果只是普通的应用场景,挨两回骂也就过去了。但偏偏大家出于对 Antd 的信任,在许多严肃的政企类环境中运用了 Antd 的“彩蛋库”,导致第三方开发者承受了不必要的压力。
对于这种“毫无开源的责任意识”、“非常不专业的做法”,不少开发者认为值得商榷 —— 至少你也该提供个 API,让大家在想关闭的时候手动关闭啊!
悲剧的是,有开发者表示,老板已经扣他工资了(我看没被炒鱿鱼就已经是万幸了)。甚至有人怀疑,蚂蚁金服是不是给 Antd 团队换了个产品经理。
忍不住的人,已经直接开骂了。
更惨的是,第三方开发者设置的 title,竟然也会被完全覆盖。
看!这么可爱的积雪按键以及充满惊喜的“Ho Ho Ho!”
来感受一下这个可爱的按键!一个不过瘾?我们来看一下这一片!
众多应用 Ant Design 进行政府类项目开发的程序员的圣诞节并不好过,这个可爱的白色积雪,以及挑逗的“Ho Ho Ho!”变成了他们即将失业的催命“劫”,为此,引来了众多程序员的集体炮轰声讨!
蚂蚁金服这一波神操作,仿佛一个从来都一脸严肃的甲方爸爸突然举起小拳拳说了句“小拳拳捶你胸口”,结果一不小心,锤吐血了,还在问,我萌吗?
一部分可怜的程序员,小心脏难以经受住这一波考验,在即将为2018年画上圆满句号,期待着年终奖几何时,突然和自己的这份工作 say goodbye 了
甚至有人已经被查水表,被带走喝茶聊天, 在积极提倡《关于实施中华优秀传统文化传承发展工程的意见》落实时,我们送走了这个用了 Ant Design 的程序员!
如此大的“彩蛋”变“地雷”,发布者被炸了出来,诚恳道歉及时修复
并且表示,真的!真的!真的!没有其他的“惊喜”了。
某高性能响应式 Web 开发者表示,antd 是业内领先的前端组件库之一,此前它给大家留下了相当正面的印象。但在本次事件发生后,大家对它的信任瞬间涣散了。
如此涉及大量实际开发项目的开源项目并不仅仅只是如电影结尾暗藏彩蛋一样让人娱乐一下,而是给不少开发者带来“惊吓”,此举初衷虽无恶意,但是做法确实欠妥。
小编表示,商业软件,我们还是正经点吧!如果因此失业,蚂蚁金服真的不考虑收留下这些可怜的程序员吗?
以上是关于Python 彩蛋 —— 开发人员留下的惊喜的主要内容,如果未能解决你的问题,请参考以下文章
阿里旗下蚂蚁金服开源项目Antd彩蛋惹出大篓子~ 惊喜变惊吓!
迈阿密 Bitcoin 2021 全记录:奶王云集,惊喜与惊吓不断(内含彩蛋)
tinper教你如何躲过类似Antd圣诞彩蛋所引发的群体事件