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

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

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

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

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

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

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

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

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

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

  如果有时间的话,你可以抽空重构一下,将数据库读写操作单独分离出来,认真琢磨一下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. 7.nginx伪静态规则

    网上收集的一些常用的,要用的时候就仿照一下,或直接拿来用. WordPress伪静态规则 location / { index index.html index.php; if (-f $reques ...

  2. Android 7.1 WindowManagerService 屏幕旋转流程分析 (三)

    三.屏幕的绘制 performSurfacePlacement()函数来触发window的绘制,这里最大的循环次数是6,当然一般不会到最大次数就会被Scheduled. final void perf ...

  3. 微信小程序开发之模板消息

    一.添加模板 登录https://mp.weixin.qq.com获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用,详见模板审核说明 页面的 <form/> 组件,属性r ...

  4. Head First设计模式之组合模式

    一.定义 将对象组合成树形结构来表现"整体-部分"层次结构. 组合能让客户以一致的方法处理个别对象以及组合对象. 主要部分可以被一致对待问题. 在使用组合模式中需要注意一点也是组合 ...

  5. vue2 递归组件--树形

    递归组件,官方给的教程太简便了,根本看不出到底怎么用.于是自己查网摸索了一下,这儿只把核心思想写出来. 效果如下图,点击后打开二级菜单,再点击后打开三级. //js //引子//思想:当v-if='f ...

  6. Js相关用法个人总结

    Js相关用法个人总结  js中将数组元素添加到对象中var obj = {}; var pushArr = [11,22,33,44,55,66]; for(var i=0;i<pushArr. ...

  7. vue2.0 微信oauth认证的正确调用位置

    运行在微信端的项目,很重要的环节是oauth认证:那在vue项目中,在何时何地调用oauth认证最合适呢? 经过观察,在项目启动过程中,会执行main.js文件:所以我将认证放在main.js中操作: ...

  8. mysql创建远程登陆用户并授权

    在创建安装微擎的过程中,针对第四步 创建远程登陆用户并授权        > grant all PRIVILEGES on database.* to root@'127.0.0.1'  id ...

  9. ASP.NET MVC 解决区域和全局控制器同名的问题

    话不多少 直接上代码 通常我们以为上边的是解决控制同名问题,是解决了一点,但是又出了以下问题,默认请求的不是项目默认的控制器而是该区域的控制器,在我之前开发的项目中,默认指向的是区域下的home控制器 ...

  10. Tsung测试Tcp协议的应用或接口

    利用Tsung模拟基于Tcp的业务流程,实属无奈.因ConnectManager部署在linux下,其中,Loadrunner的winsocket因不支持linux platform而无法使用,而Jm ...