欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

我是如何一步步编码完成万仓网ERP系统的(一)系统架构

程序员文章站 2022-05-15 10:38:00
本人是一个.Net技术的码农,长期开发和维护电商ERP和WMS系统,曾供职于几个大的电商公司,公司名字就不说了,供职的几个电商公司,都是自研的ERP和WMS系统。工作这么多年,对于电商的整个流程非常熟悉,尤其对电商WMS系统的每个环节了如指掌。突然有一天,心头有一个想法,能不能把我供职的几个电商公司 ......

  本人是一个.net技术的码农,长期开发和维护电商erp和wms系统,曾供职于几个大的电商公司,公司名字就不说了,供职的几个电商公司,都是自研的erp和wms系统。工作这么多年,对于电商的整个流程非常熟悉,尤其对电商wms系统的每个环节了如指掌。突然有一天,心头有一个想法,能不能把我供职的几个电商公司的erp和wms系统重新整合一下,取几家公司erp的长处,做成一个比较通用的erp和wms系统呢?

  说干就干,首先就是搭建系统的架构,采取哪种架构合适呢?传统的三层架构行不行?行,但是系统业务复杂度越来越高时,不利于扩展。使用领域驱动设计呢?领域驱动设计(ddd模式)好像有点复杂呢,开发的工作量可能会有点大。

  想来想去那就用三层架构和领域驱动设计结合来搭建这个系统吧。好吧,咱们就直接上架构图。

  我是如何一步步编码完成万仓网ERP系统的(一)系统架构

  简单介绍一下每个层(类库)的作用:

  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:客官有时间光临我的小站