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

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

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

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

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

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

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

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

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

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

  如果有时间的话,你可以抽空重构一下,将数据库读写操作单独分离出来,认真琢磨一下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. 02.将SDK获取到的ECS主机信息入库

    1.通过调用阿里SDK,将获取到的ECS信息存入数据库,如果不知道SDK怎么使用,查看:01.阿里云SDK调用,获取ESC主机详细信息 2.import aliSDK应用的是01.阿里云SDK调用,获 ...

  2. 【分治】peak find

    分治算法 算法设计中一种常用的优化方法就是分治的思想,它的解决思路就是将原始的问题划分为性质一样,但是规模减小的子问题,然后通过子问题的解和合并子问题的解得到最终的解,就是分治的思想: 比较常见的分治 ...

  3. [编织消息框架][网络IO模型]Netty Reactor

    严格来讲Netty Reactor是一种设计模式,一听模式两字就知道了吧,套路哈哈 Reactor中文译为“反应堆”. 看图netty处理流程 1.netty server 至少有两组reactor. ...

  4. Javascript流程控制

    Javascript流程控制 1.条件语句 (1)if(exp)执行一句代码 (2)if(exp){执行代码段;} (3)if(exp){exp为true执行代码段}else{exp为false执行的 ...

  5. jsp 之 解决mysql不是内部或外部命令问题

    安装Mysql后,当我们在cmd中敲入mysql时会出现'Mysql'不是内部或外部命令,也不是可运行的程序或其处理文件. 打开我的电脑在我的电脑右键中选择属性,然后单击选择高级系统设置. 在系统属性 ...

  6. 小子给大家分享一个或者多个新手创建tableview经常会遇到的坑(动态创建控件,xib的重用)

    小子最近做了一个根据接口返回的数据在Cell中动态创建控件,感觉应该会一部分人卡在这里,小子就跟大家分享一下: 1.控件重复创建:这个问题出现的原因是动态创建的cell内容的时候,无法进行重用设置,所 ...

  7. 【Tarjan缩点】POJ2186 Popular Cows

    Popular Cows Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 35644   Accepted: 14532 De ...

  8. 跟我一起读postgresql源码(九)——Executor(查询执行模块之——Scan节点(上))

    从前面介绍的可优化语句处理相关的背景知识.实现思想和执行流程,不难发现可优化语句执行的核心内容是对于各种计划节点的处理,由于使用了节点表示.递归调用.统一接口等设计,计划节点的功能相对独立.代码总体流 ...

  9. 常用的linux系统监控命令

    记录一下自己常用的linux系统命令,方便以后查阅,发觉记忆越来越不行了 找到最耗CPU的java线程 ps命令 命令:ps -mp pid -o THREAD,tid,time   或者  ps - ...

  10. C/C++知识点清单01

    第一章 C/C++程序基础 一.一般赋值语句: 考察一般赋值语句的概念和方法. 1.程序: #include<stdio.h> int main(void) { ,y,z; x*=(y=z ...