6.1节涉及到技术层面需要改进的部分,而6.2节则是业务方面未实现的部分,这两个部分的代码都会在本项目中实现。而6.3节会进一步完善本项目的安全和性能,但是不一定会在本项目中实现,因为会增加相当大的复杂性。
数据库中涉及到枚举类型的字段,目前设置成VARCHAR。 下一步应该设计不同的业务enum类型,然后mybatis自定义BaseTypeHandler来处理不同的枚举类型。
目前,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的配置。
目前,数据库的日期时间域有的采用DATE,有的是DATETIME,而对应Java用LocalDate和LocalDateTime。 下一步应该根据具体业务功能采用合适的。
目前的vue-element-admin基于element 2.0.8, 因此element的很多修复没有跟新。
目前没有事务管理,因此如果直接把项目用于正式运行中,可能会存在数据不一致等问题。
个人觉得目前nideshop-mini-program里的登录设计内部实现不是很合理。
技术不断迭代开发中,应该在业务基本完成和功能基本完善以后, 重新审视代码架构和技术,或者重构代码,或者采用更为合理的技术。
目前微信支付模块因缺乏支付权限而不能开发。
部分业务需要引入任务管理服务,例如订单下单以后一个小时未支付则自动失效关闭。
项目运行的整个运行过程应该需要监控管理
目前安全实现非常粗糙,仅仅依赖管理员的用户名和密码。 更好的做法是引入角色权限机制。
尽在系统所有业务功能完整实现以后。
仅在系统所有业务功能完整实现以后。
性能的提升存在多种方案。
目前考虑到的技术方案:
- 采用内存数据库,如redis,缓存一些改动较少的数据,例如行政区域数据。
- 数据库方面可以引入冗余,例如首页的数据可以先从其他表更新到一个独立的表。
仅在系统所有业务功能完整实现以后。
对象存储云服务不一定是必须的:
- 局域网中只能采用内部对象存储服务
- 对象存储云服务也是一笔开销
- 引入对象存储云服务也增加了一定的复杂性
- 导致对具体云平台的耦合
当然,对象存储云服务的益处也是毋庸置疑的,因此建议部署使用。
同上,如果仅在局域网中部署项目,那么数据库的部署也只能是在局域网中,但是在互联网中部署应用,数据的重要性和优先级是最高的,采用云数据库可以方便带来其提供的安全和性能服务。
真正的项目里面肯定需要短信功能。
目前的关键字是管理员设置,然后用户的搜索时匹配关键字,因此需要专业的推荐系统。