我是如何一步步编码完成万仓网ERP系统的(一)系统架构
本人是一个.net技术的码农,长期开发和维护电商erp和wms系统,曾供职于几个大的电商公司,公司名字就不说了,供职的几个电商公司,都是自研的erp和wms系统。工作这么多年,对于电商的整个流程非常熟悉,尤其对电商wms系统的每个环节了如指掌。突然有一天,心头有一个想法,能不能把我供职的几个电商公司的erp和wms系统重新整合一下,取几家公司erp的长处,做成一个比较通用的erp和wms系统呢?
说干就干,首先就是搭建系统的架构,采取哪种架构合适呢?传统的三层架构行不行?行,但是系统业务复杂度越来越高时,不利于扩展。使用领域驱动设计呢?领域驱动设计(ddd模式)好像有点复杂呢,开发的工作量可能会有点大。
想来想去那就用三层架构和领域驱动设计结合来搭建这个系统吧。好吧,咱们就直接上架构图。
简单介绍一下每个层(类库)的作用:
jos-sdk-net:京东jos sdk源码包,用于从京东抓取订单,回传物流单号,同步库存等,也可以直接引用生成的dll文件。
oss.common:通用的支付接口(支付宝和微信支付),系统暂时没有使用。
zj.common:一些常用的方法,加密解密,扩展,excel导入导出等。
zj.dataaccess:数据库连接、事务、sqlhelper等
zj.infrastructure:依赖注入的反射模块,系统使用的是microsoft.practices.unity。
zj.quartz.bll:quartz服务的业务模块。
zj.quartz.services:quartz服务(计划任务等)。
ueditor-1.4.3.3:百度的ueditor编辑器。
zj.bll:业务逻辑层。
zj.domain:model和领域对象层。
zj.openapi:用于和外部api交互的api层。
zj.repository:仓库(repository)接口层。
zj.repository.core:仓库(repository)实现层,用于sql server数据库的增删查改。
zj.repository.mysqlcore:仓库(repository)实现层,用于mysql数据库的增删查改。
zj.services:服务(services)接口层。
zj.services.impl:服务(services)实现层。
zj.webapi:用于和内部系统api交互层。
zj.webauthapi:jwt token api层,系统暂时没有使用。
zj.webauthtoken:jwt token的获取、刷新,移除等,系统暂时没有使用。
zj.wmsweb:web层,前端页面展示等。
系统架构这东西符合自己的就是好的,没必要千篇一律。
ps:客官有时间光临我的小站
上一篇: 蔬菜保质期有多久呢
下一篇: 晚上喝红糖水好吗,这里有答案