课设总结 | 初学者SpringBoot框架开发存在的问题总结 | 商城系统的设计问题总结

课设总结 | 初学者SpringBoot框架开发存在的问题总结 | 商城系统的设计问题总结,第1张

课程设计

Gitee 地址: 基于SpringBoot的简易商城系统_半成品

技术栈为 SpringBoot + Thymeleaf + Bootstrap + SSM + MySQL + Shiro + Echarts

一、前端设计存在的问题 1.1 排版不合理

以下面的登录页面为例,排版看起来并不符合常理,笔者当时主要是根据自己的想法,改样式,改来改去都不太满意,甚至花时间用css写样式,实现一些看起来花里胡哨的动态效果,比如增大、缩小、转圈之类的,其实现在看来,这些都没有必要。

下面是修改后的简单版的登录系统

虽然还是一样的简单,但是结构层次比较清楚,上中下结构。而不是之前的左右、上下结构混合。

1.2 前端技术架构的问题

一开始,笔者是通过 Thymeleaf模板引擎通过MVC架构实现数据渲染的,后来发现通过AJAX会好一些,因为可以实现动态加载的效果,延时的加载数据,而之前就是一跳转页面数据全都展现出来了,这样页面看起来比较 LOW,于是后来就改成了MVP架构,P层负责调用Model层和View层,不过光使用 Bootstrap 、JQuery 、Thymeleaf来实现 MVP架构还是比较吃力的,况且还是我一个人独自开发,当时还经常记录开发的记录,但是由于个人所学有限,最终做出来的效果就比较差劲。

1.3 需要改进的地方

尽量简化代码,把逻辑简单化,不能想得太复杂,尽量把代码分清楚,比如根据不同的模块来存放代码,用户相关的就放在用户模块,商品相关的就放在商品模块。

多好好学学技术,比如最基本的JavaScript,先把基础打牢,然后再学JQuery,之后再考虑学习框架,Vue或React,而不是每次遇到什么需求就去一股脑的做,这样既费时间,而且还没什么效果。

二、后端设计存在的问题

后端使用的是SpringBoot整合SSM,用起来十分方便,但是花了许多时间在DAO层上,由于实体类比较多,myabtis使用插件自动生成的代码内容又多,这就造成了项目很臃肿,有的方法是用不到的,但是依然在资源文件夹里,修改的时候也有局限性,如果自己重新写,又容易和之前的冲突。

缺少系统的设计,完全是看个人的感觉,当时由于是在假期比较闲,就下定决心好好学一学SSM,不过后来在做课设的时候花了太多时间,大部分时间都是自己在修改代码,而且基本上都是临时想到的点子,没有提前规划。

三、设计上存在的问题

这个学期,我们刚好开始学《软件工程》这门课,大半个学期过去之后,我曾经以为编码是最重要的这个观念被彻底颠覆了,一个软件开发的整套流程中,编码只是一部分,更重要的还是需求分析、系统设计,因为编码就是得根据这两个来的,我想起自己在做课设的时候,经常是想到一个就做一个,想到该怎么做就怎么做,或者是参考书上的内容,然后在根据自己的想法直接就开始敲代码了。

谁曾想,编码并不是那么重要,思路才是最重要的,只有好的编码文档,才能造就出更好的软件,所以这一次我吸取了教训,以后在做任何一个项目前,先同步的编写文档,当文档完善到一定程度后,再着手编码,这样就更踏实,更有效率。

四、学习上存在的问题

有一句话叫基础不牢,地动山摇,经常敲代码的朋友肯定知道,在互联网业的知识多的根本学不完,十年?二十年?都有可能!所以,基础就非常的重要,曾经我以为做课设、做项目,只要项目能跑,有效果就挺好的,那时候考虑的问题太少,其实现在就发现自己知道的太少了,而且在自己知道见识少的情况下,去花时间做一些项目,大部分是根据自己的想法,这样肯定是没有多大效果的。

最好的学习就是学会参考,我们从小的教育就是每一科都有课本,我们是根据课本上的内容进行学习的。

其实编程也是这样,我们得多看那些同行学者的代码、文献,增长自己的见识,这样才有机会做出好的作品,如果只是一意孤行,那么最后肯定是没有多少实质性效果的。

我现在就比较后悔,因为当初整天花时间敲代码,敲的都是一些偏基础的逻辑题,其实那些题是用来熟悉语言特性的,只要大概熟悉语言特性就够了,没有必要花太多时间,除非是为了打比赛,打比赛的话肯定要花很多时间去刷题了,否则根本就没必要一整天都花时间去刷编程题,理论知识才是最重要的。

其实还有很多话,有许多问题需要提出总结,这里就先不长篇大论了,主要是以本次的课设来讨论。

五、商城系统的设计问题 5.1 数据库设计

首先数据库,可以根据需求,看看自己想做的网站规模是多大的,如果超过10万,甚至更大,那么在设计数据表的时候就需要考虑性能,可以使用Redis这种缓存数据库,如果数据量小,那么直接用MySQL就OK了。

尽量不设置表的外键,否则会影响性能,因为外键是MySQL自身维护的,如果网站请求书比较多,那么MySQL就得承载较大的压力。

除了关系型数据库,可以根据实际情况使用一些现代型的数据库,比如 Redis 缓存数据库、MongoDB 文档数据库、Neo4j 图数据库等,可以根据实际需求来定。

5.2 技术选型问题

技术不一定要最先进,要根据自身的实际情况来定,如果自己学习能力强,学习时间比较多,那么就可以上丰富的框架,比如前端:Vue、后端:SpringBoot,如果时间不够多,那么就看你自己将来要从事哪个行业,偏前端的话就尽量把Vue学了,然后后端可以找搭档一起完成,或者后端简单一点就直接用传统的 Servlet。

如果是主学后端,那么主要是先学SpringBoot,此时前端Vue没必要直接给学了,毕竟是主后端的,先把后端全家桶给学扎实了,SSM、SpringCloud等等,可能现在许多地方都有前后端分离的思想,所以许多小伙伴想着得赶紧学了,把SpringBoot学了,再把Vue学了,走全栈,这个想法是挺好的,不过要根据自己的能力来哟,假如你现在和我一样,连Java进阶都不怎么掌握,多线程、高并发之类的,并不怎么了解,数据结构与算法也不怎么熟悉,这时候就没必要去花时间整前端框架了,先把自己的基础功打好。

最后就是在商城系统里可能会遇到许多需要扩展的需求,比如存放图片,难道是把图片存在自己的服务端吗?这样也可以,但要保证服务器的网络够给力,比如在有一千个人同时上传的时候,这时候服务器得有承载能力,如果采用云存储就不用担心这个问题,而且云存储的费用不贵,一年就十几块,数据量大的话可能几百吧。

其实在开发一个项目的时候要考虑的问题挺多的,从需求分析、系统设计,到最后的测试、部署上线、维护,这一整套流程,每一套流程都要好好准备,并不单单只是编码这么简单的,因为我们写项目,最终的目的还是为用户服务,做出来的软件要能满足一部分人的需求,这才是真正的软件…

以上就是我在这几个月以来学习开发项目的经验心得,接下来我会更注重文档编写,还有文献的参考、资料的参照,先把基础功打好,丰富扩展自己的知识面,然后再尝试做出更好的一些项目,希望能有所进步吧。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1296579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存