109 lines
4.0 KiB
Markdown
109 lines
4.0 KiB
Markdown
# 6 下一步计划
|
||
|
||
6.1节涉及到技术层面需要改进的部分,而6.2节则是业务方面未实现的部分,这两个部分的代码都会在本项目中实现。而6.3节会进一步完善本项目的安全和性能,但是不一定会在本项目中实现,因为会增加相当大的复杂性。
|
||
|
||
## 6.1 技术
|
||
|
||
### 6.1.1 ENUM
|
||
数据库中涉及到枚举类型的字段,目前设置成VARCHAR。
|
||
下一步应该设计不同的业务enum类型,然后mybatis自定义BaseTypeHandler来处理不同的枚举类型。
|
||
|
||
### 6.1.2 litemall-db AutoConig
|
||
目前,litemall-os-api、litemall-admin-api和litemall-wx-api引入litemall-db的时候,需要在Application类中显式注解查找包和MapperScan来对litemall-db中的mapper查找,此外需要在application.properties配置文件中完成对数据库、数据池等配置。
|
||
例如
|
||
```
|
||
@SpringBootApplication(scanBasePackages={"org.linlinjava.litemall.admin","org.linlinjava.litemall.db"})
|
||
@MapperScan("org.linlinjava.litemall.db.dao")
|
||
public class Application {
|
||
|
||
public static void main(String[] args) {
|
||
SpringApplication.run(Application.class, args);
|
||
}
|
||
|
||
}
|
||
```
|
||
下一步,应该自动部署,即引入litemall-db则会自动引入对mapper的查找,
|
||
同时自动部署对数据库、PageHelper和Druid的配置。
|
||
|
||
### 6.1.3 统一对日期时间域的处理
|
||
目前,数据库的日期时间域有的采用DATE,有的是DATETIME,而对应Java用LocalDate和LocalDateTime。
|
||
下一步应该根据具体业务功能采用合适的。
|
||
|
||
### 6.1.4 vue-element-admin跟新
|
||
目前的vue-element-admin基于element 2.0.8, 因此element的很多修复没有跟新。
|
||
|
||
### 6.1.5 事务管理
|
||
|
||
目前没有事务管理,因此如果直接把项目用于正式运行中,可能会存在数据不一致等问题。
|
||
|
||
### 6.1.6 小程序登陆设计
|
||
|
||
个人觉得目前nideshop-mini-program里的登陆设计内部实现不是很合理。
|
||
|
||
### 6.1.n 代码重构
|
||
|
||
技术不断迭代开发中,应该在业务基本完成和功能基本完善以后,
|
||
重新审视代码架构和技术,或者重构代码,或者采用更为合理的技术。
|
||
|
||
## 6.2 业务
|
||
|
||
### 6.2.1 支付模块
|
||
|
||
目前微信支付模块因缺乏支付权限而不能开发。
|
||
|
||
### 6.2.2 任务日程模块
|
||
|
||
部分业务需要引入任务管理服务,例如订单下单以后一个小时未支付则自动失效关闭。
|
||
|
||
### 6.2.3 监控管理
|
||
|
||
项目运行的整个运行过程应该需要监控管理
|
||
|
||
### 6.2.4 权限管理
|
||
|
||
目前安全实现非常粗糙,仅仅依赖管理员的用户名和密码。
|
||
更好的做法是引入角色权限机制。
|
||
|
||
## 6.3 企业级
|
||
|
||
### 6.3.1 安全(必须)
|
||
|
||
尽在系统所有业务功能完整实现以后。
|
||
|
||
### 6.3.2 性能(建议)
|
||
|
||
仅在系统所有业务功能完整实现以后。
|
||
|
||
性能的提升存在多种方案。
|
||
|
||
目前考虑到的技术方案:
|
||
|
||
* 采用内存数据库,如redis,缓存一些改动较少的数据,例如行政区域数据。
|
||
* 数据库方面可以引入冗余,例如首页的数据可以先从其他表更新到一个独立的表。
|
||
|
||
### 6.3.3 对象存储云服务(建议)
|
||
|
||
仅在系统所有业务功能完整实现以后。
|
||
|
||
对象存储云服务不一定是必须的:
|
||
|
||
* 局域网中只能采用内部对象存储服务
|
||
* 对象存储云服务也是一笔开销
|
||
* 引入对象存储云服务也增加了一定的复杂性
|
||
* 导致对具体云平台的耦合
|
||
|
||
当然,对象存储云服务的益处也是毋庸置疑的,因此建议部署使用。
|
||
|
||
### 6.3.4 云数据库(必须)
|
||
|
||
同上,如果仅在局域网中部署项目,那么数据库的部署也只能是在局域网中,但是在互联网中部署应用,数据的重要性和优先级是最高的,采用云数据库可以方便带来其提供的安全和性能服务。
|
||
|
||
### 6.3.5 短信服务(必须)
|
||
|
||
真正的项目里面肯定需要短信功能。
|
||
|
||
### 6.3.6 推荐系统(可选)
|
||
|
||
目前的关键字是管理员设置,然后用户的搜索时匹配关键字,因此需要专业的推荐系统。
|
||
|
||
### 6.3.6 Spring Boot 2.0迁移(可选) |