这个小网站终于成功上线,小白除了收获一笔不多的费用外,还得到女神小美的赞赏,心中满满的成就感。这一天下班后,他请老菜一起下馆子,兑现请吃饭的承诺,顺便让老菜点评一下。

  小白:老大,在你的指导下终于完成了我人生当中第一个项目,非常感谢。

  老菜:挺不错的,在这么短时间完成了一个项目,值得祝贺一下。

  小白:老大,代码你看了没有,你觉得有什么问题或需要改进的地方吗?

  老菜:你自己完成后,重新查看代码有什么想法?

  小白:嗯,我觉得有好多地方代码都是一样的,重复的,复制粘贴后改起来容易出错,其他的有些地方感觉代码写起来有点别扭,但说不上来。

  老菜:看来项目完成后,你的技术也长进了不少。代码重复是一个框架从无到有发展过程中必须经历的阶段,当然有不少人直接使用别人的框架进行修改可以跳过这个阶段,但他们的感悟就没那么深了。

  很多软件开发框架一开始都是很简单很简漏的,它能满足一般的需求,直接明了,一般来说只要严格遵循开发规范,这样的代码可读性也是最好的。

  而开发人员在整个项目实现的过程中一直在进步,当完成项目以后回头再看看你自己写的东西,就会发现它其实存在着很多不合理的地方,而自己在成长过程中也会学到很多新的知识,可以融入到现有体系中,让已开发出来的框架变得更好更成熟。在自己持续的学习成长过程中,通过对旧框架的重构升级,开发框架也会变得越来越成熟和强大起来。

  你这个框架代码我看了一下,存在以下几个问题:与数据交互的代码重复,没有进行合理封装;前后台系统接口没有分离,权限管理混乱;后台管理系统无权限管理模块,无法控制页面权限,容易引发安全问题;

  如果有时间的话,你可以抽空重构一下,将数据库读写操作单独分离出来,认真琢磨一下sql代码规律,封装成ORM统一管理;在接口与对数据操作之间加多一个逻辑层,用来放置各种对数据操作的逻辑函数,方便代码的封装与管理;后台与前台代码各自独立出来,分成各自独立的两大前后端系统,方便管理;后台管理系统增加权限管理模块等,暂时想到这些,你可以先弄弄。

  做好这些工作,这个开发框架就可以算得上比较成熟了。

  小白:好的,谢谢老大的指点,我会认真学习,再琢磨琢磨的。菜已经上了,我们边吃边聊。

  ......

  本系列的第一部分终于完成了,比预想中多花了不少时间,后半部分因为年底各种事情,加上参加了敏捷个人线上练习占用了大量的时间,所以没时间写,一直拖着,没想到拖了这么长时间。

  在开笔之前其实有很多想法,对于前端也想写的很细很细,但编写过程中总会遇到这个那个事情,有这样那样的各种顾虑,所以有时将就了一下,写的并不是太满意。没有前端基础的朋友可能看起来有点吃力,等这个系列全部完成以后,看看有没有可能录制一些视频,直接讲解可能会更容易理解,毕竟很多东西直接讲比较容易,用文字表达起来确实有点头痛。

  第二部分大纲初步整理了一下,大概30多章节,在年后会安排时间慢慢完善更新,大家如果有什么建议可以直接发信息给我。

一次XXX引起的安全小事故
项目版本控制与接口文档
代码审查与重构
什么是ORM
ORM基类开发
Nosql在ORM中的应用
逻辑层类开发与测试
接口代码重构
后台管理系统权限设计
权限数据库结构设计
后台菜单管理功能
后台主界面菜单实现
部门(角色组)管理功能
职位(角色)管理功能
管理员管理功能
后台接口权限访问控制处理
接口访问加密处理
后台操作日志处理
前后台分离与部署

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

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

我的第一个python web开发框架(21)——小结的更多相关文章

  1. 我的第一个python web开发框架(14)——后台管理系统登录功能

    接下来正式进入网站的功能开发.要完成后台管理系统登录功能,通过查看登录页面,我们可以了解到,我们需要编写验证码图片获取接口和登录处理接口,然后在登录页面的HTML上编写AJAX. 在进行接口开发之前, ...

  2. 我的第一个python web开发框架(41)——总结

    我的第一个python web开发框架系列博文从17年6.7月份开始写(存了近十章稿留到9月份才开始发布),到今天结束,一年多时间,想想真不容易啊. 整个过程断断续续,中间有段时间由于工作繁忙停了好长 ...

  3. 我的第一个python web开发框架(1)——前言

    由于之前经验不是很丰富,写的C#系统太过复杂,所以一直想重写,但学的越多越觉得自己懂的越少,越觉的底气不足.所以一直不敢动手,在内心深处对自己讲,要静下心来认真学习,继续沉淀沉淀.这两年多以来找各种机 ...

  4. 我的第一个python web开发框架(3)——怎么开始?

    小白与小美公司经过几次接触商谈,好不容易将外包签订了下来,准备开始大干一场.不过小白由于没有太多的项目经验,学过python懂得python的基本语法,在公司跟着大家做过简单功能,另外还会一些HTML ...

  5. 我的第一个python web开发框架(22)——一个安全小事故

    在周末的一个早上,小白还在做着美梦,就收到了小美的连环追魂call,电话一直响个不停. 小白打着哈欠拿起电话:早上好美女. 小美:出事了出事了,我们公司网站一早访问是一片空白,什么内容都没有了,你赶急 ...

  6. 我的第一个python web开发框架(6)——第一个Hello World

    小白中午听完老菜讲的那些话后一直在思考,可想来想去还是一头雾水,晕晕呼呼的一知半解,到最后还是想不明白,心想:老大讲的太高深了,只能听懂一半半,看来只能先记下来,将明白的先做,不明白的等以后遇到再学. ...

  7. 我的第一个python web开发框架(2)——第一个Hello World

    小白中午听完老菜讲的那些话后一直在思考,可想来想去还是一头雾水,晕晕呼呼的一知半解,到最后还是想不明白,心想:老大讲的太高深了,只能听懂一半半,看来只能先记下来,将明白的先做,不明白的等以后遇到再学. ...

  8. 我的第一个python web开发框架(2)——一个简单的小外包

    第一部分说明 第一部分大概有20来章,主要讲的是一些开发常识.开发前中后期准备内容.开发环境与服务器部署环境安装设置.python基础框架结构与功能等内容,代码会比较简单. 本系列会以故事的方式,向大 ...

  9. 我的第一个python web开发框架(7)——本地部署前端访问服务器

    PS:本系列内容进度节奏会放的很慢,每次知识点都尽量少一点,这样大家接触的知识点少了,会更容易理解,因为少即是多.另外,对于后面代码部分,虽然尽量不用那些复杂的封装和类,但它并不表示看了就能全部记住, ...

随机推荐

  1. Java <clinit> & <init>

    在编译生成class文件时,会自动产生两个方法,一个是类的初始化方法<clinit>, 另一个是实例的初始化方法<init>.     <clinit>:在jvm第 ...

  2. Less is exponentially more

    Less is exponentially more  (原文出处:rob pike 博客,https://commandcenter.blogspot.jp/2012/06/less-is-expo ...

  3. display:inline-block引发的间隙思考

    一.导火线 没错,总有一类属性在助你轻松寻得捷径的同时,也可为你增添烦劳,比如本文的主谋display:inline-block.众前端们所诸知,其作用是将对象呈递为内联对象,但是对象的内容作为块对象 ...

  4. 对DataTable(或者DataSet)修改后,提交修改到数据库

    http://blog.csdn.net/nidexuanzhe/article/details/8228832 说明:通常我们在做数据库交互时,并不一定要使用特定的SQL语句来更新数据,.NET F ...

  5. [Android游戏开发]八款开源 Android 游戏引擎 (巨好的资源)

    初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引 ...

  6. java的Xmx是设置什么的?

    我们使用java -X可以看到java的-X系列的参数,Xmx和Xms是相对应的.一个是memory max(Xmx) 一个是memory start (Xms). Xmx代表程序最大可以从操作系统中 ...

  7. TurnipBit:DIY音乐盒教程实例

    一款可以自己DIY的音乐盒,要什么曲子,就自己谱曲啦!为他(她)制作一首他喜欢的音乐,来代表您的心意,也可以让他自己来制作他最爱的音乐哦!更可以带孩子一起体验谱写欢快的音乐. 最近发现一很好玩的中国式 ...

  8. Python 读取文件 with语句 管理上下文

    为了避免打开文件后忘记关闭,可以通过管理上下文 with open('file_name', 'r') as f: pass with 执行完毕之后 自动关闭且释放资源

  9. C++\virtual 虚函数、纯虚函数

    前提摘要: 虚函数联系到多态,多态联系到继承.所以本文中都是在继承层次上做文章.没了继承,什么都没得谈. 虚函数定义: 指向基类的指针或引用在操作它的多态类(子类/派生类)对象时,会根据不同的类对象, ...

  10. Java学习笔记10(面向对象三:接口)

    接口: 暂时可以理解为是一种特殊的抽象类 接口是功能的集合,可以看作是一种数据类型,是比抽象类更抽象的"类" 接口只描述所应该具备的方法,并没有具体实现,具体实现由接口的实现类(相 ...