本人是一个.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:客官有时间光临我的小站