原标题:多年开发经验告诉你如何从一个Python新手蜕变成老手!
如果是爬虫,你把网络断了,看看有没有异常处理如果是文件,你把句柄改成None看看有没有问题如果取列表里面的item,当你获得列表为空,会发生什么所有的这一切,你有没有考虑到异常,有没有考虑到程序的健壮性。
要考虑异常分支,if 里面有没有else的情况for里面如果出现了错误,有没有break判断list[],需要看一下这个列表是否为空文件读写,有没有try/except拿到一个句柄,比如SSH,SQL,这样有没有考虑到句柄的有效性
5:添加配置文件我们刚从把局部变量,提到了全局变量。现在我们需要把这个全局变量放到一个配置文件里面,把实现和接口分离,降低耦合度。对于用户来说只要改配置文件就行了。比如可以把整个的全局变量放到一个config.py里面,然后在主程序里面用from config import * 这样的话,对后续的修改方便很多。
6:测试用例很重要程序虽然写好了,不管你的程序是几十行的小程序小脚本,还是几千上万行的项目,测试用例是一定要设计。
简单的程序可以设一些断言assert,看一些有无异常,对于复杂的逻辑,一定要针对性的设计多个分支回路来测一下代码。
7:日志模块很重要有同学说上面6步之后,我感觉代码已经很不错了,这么还有进化!Python的代码很多都是在服务区上运行的,你总不能一直都是print吧,尤其是对大型的程序,没有日志怎么行,建议用logging模块进行日志的记录。
想学习可以加Python学习裙 :227-435-450 即可获取,内附:开发工具和安装包,以及系统学习路线图
- ❷ -
8:性能上的优化如果你处理的任务仅仅是几百上千,对性能要求不高,对实时性要求不高那还好。如果你要处理几十万条数据呢!
我记得我有一次爬stackoverflow的数据,有96万的数据,你不用并发,估计等程序运行完,你已经睡着啦!
这个时候一定要考虑并发的处理,到底是用多进程,还是多线程,线程池,还是用协程,需要思考!
当然性能上的优化并不单是单线程变多线程,还有数据结构的优化,比如什么时候该用列表,什么时候用元组,哪一种对内存消耗少,查询快。
9:再次重构,函数变类为了让我们的代码更加易于扩展,适应变化!我们需要用类把变量和函数进行封装,设计一些接口,那些是对外开发的,那些是对外封闭的。
哪些用静态函数包裹,哪些用实例方法。是不是需要用一些装饰器来简化代码。
相同类别的函数,进行整合,合并要一个类里面。多个功能用多个类来表示,方便维护和扩展。类与类之间,考虑他们的内在关系。用组合还是继承,用一些简单的设计模式,根据程序的特性用比如工厂模式,观察者。
10:代码检查代码到这里应该是比较优美了,等一下是不是忘记了一个很重要的东西,我们有没有遵循PEP8的代码风格。
比如命名规范,每一行的长度,看似是细节,但是很多时候细节决定成败。为啥不用这个神器检查一下Pylint库,它能快速帮你查缺补漏。
上面这10条就是一个菜鸟写代码的总结和反思,也许对大家有用。返回搜狐,查看更多
责任编辑: