学钱帮网站开发总结
关于学钱帮是个什么项目,在我上一篇博客中已有了阐述,不清楚的可以点击文章了解一下《学钱帮项目》,里面有内容介绍,还有大量截图,项目我已开源,有需要的可以找我要git库地址,比赛已经完成了,一个可以接受的结果,也不枉费这些天的努力,和写了一大堆的代码。又是一个完整的项目,而且还经过了一些用户测试,所以还是写一篇总结来反思一些,希望对以后的开发有更多的帮助。
项目从一开始就经过了很长时间的分析,设计,也是有各种策划和想法,画了很多草图,写了很多笔记,做了数据库的设计,功能思维导图,设计了界面,一个人干了一个团队的事情,虽然最后界面不是很好看,功能也有些bug,但这些我也很满足,后期会慢慢的修改调整,最后会做到最好。这次开发我还学会了使用git,这个强大的工具,但不是从一开始就使用,所以只有后来的每次更新才同步到了git库中,并附加了一些commit,如果能从项目开始构建就使用git,每一次更改都使用commit说明的话,我就可以翻阅这些提交记录学到更多东西,有时间一定要写一篇git的介绍。项目设计的图我会放在博文下面。
下面是项目的结构:
Home模块
- 6个Controller控制器
- 27个View视图层
Common模块
- function公共函数192行
- 12个Model模型
Admin模块
- 7个Controller控制器
- 11个View视图层
有13张数据表
所以整个项目的体系并不小了,手写的也有几千行代码,关于这次项目的总结:
- 要做整个项目时,不能急于去写代码,也不用直接去做数据库设计,应该先进行大量的设计和规划,做出整体的思维导图来控制以后项目的走向,思维导图并不需要有多详细,但必须要有大致的方向和目标,把控以后项目的功能构建。
- 当有了项目框架,就应该查找显示的界面和设计数据库,界面是以后项目要显示的部分,如果边做后端开发,边设计前端的页面,设计和逻辑混在一起就会很乱,不能以一个方向为主,需要花费大量的时间去调整前后端,数据库的部分设计也可以在这个时候做,因为有一些表单的字段需要结合。
- 数据库的设计,设计数据库也要做导图和一些笔记,尽量详细的分析每张表和每个需要的字段,字段设计多了没关系,但如果字段设计少了,后期增加字段很麻烦,尤其是有了数据以后,每个数据对于新增字段的值都需要修改,设计数据库时一定要想好每个功能,只有对应功能去设计,数据库才会比较完整。
- PHP后端的编写,其实这部分最复杂的是逻辑,除去逻辑,其他的无非都是增删改查,当然,最多的还是显示数据,都是大量重复的代码,但有一点需要注意,这是我以后也需要注意的,那就是函数名,一个项目有十多个model是很正常的,但model中总有相同功能的函数,由于开发时间长了,每个model中的函数名都是随便起的,这样调用的时候就会很乱,明明都是相同的功能,名字却不一样,只能打开model去一个一个的查看。
- 后端逻辑,这是最复杂的,应该先写出来,有个大致的思路,逻辑部分所占的代码量很小,但却是最重要的,所以不要留下bug,思路不清会后患无穷。
- 功能重载,说是重载,只不过是懒得多写一遍,但到了项目的后期开发时,重载的作用就不仅仅是少写几遍那么简单,它也意味着出现bug后可以少改几遍,项目的错误率会降低很多,比如三处完全相同的代码,如果出现bug,就需要挨个修改,如果忘记了修改某一个,就又会出现问题,但如果我写成一个重载公共函数,直接修改一遍就好,前端页面也是这样,比如header,menu,sadbar,footer,都可以放到一个页面中。
- 参数不同的功能重载,在函数中,完全一样的函数是很少的,但大部分都是有共同点的,重载就是尽量提取那些容易出现bug的函数,千万不要把所有的函数都写成重载的,那样反而会更加麻烦。对于大致相同的函数,可以把不同点作为参数来传递,最后调用公共函数,这是一个好办法。
- function函数,function函数是很强大的,很多方法都可以放到这里面,作为我项目的必备方法就有,request(),请求参数提取方法,日期相差计算方法,文件上传的方法,session判断方法,当然还可以根据项目需要添加更多需要的方法。
总结:这次项目开发总体还是比较着急了,框架规划设计做的不够,数据库后期有很多修改,界面也没有一开始就做好(当然我不是做界面的),等等很多问题,下一个项目开发时要稳一些,不能急于求成,一步一步的写,总会得到满意的结果。
以下是commit的记录
以下是项目思路,策划,笔记
你可以把它發布到開源中國裡面~~