码迷,mamicode.com
首页 > 编程语言 > 详细

我的第一个python web开发框架(5)——开发前准备工作(了解编码前需要知道的一些常识)

时间:2017-10-10 14:34:43      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:相关   必须   str   等于   初学者   lan   enc   根据   hashlib   

  中午吃饭时间到了,小白赶紧向老菜坐的位置走过去。

  小白:老大,中午请你吃饭。

  老菜:哈哈...又遇到问题了吧,这次得狠狠宰你一顿才行。

  行行行,只要您赏脸,米饭任吃,嘻嘻,我们边走边聊。

  ......

  老大,我照您上次讲的办法都做完了,一步步执行,方向和条理清晰了很多,现在马上要进入编码了,所以想让您再指点一下。

  老菜:嗯嗯,做的还不错嘛,孺子可教也。

  编码相关的一些内容也是老生常谈的东西,它就好像起一座高楼大厦,如果没有设计图纸,没有将基础打好,那么可想而知建造出来的质量怎么样了。主要有下面几点要注意的:

  1.编码规范

  对于这个,python做的挺不错的,有统一的规范PEP8指导,只要按要求去做就可以了,当然要重点注意的有两点,一是命名一定要按有意义的可读性强的英文单词来使命名;二是代码注释上,尽量表达清楚到位,尽量多点注释,不然一段时间后你重新维护旧系统时,你就知道痛苦了。

  2.代码要适度封装

  简单来说,你要将相同或类似功能的代码放到统一的文件当中,给其他需要调用相同功能的地方调用。

  比如说我们经常要用到MD5进行加密,不可能每次要用到时,都要导入hashlib包,然后创建实例对象,再根据当前加密对象是bytes还是字符串,然后做相应处理,这样重复代码就会很多。万一那个地方要进行修改时,就得修改所有使用MD5加密的代码,而如果处理过程中有所遗忘,就会产生问题了。所以我们将md5、base64编码与解码、aes加密与解密等内容统一放到encrypt_helper.py这个加密操作包中,那么我们要使用时就非常方便了。

import hashlib

def md5(text):
    """md5加密函数"""
    md5 = hashlib.md5()
    if isinstance(text, bytes):
        md5.update(text)
    else:
        md5.update(text.encode(utf-8))
    return md5.hexdigest()

  为什么说适度封装呢?因为过度封装的话,会令代码的可读性下降,使代码变的难于理解,所以适度就好。当然对于你这种初学者来说,可能一开始很难理解,这不用担心,你就按你自己的经验正常实现功能需求就行了,等你完成这个项目后就会发现好多代码可以重用,需要封装重构了,到时再进行处理既容易理解,能力也会提升很快。

  3.程序文件分类摆放

  如果你的项目文件随便摆放,当程序文件越来越多时,就会非常混乱,要找某些功能函数时,就会很困难,所以在开发前要做好规划。

  比如common文件夹放各种工具函数包;config放各种配置文件;api放各种接口文件等

  4.面向对象

  理解什么是面向对象,清楚面向对象的几大原则,并能应用到编码当中。

  5.做好开发文档管理工作

  开发时尽量编写与维护好各种开发文档,比如原型、数据字典、业务流程图、接口文档等,如果是团队合作项目,还要维护好甘特图、开发进度管理表和各种约束、分析、会议记要等文档。

  当然小项目不用那么复杂,不维护一般来说也没太大的问题,如果可能的话还是维护好接口文档会比较好,不然二次开发或与别人合作开发时,就呵呵了...

  一般接口文档都会用wiki来记录,网上有很多开源免费的wiki,安装使用都很方便,比如:ShowDoc

  6.代码版本控制

  虽然是小项目,最好也用用SVN或Git等版本控制比较好。没有版本控制的项目,有时写着写着,想回滚以前版本时,或代码出现问题要回滚时,我只能呵呵了

  7.开发时间的评估与控制

  小项目在时间管理上也不要太大意了,有时一不留神就到了交付时间,如果还没开发出来就惨了,怎么评估和控制好项目开发时间也是很有讲究的。

  在开始一个项目时,一般都会对项目进行分解,细分到每个页面和接口,甚至更细的都有,然后分配这些开发任务到个人,有了这些详细的任务,要评估具体的开发周期就好办多了。在评估的时候,因为关乎到个人的开发时间控制,都会去思考每个页面与接口要处理的内容是什么,会遇到哪些技术难题,要怎么处理;又或者是这些页面或接口涉及的业务流程是什么,是否清晰,流转是否存在问题等等。这等于在开发前就已经在大脑里面将代码写过一便了,所以预估的时间大都八九不离十。

  而项目控制又涉及到项目管理,这里就不再扩展了,如果一个个往细说就没完没了了。

  唔唔,到吃饭的地方了,我看看哪家比较贵又吃不饱的,得好好挑一下才行。

  老大,大哥,注意口下留情啊!!!您知道小弟囊中羞涩,放过我的钱包吧!!!等收了项目款后再请你大吃一餐,不然剩下的日子我得天天吃泡面了,嗯,我看这家不错,我经常来,就去这家吧......

  老菜:@.@

 

 

作者:AllEmpty
出处:http://www.cnblogs.com/EmptyFS/
有兴趣的朋友可以加加python开发QQ群:669058475,大家一起探讨。大家有问题的话可以在群里发问,当然我平时工作也非常繁忙不一定会及时回复。

本文为AllEmpty原创,欢迎转载,但未经同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

我的第一个python web开发框架(5)——开发前准备工作(了解编码前需要知道的一些常识)

标签:相关   必须   str   等于   初学者   lan   enc   根据   hashlib   

原文地址:http://www.cnblogs.com/EmptyFS/p/7488816.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!