Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/826148267/jdsys
一个订单系统,含有在线聊天(未完善),角色权限管理,订单管理,登录注册,公告管理,并即时推送等功能模块
https://github.com/826148267/jdsys
Last synced: 2 days ago
JSON representation
一个订单系统,含有在线聊天(未完善),角色权限管理,订单管理,登录注册,公告管理,并即时推送等功能模块
- Host: GitHub
- URL: https://github.com/826148267/jdsys
- Owner: 826148267
- Created: 2018-05-06T07:45:29.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-05-06T09:55:00.000Z (over 6 years ago)
- Last Synced: 2023-11-20T16:45:21.671Z (about 1 year ago)
- Language: Java
- Size: 3.29 MB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# jdSYS(自己作死式的系统)
一个订单系统,含有在线聊天(未完善),事务日志(未完善),角色权限管理,订单管理,登录注册,公告管理,并即时推送等功能模块
上学期急于求成看了ssm框架,坚信有没有反射和接口并没差,虽然道理我都懂,但是还是觉得完全影响不了我的“架构”,于是整个项目没使用框架,纯手撸
然后呢,果然证实了我的决定是正确的
。。。。
恩,至少我以后再也不敢随意忽略大佬们的思想了/******************************************************后端***********************************************************/
架构思想:
不多说了,spring开发者真的是大佬
一个控制反转就用了工厂模式,代理模式,还有一个类似于在mybatis的sqlsessionFactory中也有用到的模式(脑子里一直有个注入的动作,不知道是不是叫桥接模式),还有反射的应用,真的是绝了
还有递归算法,虽然递归是算法中个人认为最容易理解的,
spring皮毛还没学会,
现在就成了忠实的spring粉了
面向切面那部分我还没仔细看,虽然不曾被它像控制反转一样按在地上摩擦,不过已经能感受到它强大的查克拉了数据库缓存:
还有mybatis和其他一切持久层的缓存机制这个想法,佩服佩服,大佬大佬MVC:
这个架构没有采用mvc这个倒不是我想挑战大佬们是思想,只是后来做着做着功能越来越多,一开始只是以为是个小demo的,写着写着就那么多了
这个疏忽可以说是没有对业务需求好好把握,着急动手导致的吧rest接口规范和csrp攻击:
还有一点就是整个网站的接口并不同意,有些用字符串,一些用json,主要是因为一个人开发,对接口的控制没有引起注意
现在重做的话将会采用rest风格的接口
大量创建对象的优化问题:
最近在看java的GC机制,发现这个项目要多蠢就有多蠢。我明明可以使用软引用可以保证内存泄露问题的有效控制,如果这还不算致命,那么我查询数据库的时候
没有分页。。。。还没上线就知道要炸了
字符串创建拼接问题:
此项目中用到了大量的字符串拼接,然而我用的是+,不用append()
再常量池有一大堆游离“string”等着你再次调用,兄弟们体会一下数据库的连接数问题:
根据网上的博客测试数据,没有亲自测试过,采用核心数*2+有效磁盘数设置,
参考阿里云学生云的核心数为2*4的核心数数据库语句执行没有采用缓存:
主要是因为当时并不知道有这东西,虽然有想过类似的方法,就是讲部分常用语句结构缓存起来,但当时没有解决脏读问题
数据库加锁:
采用MySQL自带行锁,innoDB引擎,这是我怎么发现还有这货的呢,说起来也很神奇,上操作系统的课,讲的是进程并发的问题
,当时忽然想起我数据库的语句执行是不是应该加锁,以为自己发现了惊天的秘密,毕竟教材上没说操作数据库是要加什么东西,所以一直没引起重视,
于是还是借鉴了操作系统的信号量机制再采用动态代理来吧数据库执行语句封装起来,(恩,很傻,相当于整表封锁了吧),后来发现现在的操作系统都用管程来解 决并发问题了,于是觉得数据库可能会有提供这么一个类似于管程的机制,结果一查果然乐观锁悲观锁啥都有(虽然乐观锁只是个逻辑锁)
/********************************************************前端*****************************************************/
前端方面还有很多的未完善的
后端也有一些功能还没拓展和完善,错在一些bug
比如csrp攻击问题还没完善能将模块载入的函数:
前端方面的话终于发现jq的load()函数真的是神一样的操作
不仅仅在于方便而已
对整个前端的架构都有很大的作用
别问我了为什么知道
请问你们异步请求接收到json数据后要干哈?
把它塞进div块之类的东西呀
很好,字符串拼接怕是躲不过去了,写到你头皮发麻
load()真的是创举,以后要是遇到这种问题找不到框架的话,自己造一个
恩,嘚,可行