Files
litemall/doc/6.md
2018-03-23 00:20:50 +08:00

109 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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迁移(可选)