设计工作对象转向目标系统,强调“如何做”,即技术方案。构建逻辑模型(类似工程图纸,零件设计图)。
特别注意:编程工作之前完成。物理无关,不涉及具体实现(如Java、Mysql、代码、SQL语句)。
1 引言
1.1 版本更新记录
编号 | 内容 | 作者 | 更新时间 |
---|---|---|---|
1 | 架构设计 | 汪天沛 | 2022.2.28 |
1.2 迭代目标
2 界面原型设计
-
3 面向对象设计
设计软件对象,定义方法、设计对象之间协作。
-
4 数据存储与处理设计
4.1 数据库设计
结合ER模型,遵循范式理论,根据数据存储及功能需求设计数据库表逻辑结构。
-
4.2 NoSQL设计
非数据库数据存储处理方案
5 架构设计
5.1 设计模式
5.2 技术栈选型
系统环境
- Java EE 8
- Apache Maven 3
主框架
- Spring Boot 2.6.4
- Spring Framework 5.2.x
持久层
- Apache MyBatis 3.5.x
- Alibaba Druid 1.2.x
视图层
- vue
5.3 分包策略
项目分为四个模块:
mis-core:核心框架模块,通用功能
mis-hot:酒店业务功能模块
mis-sys:系统管理模块, 用于后期实现用户登录功能
mis-web:web模块,编写Restful接口
hot和sys模块依赖core,web模块依赖lib和sys,maven依赖分模块导入mis-core模块
edu.scau.mis.core.config
edu.scau.mis.core.utils
edu.scau.mis.core.security
edu.scau.mis.core.redismis-lab模块
edu.scau.mis.lab.service
edu.scau.mis.lab.mapper
edu.scau.mis.lab.entitymis-sys模块
edu.scau.mis.sys.service
edu.scau.mis.sys.mapper
edu.scau.mis.sys.entitymis-web模块
edu.scau.mis.lab.controller
edu.scau.mis.sys.controller
5.4 开发规范
数据库
数据库表名含模块名,如hot_room表字段名多个单词下划线连接,对应Java命名遵循驼峰原则
如数据库room_name, Java则为roomName
SQL语句DDL全大写,表名字段名全小写。如SQL语句过长,为便于阅读,应进行多行排版
后端
学习并遵循alibaba Java开发规范,此外命名规范也要遵循所选框架的约定。
domain类命名遵循”模块名+类名”,如HotRoom
mapper接口: RoomMapper
mapper映射文件:RoomMapper.xml,映射文件以模块名分目录管理,如hot/RoomMapper.xml
mapper方法命名 queryById,queryAll,queryByPage,insert,update,deleteById,count,….
Service接口及实现类: IXxxService, XxxServiceImpl;
Service方法命名与Mapper保持一致。
Controller类:XxxController
Controller方法命名:list,getByXxx,add,edit,deleteById, …
Restful接口路径: 如 /room/list, /room/1
前端
前端文件以模块名分目录管理,如api/hot/room.js, views/hot/room.vue
前端axios api方法命名:listXxx,getXxx,addXxx,updateXxx,deleteXxx,……
以下设计内容可选,根据迭代任务及目标,选择对应设计内容,包括但不限于:
- 架构设计:功能及性能对架构影响,技术栈选型,分层分包策略,设计模式,开发规范等
- 接口设计:硬件及软件接口设计
- 算法设计:复杂功能实现算法
- 报表设计:设计报表样式、表体、数据筛选等
- 安全设计:如网络安全、数据安全、操作日志、系统安全等