仍旧是关于毕设
到实际开始做的时候才发现要做的东西多麻烦……既需要了解 Spring 的使用,也需要了解前端页面各种库和 webpack 的使用……
后端使用 Soring Boot+Mybatis,因为系统比较复杂,所以分离 entity 层和 domain 层,其中 entity 层代表表中实体,其中包括 bus,place,busline,driver,station,pos,administrator。domain 层则是借助 entity 层,同时利用 bus_line,line_place 和 driver_bus 三个表达前述实体表关系的表以给出前端(实际上是 service 层)所需要的数据实体。dao 层则利用 entity 和 domain 层提供给 service 层操作数据的接口。(这时,entity 层和 domain 层实际上是属于同一层的……需不需要将它们结合呢……)
domain 层也可以去利用 SQL 的视图功能,优点在于只需要对视图进行操作。但是我不知道这实现难度如何,符不符合业务需要……只能说自己菜,还没接触到这些(不如说也不想去了解这些啊……)
现在,至关重要的是去开一个头!使用所谓的“敏捷开发”的方式吧,先整出东西来,再不断迭代——
step1
第一步是完成公交车信息的展示,具体来说有以下需求(使用!标记难度,从低到高分为 1 到 5 个!)——
后端
- 数据库中实体的设计(出于使用的需要,这一步就需要数据库的设计满足所有功能)(!)
- entity 层及与当前步骤相关的 mapper 的实现(对应数据库中实体)(!)
- 数据库中视图的实现(!!)(或许可以不实现)
- domain 层中与当前步骤相关的实现及其 mapper(对应数据库中视图)(!!)
- dao 层中相关功能的实现(!!)
- 支持返回某市区县的公交车之前一段时间的速度和位置功能和不断更新该信息的功能的 websocket 的实现(!!!)
- 实时接受公交车所发送的信息的 websocket 的实现(!)
- 公交车模拟模块的实现(!)
前端
- 展示某市区县的所有公交车实时信息功能的实现(只需实现最基本的展示轨迹。站点,轨迹等功能随后实现)(!!!)
step2
这一步需要完成前端对数据(站点,节点……)的增删改查,同时完全完成上一步的展示实时信息功能。
后端
- 完成所有查询功能(!!!)
- 完成登录的需求(!)
- 完成增删改的需求(!!!)
前端
- 完成登录功能(!)
- 完成查询功能(!!!)
- 完成增删改功能(非常困难!整个项目最困难的地方!同时也应当是项目的亮点所在)(!!!!!)
step3
然后是查询某日历史信息的实现。
后端
- 展示某市区县公交车某日所有信息功能的实现(!!!)
前端
- 展示某市区县公交车某日所有信息功能的实现(!!!)
step4
进一步增强前端数据可视化的功能,提供热力图等玩意,以追踪特定时间或特定位置超速情况。
后端
- 完成所有设计(!!!)
前端
- 完善数据可视化功能(!!)
- 完成生成 CSV 文件功能(!)
现在只能给出粗略的要求,每一个步骤需要在前一个步骤的基础上进行研究实现。
首先是建表,考虑到查询之前数据的需要,表中数据必须存储一个时间戳,即使第一步并不提供管理的功能。
思考和多次更改后得出这样的表结构(仍旧可能更改)——
1 |
|
下一步是完成对应的 dao 和 domain……
当前完成了 websocket,service,servlet 的框架,直接更改其内容为业务代码即可。(需要学习一下 spring 的注入……不过对于这个项目或需不需要)
当前任务是——编写测试模块(websocket 客户端,或许使用 python 实现。公交车应当发送当前位置的速度,这是应该的,正常的,容易实现的(对公交车上的硬件来说)),编写实时展示当前信息的前端页面。这一步并不需要完成节点,站点,道路显示等功能(之后再实现)
忙活了好久……终于把 webpack 前端弄完了,感觉还是……挺麻烦的。但是似乎也有所感悟,总之将来再配置的时候就不会这么尴尬了(不过我不想干前端,所以还是希望不要再去搞这个了)。
这篇文章不再更新了,另起炉灶。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 协议 ,转载请注明出处!