项目总结

最近忙完了一个大屏数据报表的项目,一路走来一路坑,不过办法总会比问题多,简单记录一下。
本篇文章不会记录具体的代码,只会记录一些遇到问题的时候的想法和一些解决思想。

2月28号
那天是我第一次来这边项目组,说是要做一个大屏展示的项目。当时只有静态页面,并没有成型的项目。
于是准备开发,当时做技术选型,本来后台打算使用spring boot 前台使用 vue+vuex.
但是这个项目还有一个其他的项目组,于是spingboot的计划暂时搁置。但是前台还是决定使用vue进行敏捷开发。
当天就把后台的代码拿了过来,架构大体是springmvc +mybatis 这一套。后台代码做了一些完善的封装,只要处理逻辑就行。

3月记录开发变迁
数据库篇:
第一版
1.数据库表98个,逻辑极其复杂,
2.觉得使用视图,一个页面对应一个视图,
3.一条sql查找出全部数据
问题:
前端处理数据的时候 难度是指数级上升,虽然能解析出数据,但是解析出的数据变的极其不灵活,根本不利于扩展,而且每次指标修改可能就要修改100行的sql

第二版
1.数据库表98个,视图8个,一个视图对应一个页面
2.给每个指标加上唯一ID
3.根据单页面的模块进行细分,一个模块一条sql
4.前台处理数据的时候只要根据指定模块处理指定数据
问题:
还是有一个复杂的业务场景,以及复杂图表的时候sql可能要多次查询。

java后台篇:
第一版:
1.最开始是一个接口,根据不通参数,返回8个大屏数据
2.没有做动态sql,一个xml里面可能有60多条sql,很多是重复的。
3.接口和sql没有注释,经常找不到sql的位置。
4.查询指标的id直接写到sql里面,如果不对找的时候很麻烦,不利于管理

第二版:
1.对接口进行拆分,一个页面对应一个,原来一个接口变成了5个。
2.对重复sql改写,变成动态sql。
3.对所有页面做了解耦分离,互不干扰。
4.将查询的指标进行了统一配置管理。

前端篇:
第一版
1.以前的时候 逻辑都写在vue里面。
2.网络请求没有统一管理
3.以前后台的关系,定义个很多不需要的数据结构。

第二版:
1.将数据处理逻辑进行分离,将数据处理放到单独的js里面
2.封装网络请求组件
3.将整体的结构进行优化,对不需要定义的数据 不再定义。

前端还有很多不足,可能要二期进行继续优化。。。。

你可能感兴趣的:(项目总结)