小白趣读PEP| 优雅的代码往往不是用手写出来的

简介: 小白趣读PEP| 优雅的代码往往不是用手写出来的

大家好,我是Kuls。

从今天开始,我打算来编写一个新系列。这个新系列的名称就叫小白趣读PEP

首先给大家简单介绍一下PEP是什么,PEP的全称是Python enhancement Proposals,简单翻译过来就是Python增强建议。

其实,你可以理解为对于Python的建议书。


1.jpg


https://www.python.org/dev/peps/

上面是它的官网,你可以去看看。

因为看网上很多大佬都翻译了一些重要的PEP,所以我并不打算这个系列只是进行单纯的翻译,更多的是从我和你的角度去解读一篇PEP。

当然,翻译也会有,可能是我自己翻译,也可能是别人翻译的。

名称叫趣读,那必然得有趣点,不然我自己也看不下去


2.jpg


PEP20 The Zen of Python

标题解释过来就是,第20条建议 Python之禅

为什么不从第一条开始呢?

因为第一条是PEP Purpose and Guidelines,没啥意思。


3.jpg


而且Python之禅这个标题直接吸引我点进去阅读了。

下面我们进入正题,首先给大家看下原文:


10.jpg


  1. 优美胜于丑陋

我们可能看过雷军大学时代码的新闻,他说他的代码像诗一样美,我们也要朝着那个方向发展。

人总是进步的,我现在回过头看以前写的代码,那都是些什么玩意?

  1. 明晰胜于晦涩

当你看了许多的代码,你就会发现每个人的代码都写的不一样,同样实现一个需求,有些人写的很难看懂,有的人却写的非常的明晰且通俗。

  1. 简洁胜于复杂

记住这句话:不搞花里胡哨的,一切以简洁为主。


4.jpg


  1. 复杂胜于凌乱

上面说简洁比复杂好,这里说复杂比凌乱好,我认为这里的复杂不是跟前者一样。这里的复杂的比较对象是凌乱,也就是说我实现的功能很复杂,但是我写的代码却不凌乱,清晰明了。


5.jpg


  1. 扁平胜于嵌套

其实这里的扁平我们可以理解为扁平化设计,即去掉冗余、复杂的装饰效果。

  1. 疏胜于密

代码不要在一行全部写完,代码与代码之间要保留间隔。

在Python中代码全写一行会报错,但是像Java等语言你确实可以在一行中写下所有代码。一行写下所有代码并不会代表你很牛逼,除非你把十行代码简化为一行。

  1. 可读性很重要

对于用户来说,可读性好与差没关系。但是身为一个程序员,你必须要为下一个接班人着想,不要写的连自己也看不懂了。


6.jpg


我们可以发现github上比较火的项目都是可读性很高的。

  1. 特殊情况不足以打破规则

不要去尝试挑战规则,如果能挑战成功,你还是现在这样吗?


7.jpg


  1. 不要以为错误不会来,除非你假装没看见

我觉得这句话确实很真实,很多时候程序会偶尔出现一些小错误,但是恰恰以为是小错误就不去理会。

这很可能会在关键的时候掉链子。

  1. 面对不确定,不要去猜测,最好找到唯一一种明显的解决方法,但是这种方法不一定明显,但是问题不大,因为你不是Python之父

这句话还挺有意思(好像在骂我?

其实就是告诉我们要深度思考,不要浮于表面。

  1. 做比不做好,不做比不带脑子做好

这句话看表面意思还看不出什么,但是看了大佬翻译的才恍然大悟。


8.jpg


  1. 如果这个主意很难解释,那么这是个坏主意;如果它很容易解释,那么它是个好主意

这句话总结了上面的简洁、复杂和凌乱,还有深度思考。Kuls个人认为,主意很难解释不一定是主意不好,也有可能是自己的原因,所以深度思考很重要。

  1. 命名空间是个很不错的主意,让我们多运用它吧

这应该算是提倡。命名空间就是防止同名干扰。

就例如在xml中,两个相同含义例如表格都是以< table >来命名,但实际表达的东西不一样,一个是动物种类的表,一个是水果种类的表。如果把两个表合在一个文件,那么就会有冲突,这个时候我们可以通过< a:table >和< f:table >这种形式来命名


总结

其实PEP20对于刚刚踏入编程世界的朋友很有帮助,它能够帮你塑造出什么才是美的代码的形象。

对于程序员来说也有参考价值,能够时时刻刻提醒我们,如果去优雅的搬砖。

今天的文章就到这了,不知道大家对于这个系列的文章感不感兴趣,如果感觉不错,帮忙点个在看吧!!!


9.jpg

相关文章
|
3月前
|
缓存 前端开发 JavaScript
前端面试必须掌握的手写题:进阶篇
前端面试必须掌握的手写题:进阶篇
|
存储 Python
Python 基础语法和规范,初学者少踩坑
Python 基础语法和规范,初学者少踩坑
|
缓存 前端开发 API
手写中实现并学习ahooks——useRequest
最近业务没有之前紧张了,也是消失了一段时间,也总结了一些之前业务上的问题。 和同事沟通也是发现普通的async + await + 封装api在复杂业务场景下针对于请求的业务逻辑比较多,也是推荐我去学习一波ahooks,由于问题起源于请求,因此作者也是直接从 useRequest 开始看起。
155 1
|
前端开发 算法 安全
前端面试100道手写题(1)—— 手写Promise实现
今年的金三银四面试,遇到了很多新的面试八股文,其实心里对手写题或者算法题有一定抵触,因为实际工作中基本上就不会用到这些东西,但是正因为这些基础八股文,才能真正验证一个人对技术有多热爱的程度。也有可能近几年没有对这些基础知识进行巩固,所以干脆一狠心,先立个flag, 准备完成100道手写题。
229 0
|
存储 数据库 开发者
作为一个Python爱好者,如何写出高可读性的代码?
作为一个Python爱好者,如何写出高可读性的代码?
作为一个Python爱好者,如何写出高可读性的代码?
|
缓存 前端开发 JavaScript
带你手写 Promise,别再死记硬背了!!!(上)
带你手写 Promise,别再死记硬背了!!!
1052 1
|
前端开发
带你手写 Promise,别再死记硬背了!!!(下)
带你手写 Promise,别再死记硬背了!!!
58 0
|
索引 Python
Python语法小白入门(三)
Python语法小白入门
142 0
Python语法小白入门(三)
|
Unix 编译器 程序员
如何写出高质量的代码 -- 给所有编程学习者的一个建议
如何写出高质量的代码 -- 给所有编程学习者的一个建议
155 0
如何写出高质量的代码 -- 给所有编程学习者的一个建议
|
设计模式 JavaScript 前端开发
手写简易版的curry
手写简易版的curry
100 0