一、现在的公司有一部分电商业务,由于时间仓促,开始的设计原则就是,先有东西再说,做完了后期再优化。所以导致了现在很多的问题。
二、整体情况一时半会儿也说不清,单独先开个文章记录问题,后续再加东西。
三、首先是规范。
1. 数据库。表的命名规范很随意,开头用t、tk、ts等等,英语和拼音混杂。表内的字段命名也很随意,大小写掺杂,英文和拼音掺杂。时间的问题,现在保存的是varchar类型的,yyyy-mm-dd类型,这样数据库迁移性不高,其实一般是保存毫秒数,即1970s到现在的毫秒数。索引什么的也没有利用。mybatis功能只用到了基础功能,多表关联或者子查询关联什么的也没有用上。在历史版本的问题,没有很好的记录,当初想着搭建类似于flyway,不了了之。powerdesigner等工具也没有利用起来。
2. 业务层的结构设计。
a. 先从最基本的角色和权限来说。现阶段其实只有角色没有权限,或者说权限的作用表现得不那么明显。最近做的是店主和店员的角色设计,这是电商最基础的功能,远一点还有部门,这些都是要分配权限的。但是现在的业务还没有那么复杂,但是一直以来店员的问题就存在。现在的设计只是为了解决问题而解决问题,单纯的只是申请账号,绑定到某个店铺下,成为店员,区分业务,然后区别这个账号下的操作属于哪一角色。其实支付宝也有店员的功能,无非是切换一下操作页面,是个人版还是商家版,或者,个人版还是店员版,这样就能更简单的解决操作问题。
关于入口设计,可以选用一些设计模式的东西,例如工厂模式,会简化很多业务代码。
这其实是小厂的通病,没有规范化的流程,有时候就是拍脑袋想出来的功能,或者产品也在探索之中,在根据市场不断地调整产品方向和功能。产品很急,那么代码端的数据模型设计就很急,一个功能分几个人写,如果不能提前沟通好,在业务逻辑端就会产生很多重复代码。(后期我们采用了mybatisPlus,减少了一部分基础的增删改查的工作量)
b.商品模块,基础信息包含,商品信息,物流,秒杀,vip,规格,购物车,订单,支付,优惠券,所属店铺信息。相关的信息,包括,评论,点赞,收藏,浏览量,分享。还有相关的,店铺信息管理,商品信息管理,秒杀管理,优惠券等等,基本信息都需要管理。后期加的东西太多,且无法预料,只能是后来加字段。商品这个有时间单独拿出来写,问题太多。
c. 安全性
d. 单一登录问题
e. 推送问题
f. 文档问题
g. 论坛功能
未完....