巴别塔合约终端开发日记1-----技术选择
需求
拿到开发任务之后,组里给出的开发时间差不多两个月左右。由于开发人员只有我自己一个人,开发时间还是比较紧张的。在开头的时候很重要,避免频繁修改代码才能尽可能减少开发时间。
项目大概分为以下几个部分
1. 核心前台展示: 合约相关的功能。包括tag点选,审核提交,当期任务查看。
2. 用户模块: 登录注册 ,信息展示 , 邮箱绑定 , B站uid绑定。
3. 管理模块:平台数据管理
4. 兑换商店:代币,奖品,抽奖等。
合约相关的功能是一个交互的过程,前端工作量也不会太小。后端部分要处理常见的并发访问的问题。并且商店部分的数据正确性很关键。前端在巴约#2的时候已经实现过了(做了有一个月),开发压力会小一点,但是当时没有与后端交互的需求,还有后端需要调试很多东西。
技术选择
前端部分不能浪费太多时间,Vue+ElementUI完全可以满足开发需求,具体手机端的适配方面,没有太多经验(毕竟自己不是搞前端的)。决定以流式布局,尽可能同时适应手机展示,减少开发时间。
后端部分拿SpringBoot,整合MyBatisPlus。plus确实比MyBatis好用不少。数据库选择自己用的比较多的MySQL。微服务时间不是很充裕,所以没有选择SpringCloud。
服务器配置只有2核2G 5MBPS带宽。访问量预估在500-1000左右,硬件环境注定要组件分服务器部署。对于MySQL部分效率的担忧,选择了Redis做缓存。
由于存在涉及奖励的操作,代币什么的涉及用户和合作方的利益,日志部分是需要存的,全在MySQL上也不合适。再使用MongoDB配合。
没有什么依赖消息队列的功能,不用消息队列了。
大框架就这些。还有辅助的东西就不一一列举了,像JWT,Redisson之类的在做功能的时候会说。
总结: SpringBoot MyBatisPlus Redis MongoDB Vue