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


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

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

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

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

      ......

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

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

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

      1.编码规范

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

      2.代码要适度封装

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

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

    import hashlib
    
    def 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等版本控制比较好。没有版本控制的项目,有时写着写着,想回滚以前版本时,或代码出现问题要回滚时,我只能呵呵了

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

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

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

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

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

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

      老菜:@.@

     

    版权声明:本文原创发表于 博客园,作者为 AllEmpty 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

    python开发QQ群:669058475(本群已满)、733466321(可以加2群)    作者博客:http://www.cnblogs.com/EmptyFS/

  • 相关阅读:
    【读书笔记】iOS-类别
    【读书笔记】iOS-特性
    【读书笔记】iOS-对象初始化
    【读书笔记】iOS-内存管理
    iOS---类方法(静态方法)和实例方法
    iOS ---Extension编程指南
    Swift学习与复习
    iOS----Xcode6或者Xcode7设置LaunchImage图标
    iOS----------使用 Xcode6或Xcode7配置.pch文件
    iOS开发----优秀文章推荐
  • 原文地址:https://www.cnblogs.com/EmptyFS/p/7488816.html
Copyright © 2020-2023  润新知