python的编程模式-Python 编程,应该养成哪些好的习惯?
我在模块还没认全,元类、类方法和静态方法的区别、装饰器写的还不溜等还不懂的时候,就开始注意让写的代码尽量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 编程,应该养成哪些好的习惯?相关推荐
- python的编程模式-Python设计模式:为了整洁又时尚的代码
关键时刻,第一时间送达! 作者ANDREI BOYANOV - 高级软件工程师 @TOPTAL 让我们再重申一下:Python是一种具有动态类型和动态绑定的高级编程语言.我将它描述为一个强大的高级动态 ...
- 『设计模式』Web程序开发最基本的编程模式--MVC编程模式
23种设计模式+额外常用设计模式汇总 (持续更新) 什么是MVC编程模式 ? MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controlle ...
- python的编程模式-Python设计模式之状态模式原理与用法详解
本文实例讲述了Python设计模式之状态模式原理与用法.分享给大家供大家参考,具体如下: 状态模式(State Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 ...
- python编程模式_Python编程中的反模式
原标题:Python编程中的反模式 这篇文章收集了我在Python新手开发者写的代码中所见到的不规范但偶尔又很微妙的问题. 本文的目的是为了帮助那些新手开发者渡过写出丑陋的Python代码的阶段. 对 ...
- python的编程模式-python编程(python开发的三种运行模式)【转】
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 单循环模式 多线程模式 reactor模式 [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing ...
- php编程模式,PHP编程之-设计模式简单实例
[单例模式] /* * @singleton * */ abstract class SingletonClass{ static private $obj; public fu ...
- 响应式编程(反应式编程)的来龙去脉(同步编程、多线程编程、异步编程再到响应式编程)
响应式编程的来龙去脉(同步编程.多线程编程.异步编程再到响应式编程) 文章目录 响应式编程的来龙去脉(同步编程.多线程编程.异步编程再到响应式编程) 简介 1. 示例 2. 同步编程 3. 多线程编程 ...
- USF MSDS501 计算数据科学中文讲义 2.4 Python 中的编程模式
来源:ApacheCN『USF MSDS501 计算数据科学中文讲义』翻译项目 原文:Programming Patterns in Python 译者:飞龙 协议:CC BY-NC-SA 4.0 现 ...
- python语言的编程模式是什么意思_编程语言Python,可以用来干什么
原标题:编程语言Python,可以用来干什么 Python因为简单全面易用而成为近年来大热的编程语言.但是很多人学习了这门余元的语法和基本功能之后却不知道Python能干什么以及怎么做.在此,把Pyt ...
最新文章
- 0709 C语言常见误区----------函数指针问题
- 利用SETFACL来设置文件或文件夹的访问控制列表ACL
- android操作系统优势,Android操作系统平台最大的优势
- 减治法解决约瑟夫斯问题(JAVA)
- 我国计算机系统安全保护等级的划分,信息安全技术题库:我国制定了强制性国家标准《计算机信息系统安全保护等级划分准则》,其中属于第二级的是()。...
- 让能力变现,才是硬道理
- 基于Java毕业设计医院药品管理系统源码+系统+mysql+lw文档+部署软件
- 发那科机器人示教器键盘_不限 发那科机器人示教器触摸屏急停按键失效维修...
- Hulu日常实习面经 (SDE/RSDE)
- Ubuntu里安装快捷键截图软件Flameshot
- linux tar.7z如何解压,(转)Linux下解压:tar、rar、7z命令
- linux根文件系统的移植 课程设计,linux课程设计bootloader的移植.doc
- c语言转义字符总结,C语言转义字符总结
- 精油商城小程序,让您的品牌更出彩!
- 23考研计算机:天津理工大学
- 2020 几款常用 Redis 可视化工具
- Linux关闭/禁用触摸屏,deepin关闭/禁用触摸屏方法
- 2021编程语言排行榜出炉,C#年度语言奖
- python中gbk字符原因报错_深入理解Python中的字符和编码,结合,了解,与
- Jmeter+Jenkins+Ant接口自动化测试平台搭建(Mac)(一)
热门文章
- php一些单选、复选框的默认选择方法(示例)
- Ubantu 16.04中文输入问题解疑
- SecondarySort 原理
- Iframe高度自适应(兼容IE/Firefox、同域/跨域)
- c dup 函数
- SCSF 系列:Smart Client Software Factory 启动过程详解
- 用户界面设计的技巧与技术 (作者Scott W.Ambler)
- Java中Synchronized的用法(简单介绍)
- [Kerberos] Java client访问kerberos-secured cluster
- 带你学习JQuery:事件冒泡和阻止默认行为