我在模块还没认全,元类、类方法和静态方法的区别、装饰器写的还不溜等还不懂的时候,就开始注意让写的代码尽量Pythonic和符合PEP8标准。

到现在,基本手写的都是符合标准的Python代码。我写代码力求如下几点:

1. 简单,调用链简单,不用写注释,同事看我代码,除了我的命名比较简陋不高大上以外,应该没有难度。

2. 不炫技。力求粗暴实现功能,只在合适的地方用合适的方法。

3. 不给其他同事机会吐槽。除了变量命名偶尔会被其他同事鄙视以外,一般很少有人对我的代码抽象能力,性能提供评价意见。

4. 时间允许情况下尽量把代码写完美。一般我的代码都是merge后就不动了,因为没啥可重构的机会... 除非有BUG。哦,我的BUG数量应该是很少的。

这不是一个自吹自擂的答案。

我和我们组在控制代码质量上面做了很多工作,上段时间我写了篇专栏 保证代码质量二三事 - Python之美 - 知乎专栏 ,BTW,dennis还打赏了5块钱(ÒωÓױ)。

作为一个过来人,我一定要给关注了和看这个问题的同学提点经验。

首先看一下我刚到豆瓣第二周提的一个PR来给大家乐呵一下:

/>

这个页面来着豆瓣自己造的团队协作工具 CODE(Douban CODE)。这个PR包含9百多行代码,但是其中包含了700多行thirft自动生成的。 看一下评论数「164」,感受下一个觉得自己代码写的不错的人,被团队其他人这么吐,我的心理阴影。

为什么会造成这么多呢:

1. 豆瓣有一些工程上的习惯甚至黑魔法,团队有自己的规范。

2. 代码写的不好。

3. 来豆瓣前我是一路自学的野路子,我还算对自己写的代码要求高,但是好多细节上既有理解问题也有代码实现的问题。

那么,假如你现在对自己很放纵,但是还挺有追求希望去更好的团队,到更高的平台,防止遇到我们这些人被喷的第二天不想去上班。如下编程习惯一定要有:

1. PEP8。 这个大家都知道了,在我们组,PEP8不过你的PR都基本没人理,吐都懒得吐。但是PEP8里的要求还挺多,怎么办呢?没办法,熟能生巧尔。推荐看 PEP8: The Style Guide for Python Code , requests作者做的,更友好和直观。不熟的时候除了在终端执行下pycodestyle(也就是原来的pep8),还可以给自己的编辑器配上一些自动做PEP8检查的插件。

2. Pythonic。写程序最大的特点就是你可以用多种方法实现同一个功能,但是我能分辨出来那个更Pythonic,那个明显是XX语言转型过来的程序员写的。一般只有一种是最优解,代码最简练执行效率也最高,这个也没啥办法,就是要靠你日常的搜集和自己的不断提高。我现在翻看2年前的代码觉得不忍直视,希望2年后看今天自己写的代码也有这种感觉 。

3. 搜索能力。你没有能力和精力完成所有的事情,有些时候需要去找答案,至少是找个灵感。所以学习从Google、Github、Stackoverflow等网站找到自己需要的东西是一个很好的习惯,以后你会感谢自己这个好习惯。

4. 善用Python标准库。很多功能的最佳实践其实在标准库中,不要一味的自己吭哧吭哧造,造多了你会发现很多都无意义,浪费了时间甚至把你带偏了。

5. 找到一整套完成工作的最佳流程。这个有点大,其实就是配置一个趁手的编辑器,俺强推spacemacs,多花时间用好它;找到一个调试bug的方式,出现问题你要有一系列定位问题,跟踪问题,解决问题的方案,让你非常快的完成工作,而不是漫无目的的每次看心情去debug,必须有「套路」。

6. 尽能力熟悉工作中常用的工具和项目。比如用Flask,有空读读它的源码,这样出了问题,会对你找到原因很有帮助,我现在经常受益于这条。没看过源码就敢在产品线用的人都是「银才」。

欢迎关注本人的微信公众号获取更多Python相关的内容(也可以直接搜索「Python之美」):

python的编程模式-Python 编程,应该养成哪些好的习惯?相关推荐

  1. python的编程模式-Python设计模式:为了整洁又时尚的代码

    关键时刻,第一时间送达! 作者ANDREI BOYANOV - 高级软件工程师 @TOPTAL 让我们再重申一下:Python是一种具有动态类型和动态绑定的高级编程语言.我将它描述为一个强大的高级动态 ...

  2. 『设计模式』Web程序开发最基本的编程模式--MVC编程模式

    23种设计模式+额外常用设计模式汇总 (持续更新) 什么是MVC编程模式 ? MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controlle ...

  3. python的编程模式-Python设计模式之状态模式原理与用法详解

    本文实例讲述了Python设计模式之状态模式原理与用法.分享给大家供大家参考,具体如下: 状态模式(State Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 ...

  4. python编程模式_Python编程中的反模式

    原标题:Python编程中的反模式 这篇文章收集了我在Python新手开发者写的代码中所见到的不规范但偶尔又很微妙的问题. 本文的目的是为了帮助那些新手开发者渡过写出丑陋的Python代码的阶段. 对 ...

  5. python的编程模式-python编程(python开发的三种运行模式)【转】

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 单循环模式 多线程模式 reactor模式 [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing ...

  6. php编程模式,PHP编程之-设计模式简单实例

    [单例模式] /*  * @singleton  * */ abstract class  SingletonClass{     static private $obj;     public fu ...

  7. 响应式编程(反应式编程)的来龙去脉(同步编程、多线程编程、异步编程再到响应式编程)

    响应式编程的来龙去脉(同步编程.多线程编程.异步编程再到响应式编程) 文章目录 响应式编程的来龙去脉(同步编程.多线程编程.异步编程再到响应式编程) 简介 1. 示例 2. 同步编程 3. 多线程编程 ...

  8. USF MSDS501 计算数据科学中文讲义 2.4 Python 中的编程模式

    来源:ApacheCN『USF MSDS501 计算数据科学中文讲义』翻译项目 原文:Programming Patterns in Python 译者:飞龙 协议:CC BY-NC-SA 4.0 现 ...

  9. python语言的编程模式是什么意思_编程语言Python,可以用来干什么

    原标题:编程语言Python,可以用来干什么 Python因为简单全面易用而成为近年来大热的编程语言.但是很多人学习了这门余元的语法和基本功能之后却不知道Python能干什么以及怎么做.在此,把Pyt ...

最新文章

  1. 0709 C语言常见误区----------函数指针问题
  2. 利用SETFACL来设置文件或文件夹的访问控制列表ACL
  3. android操作系统优势,Android操作系统平台最大的优势
  4. 减治法解决约瑟夫斯问题(JAVA)
  5. 我国计算机系统安全保护等级的划分,信息安全技术题库:我国制定了强制性国家标准《计算机信息系统安全保护等级划分准则》,其中属于第二级的是()。...
  6. 让能力变现,才是硬道理
  7. 基于Java毕业设计医院药品管理系统源码+系统+mysql+lw文档+部署软件
  8. 发那科机器人示教器键盘_不限 发那科机器人示教器触摸屏急停按键失效维修...
  9. Hulu日常实习面经 (SDE/RSDE)
  10. Ubuntu里安装快捷键截图软件Flameshot
  11. linux tar.7z如何解压,(转)Linux下解压:tar、rar、7z命令
  12. linux根文件系统的移植 课程设计,linux课程设计bootloader的移植.doc
  13. c语言转义字符总结,C语言转义字符总结
  14. 精油商城小程序,让您的品牌更出彩!
  15. 23考研计算机:天津理工大学
  16. 2020 几款常用 Redis 可视化工具
  17. Linux关闭/禁用触摸屏,deepin关闭/禁用触摸屏方法
  18. 2021编程语言排行榜出炉,C#年度语言奖
  19. python中gbk字符原因报错_深入理解Python中的字符和编码,结合,了解,与
  20. Jmeter+Jenkins+Ant接口自动化测试平台搭建(Mac)(一)

热门文章

  1. php一些单选、复选框的默认选择方法(示例)
  2. Ubantu 16.04中文输入问题解疑
  3. SecondarySort 原理
  4. Iframe高度自适应(兼容IE/Firefox、同域/跨域)
  5. c dup 函数
  6. SCSF 系列:Smart Client Software Factory 启动过程详解
  7. 用户界面设计的技巧与技术 (作者Scott W.Ambler)
  8. Java中Synchronized的用法(简单介绍)
  9. [Kerberos] Java client访问kerberos-secured cluster
  10. 带你学习JQuery:事件冒泡和阻止默认行为