机缘 原先我不是计算机科班毕业的学生,大学毕业前我想用问卷星做大五人格的调查。但是发现想要实现我需要的功能需要花费大量的钱来冲会员。以问卷星为例,要实现我需要的功能至少需要2999一年,于是乎我便萌生了自己撰写功能的想法。我想看看实现这些功能到底需要多少钱一年。
文章图片
实现过程记录 服务器:
因为要实现的功能比较简单,因此我选择价格比价低百度云服务器。
文章图片
文章图片
也因为价格比价比较低所以百度云服务器的功能非常基础,除了重装系统,重启等功能以外,几乎没有其它功能了。但是对于一个小网站来说也是勉强够用的。如果想了解,百度云服务的体验感受可以到我主页查看,我对百度云服务的体验评价。
文章图片
前端:
因为我要实现的功能比较基础,并且我需要快速搭建网站我选择了直接套用前端框架进行撰写。
大的前端框架我使用了gitee上的项目参考链接如下:SSM: Spring boot整合Mybatis实现增删改查
【p2p|大五人格心理测试网页端实现】大家可以参考它的前端框架进行撰写,前端效果图如下:
文章图片
文章图片
后端可以实现一些数据的管理:
文章图片
还有一些小的需要优化的地方,我使用elemnt框架进行设计,链接如下:Element - The world's most popular Vue UI framework
后端:
后端我使用springboot作为框架,mysql作为数据库,shiro作为安全框架,mybatis-plus为操作数据库的工具。当时我还想使用我新学的Redis技术作为数据库缓存数据。
文章图片
但是实际项目运行起来springboot+mysql+shiro已经占用了900MB的内存,已经不能添加其他的组件了,不然内存会爆炸。因此就暂时使用这些老技术了。
文章图片
收获总结 1、一定要开启事务:
在撰写项目的过程中觉得事务没什么重要的因此没有开启事务,直到上线测试的时候才发现,数据提交异常后会导致数据库数据混乱,也影响了用户满意度。
数据库错乱图片:
文章图片
文章图片
2、数据之间的依赖关系可以采用一个类内部嵌套其它类的方式:
(1)、在主类内部嵌套其它类:
@TableName("animal_handled")
public class AnimalHandled implements Serializable {private static final long serialVersionUID = 1L;
@TableId(value = "https://www.it610.com/article/id", type = IdType.AUTO)
private Integer id;
private String name;
private Integer tiger;
private Integer peacock;
private Integer koala;
private Integer owl;
private Integer chameleon;
private Integer phid;
// 这是被嵌套的类
@TableField(exist = false)
private PersonalityHandled personalityHandled;
public PersonalityHandled getPersonalityHandled() {}
(2)、查询主类的时候给内嵌类赋值:
animalHandleds.forEach(
animalHandled->{
PersonalityHandled personalityHandled = personalityHandledService.getById(animalHandled.getPhid());
animalHandled.setPersonalityHandled(personalityHandled);
}
);
(3)、发送至前端
3、数据库的数据是基础:
数据库类的分表和分库一定要想清楚了再进行下一步,不然中途改数据库会导致自下而上的修改代码,十分痛苦。
4、项目一定要仔细检查再发布
不检查就发布项目,容易重新修改项目十分烦躁,一下就是我删除的项目,痛苦。必检查项:1、事务是否开启。2、连接是否有localhost改成服务器的ip。3、前端页面是否能正常显示。
文章图片
后续 后续我还想推出微信小程序端的程序,并不断完善功能,增加一些数据分析功能。
推荐阅读
- #yyds干货盘点#网络协议之:一定要大写的SOCKS
- 带你认识网络世界,什么是网络协议分层有什么好处
- 网络协议之:加密传输中的NPN和ALPN
- sql|Mybtais动态SQL详解
- 网络协议之:WebSocket的消息格式
- 小学生都能读懂的网络协议之:WebSocket
- linux|一文搞明白Linux内核《物理内存模型》
- linq|中石化、中石油接口文档源码分享
- p2p|uart串口驱动