我的第一个python web开发框架(21)——小结
这个小网站终于成功上线,小白除了收获一笔不多的费用外,还得到女神小美的赞赏,心中满满的成就感。这一天下班后,他请老菜一起下馆子,兑现请吃饭的承诺,顺便让老菜点评一下。
小白:老大,在你的指导下终于完成了我人生当中第一个项目,非常感谢。
老菜:挺不错的,在这么短时间完成了一个项目,值得祝贺一下。
小白:老大,代码你看了没有,你觉得有什么问题或需要改进的地方吗?
老菜:你自己完成后,重新查看代码有什么想法?
小白:嗯,我觉得有好多地方代码都是一样的,重复的,复制粘贴后改起来容易出错,其他的有些地方感觉代码写起来有点别扭,但说不上来。
老菜:看来项目完成后,你的技术也长进了不少。代码重复是一个框架从无到有发展过程中必须经历的阶段,当然有不少人直接使用别人的框架进行修改可以跳过这个阶段,但他们的感悟就没那么深了。
很多软件开发框架一开始都是很简单很简漏的,它能满足一般的需求,直接明了,一般来说只要严格遵循开发规范,这样的代码可读性也是最好的。
而开发人员在整个项目实现的过程中一直在进步,当完成项目以后回头再看看你自己写的东西,就会发现它其实存在着很多不合理的地方,而自己在成长过程中也会学到很多新的知识,可以融入到现有体系中,让已开发出来的框架变得更好更成熟。在自己持续的学习成长过程中,通过对旧框架的重构升级,开发框架也会变得越来越成熟和强大起来。
你这个框架代码我看了一下,存在以下几个问题:与数据交互的代码重复,没有进行合理封装;前后台系统接口没有分离,权限管理混乱;后台管理系统无权限管理模块,无法控制页面权限,容易引发安全问题;
如果有时间的话,你可以抽空重构一下,将数据库读写操作单独分离出来,认真琢磨一下sql代码规律,封装成ORM统一管理;在接口与对数据操作之间加多一个逻辑层,用来放置各种对数据操作的逻辑函数,方便代码的封装与管理;后台与前台代码各自独立出来,分成各自独立的两大前后端系统,方便管理;后台管理系统增加权限管理模块等,暂时想到这些,你可以先弄弄。
做好这些工作,这个开发框架就可以算得上比较成熟了。
小白:好的,谢谢老大的指点,我会认真学习,再琢磨琢磨的。菜已经上了,我们边吃边聊。
......
本系列的第一部分终于完成了,比预想中多花了不少时间,后半部分因为年底各种事情,加上参加了敏捷个人线上练习占用了大量的时间,所以没时间写,一直拖着,没想到拖了这么长时间。
在开笔之前其实有很多想法,对于前端也想写的很细很细,但编写过程中总会遇到这个那个事情,有这样那样的各种顾虑,所以有时将就了一下,写的并不是太满意。没有前端基础的朋友可能看起来有点吃力,等这个系列全部完成以后,看看有没有可能录制一些视频,直接讲解可能会更容易理解,毕竟很多东西直接讲比较容易,用文字表达起来确实有点头痛。
第二部分大纲初步整理了一下,大概30多章节,在年后会安排时间慢慢完善更新,大家如果有什么建议可以直接发信息给我。
一次XXX引起的安全小事故
项目版本控制与接口文档
代码审查与重构
什么是ORM
ORM基类开发
Nosql在ORM中的应用
逻辑层类开发与测试
接口代码重构
后台管理系统权限设计
权限数据库结构设计
后台菜单管理功能
后台主界面菜单实现
部门(角色组)管理功能
职位(角色)管理功能
管理员管理功能
后台接口权限访问控制处理
接口访问加密处理
后台操作日志处理
前后台分离与部署
版权声明:本文原创发表于 博客园,作者为 AllEmpty 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
python开发QQ群:669058475(本群已满)、733466321(可以加2群) 作者博客:http://www.cnblogs.com/EmptyFS/
我的第一个python web开发框架(21)——小结的更多相关文章
- 我的第一个python web开发框架(14)——后台管理系统登录功能
接下来正式进入网站的功能开发.要完成后台管理系统登录功能,通过查看登录页面,我们可以了解到,我们需要编写验证码图片获取接口和登录处理接口,然后在登录页面的HTML上编写AJAX. 在进行接口开发之前, ...
- 我的第一个python web开发框架(41)——总结
我的第一个python web开发框架系列博文从17年6.7月份开始写(存了近十章稿留到9月份才开始发布),到今天结束,一年多时间,想想真不容易啊. 整个过程断断续续,中间有段时间由于工作繁忙停了好长 ...
- 我的第一个python web开发框架(1)——前言
由于之前经验不是很丰富,写的C#系统太过复杂,所以一直想重写,但学的越多越觉得自己懂的越少,越觉的底气不足.所以一直不敢动手,在内心深处对自己讲,要静下心来认真学习,继续沉淀沉淀.这两年多以来找各种机 ...
- 我的第一个python web开发框架(3)——怎么开始?
小白与小美公司经过几次接触商谈,好不容易将外包签订了下来,准备开始大干一场.不过小白由于没有太多的项目经验,学过python懂得python的基本语法,在公司跟着大家做过简单功能,另外还会一些HTML ...
- 我的第一个python web开发框架(22)——一个安全小事故
在周末的一个早上,小白还在做着美梦,就收到了小美的连环追魂call,电话一直响个不停. 小白打着哈欠拿起电话:早上好美女. 小美:出事了出事了,我们公司网站一早访问是一片空白,什么内容都没有了,你赶急 ...
- 我的第一个python web开发框架(6)——第一个Hello World
小白中午听完老菜讲的那些话后一直在思考,可想来想去还是一头雾水,晕晕呼呼的一知半解,到最后还是想不明白,心想:老大讲的太高深了,只能听懂一半半,看来只能先记下来,将明白的先做,不明白的等以后遇到再学. ...
- 我的第一个python web开发框架(2)——第一个Hello World
小白中午听完老菜讲的那些话后一直在思考,可想来想去还是一头雾水,晕晕呼呼的一知半解,到最后还是想不明白,心想:老大讲的太高深了,只能听懂一半半,看来只能先记下来,将明白的先做,不明白的等以后遇到再学. ...
- 我的第一个python web开发框架(2)——一个简单的小外包
第一部分说明 第一部分大概有20来章,主要讲的是一些开发常识.开发前中后期准备内容.开发环境与服务器部署环境安装设置.python基础框架结构与功能等内容,代码会比较简单. 本系列会以故事的方式,向大 ...
- 我的第一个python web开发框架(7)——本地部署前端访问服务器
PS:本系列内容进度节奏会放的很慢,每次知识点都尽量少一点,这样大家接触的知识点少了,会更容易理解,因为少即是多.另外,对于后面代码部分,虽然尽量不用那些复杂的封装和类,但它并不表示看了就能全部记住, ...
随机推荐
- 根据图片的路径(绝对路径/相对路径都可以),生成base64的
根据图片的路径(绝对路径/相对路径都可以),生成base64的 <!DOCTYPE html> <html> <head> <meta charset=&qu ...
- windows 安装Mysql压缩包
1.将mysql压缩包解压至选定目录下 2.修改my-default.ini文件的以下内容 basedir = E:\develope_software\MySQL\mysql-advanced-5. ...
- windows安装ipython的困难重重
本机环境 系统: windows 10 64位 python版本:3.2.1 安装过程 安装ipython可以使用python的pip工具 pip install ipython 在使用pip前,我准 ...
- python 列表赋值和列表 sort 方法注意的问题
列表赋值 >>> a = b = [] >>> a.append() >>> a [] >>> b [] >>> ...
- TSLint提示错误
要成为优秀的TS开发人员,必须直接禁用TS的不良特性. 为此,道爷亲自操刀编写了TSLint工具,用来分析我们的TS代码,把潜在的Bug和不良代码全部找出来. 目的是为了保证TS的质量,但是存在的问题 ...
- chrome调试工具高级不完整使用指南(优化篇)
上一篇文章我们说了chrome调试工具的一些比较基础功能的用法,接下来我们要在这一篇文章中说一说,其他一些chrome调试工具的使用方法 2.1.5 Network模块 在netWork模块中,大致上 ...
- SSM框架开发web项目系列(六) SpringMVC入门
前言 我们最初的javaSE部分学习后,基本算是入门了,也熟悉了Java的语法和一些常用API,然后再深入到数据库操作.WEB程序开发,渐渐会接触到JDBC.Servlet/Jsp之类的知识,期间可能 ...
- Mysql无法启动 InnoDB: Attempted to open a previously opened tablespace
win2008,Mysql5.6,mysql服务无法启动 查看事件日志,报错InnoDB: Attempted to open a previously opened tablespace 最终解决方 ...
- ionic滑动框 ---轮播图(ion-slide-box) 的使用
1. html : <ion-slide-box auto-play="true" slide-interval=3000 show-pager="false&qu ...
- 先从_proto_下手理解原型--原型学习(一)
给自己关于原型的学习分了一个大类,主要跟踪学习js的原型.--来自<JavaScript面向对象编程指南>的笔记,这本书难度适中,适合我们这种js基础不牢的人学习. 原型这块有两个属性:p ...