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

网友投稿 660 2022-05-29

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

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

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

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

......

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

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

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

1.编码规范

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

2.代码要适度封装

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

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

import hashlibdef md5(text):    """md5加密函数"""     md5 = hashlib.md5()    if not isinstance(text, bytes):         text = str(text).encode('utf-8')     md5.update(text)    return md5.hexdigest()

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

3.程序文件分类摆放

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

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

4.面向对象

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

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

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

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

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

6.代码版本控制

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

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

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

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

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

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

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

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

老菜:@.@

本文开发讨论QQ群:669058475(本群已满)、733466321(可以加2群)

Python web前端

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python 爬虫利器三之 Xpath 语法与 lxml 库的用法
下一篇:KIWI的安装及使用
相关文章