All Projects → dddplus → dddplus-archetype-demo

dddplus / dddplus-archetype-demo

Licence: Apache-2.0 license
♨️ Using dddplus-archetype build a WMS in 5 minutes. 5分钟搭建一个仓储中台WMS!

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to dddplus-archetype-demo

csharp-ddd-skeleton
🦈✨ C# DDD Skeleton: Bootstrap your new C# projects applying Hexagonal Architecture and Domain-Driven Design patterns
Stars: ✭ 67 (+19.64%)
Mutual labels:  skeleton, ddd, ddd-architecture, ddd-example
typescript-ddd-example
🔷🎯 TypeScript DDD Example: Complete project applying Hexagonal Architecture and Domain-Driven Design patterns
Stars: ✭ 607 (+983.93%)
Mutual labels:  ddd, ddd-architecture, ddd-example
Typescript Ddd Skeleton
🟨 TypeScript DDD Skeleton: Bootstrap your new projects or be inspired by this example project
Stars: ✭ 240 (+328.57%)
Mutual labels:  skeleton, ddd, ddd-architecture
Modular Monolith With Ddd
Full Modular Monolith application with Domain-Driven Design approach.
Stars: ✭ 6,210 (+10989.29%)
Mutual labels:  ddd, ddd-architecture, ddd-example
typescript-ddd-course
🔷🔖 TypeScript DDD Course: Learn Domain-Driven Design in TS lesson by lesson
Stars: ✭ 28 (-50%)
Mutual labels:  ddd, ddd-architecture, ddd-example
Php Ddd Skeleton
🐘🚀 PHP DDD Skeleton: Bootstrap your new projects or be inspired by this example project
Stars: ✭ 152 (+171.43%)
Mutual labels:  skeleton, ddd, ddd-architecture
Dddplus Demo
♨️ Demonstrate how to use DDDplus to build a complex OMS.演示如何使用DDDplus实现一套订单履约中台OMS
Stars: ✭ 111 (+98.21%)
Mutual labels:  skeleton, ddd, scaffold
Nlayerappv3
Domain Driven Design (DDD) N-LayeredArchitecture with .Net Core 2
Stars: ✭ 138 (+146.43%)
Mutual labels:  ddd, ddd-architecture
Java Ddd Skeleton
♨️ DDD in Java skeleton & examples. Course:
Stars: ✭ 140 (+150%)
Mutual labels:  ddd, ddd-architecture
Baumeister
👷 The aim of this project is to help you to build your things. From Bootstrap themes over static websites to single page applications.
Stars: ✭ 171 (+205.36%)
Mutual labels:  skeleton, scaffold
Symfony Ddd Wishlist
Wishlist, a sample application on Symfony 3 and Vue.js built with DDD in mind
Stars: ✭ 172 (+207.14%)
Mutual labels:  ddd, ddd-architecture
Library
This is a project of a library, driven by real business requirements. We use techniques strongly connected with Domain Driven Design, Behavior-Driven Development, Event Storming, User Story Mapping.
Stars: ✭ 2,685 (+4694.64%)
Mutual labels:  ddd, ddd-architecture
Run Aspnetcore
A starter kit for your next ASP.NET Core web application. Boilerplate for ASP.NET Core reference application, demonstrating a layered application architecture with applying Clean Architecture and DDD best practices. Download 100+ page eBook PDF from here ->
Stars: ✭ 227 (+305.36%)
Mutual labels:  ddd, ddd-architecture
Coolstore Microservices
A full-stack .NET microservices build on Dapr and Tye
Stars: ✭ 1,903 (+3298.21%)
Mutual labels:  ddd, ddd-example
Dddplus
🔥 A lightweight flexible development framework for complex business architecture with full ecosystem!轻量级业务中台开发框架,中台架构的顶层设计和完整解决方案!
Stars: ✭ 107 (+91.07%)
Mutual labels:  ddd, ddd-architecture
Event Sourcing Jambo
An Hexagonal Architecture with DDD + Aggregates + Event Sourcing using .NET Core, Kafka e MongoDB (Blog Engine)
Stars: ✭ 159 (+183.93%)
Mutual labels:  ddd, ddd-architecture
Dev Stuff
😎 Programming stuff for everyone. Collection of articles, videos about architecture, Domain Driven Design, microservices, testing etc.
Stars: ✭ 105 (+87.5%)
Mutual labels:  ddd, ddd-architecture
Ddd Tdd Rich Domain Model Dojo Kata
DDD patterns implemented following TDD
Stars: ✭ 91 (+62.5%)
Mutual labels:  ddd, ddd-architecture
Netcorekit
💗 A crafted toolkit for building cloud-native apps on the .NET platform
Stars: ✭ 248 (+342.86%)
Mutual labels:  ddd, ddd-architecture
Dredd Example
Example application using Dredd and CI
Stars: ✭ 79 (+41.07%)
Mutual labels:  skeleton, scaffold

dddplus-archetype-demo

Using dddplus-archetype build a WMS in 5 minutes. 利用 dddplus-archetype 5分钟搭建一个仓储中台WMS!

Requirement DDDplus version

演示简介

仓储系统,WMS(warehouse managment system),在整个供应链中起着至关重要的作用,它主要由四大部分组成:

  • 入库管理
  • 在库管理
  • 出库管理
  • 基础数据

本演示目标:

  • 快速搭建一个WMS的入库(inbound,简称ib)中台骨架
  • 完成一个不算简单的use case:创建上架任务

第一分钟:利用dddplus-archtype创建项目

mvn archetype:generate                              \
    -DarchetypeGroupId=io.github.dddplus            \
    -DarchetypeArtifactId=dddplus-archetype         \
    -DarchetypeVersion=1.0.2-SNAPSHOT               \
    -DgroupId=io.wms -DartifactId=wms-ib            \
    -Dpackage=io.wms.ib -Dversion=1.0.0-SNAPSHOT    \
    -B

github上查看该步骤提交的代码.

该过程,不需要开发代码,完全自动生成。

第二分钟:实现创建上架任务用例的骨架

业务介绍

创建上架任务,是指采购的货品已送达仓库,完成了扫码、验收,现在要存放到库房的货架上。

具体地,仓库工人会对货品进行验收,利用手持设备扫描每个商品条码,都完成后点击验收完毕按钮,服务器会调用创建上架任务API。

本演示就是要完成该API,通过Apache Dubbo形式提供。

上架,这里使用英文shelving

开发内容

  • wms-ib-api 模块,定义对外暴露的API
  • wms-ib-facade 模块,实现该API
  • wms-ib-application 模块,编排领域服务,在 use case 层实现该API
  • wms-ib-domain 模块,实现核心业务逻辑
    • 定义领域模型、领域服务
    • wms-ib-spec 模块,定义领域模型规范
    • 通过依赖倒置定义基础设施层需要实现的技术细节接口
  • wms-ib-infrastructure 模块,实现领域层要求的技术细节接口
    • 定义物理模型
  • wms-ib-test 模块,单元测试模块,主要针对domain层编写测试用例

github上查看该步骤提交的代码.

后三分钟:完成创建上架任务业务逻辑

业务分析和抽象

需要领域专家和研发同学共同参与完成。

创建上架任务从业务上被抽象成如下步骤来完成:

  • 根据上架任务编号进行防重校验
  • 通过RPC调用人工智能系统:推荐储位服务
    • 一个sku,可能推荐到多个储位
    • 因此需要根据储位数量重新拆分上架任务明细
      • 例如:上架要求是2个明细项,推荐储位计算后可能拆分成3个
  • 储位库存预占
  • 落库保存,等待后续的任务分配
  • 上架任务的冗余数据预加载,以提升真正上架时的工人效率

多场景下业务多态

真正的上架任务,其实非常复杂:

  • 业务场景
    • 采购入库
    • 退货入库
    • 内配入库
    • 搬仓入库
    • 加工入库
    • 调拨入库
    • etc
  • 上架操作方式
    • 整箱上架
    • 拆箱上架
    • etc
  • 每个仓库的设备、场地、规模、运营要求等不同,上架会有不同
  • 标准件商品和异形商品上架会不同
  • 不同KA可能在对上架任务有要求,例如是否允许混分、拆包
  • 有些行业可能对上架也有特殊要求,例如:医药,冷链等

开发内容

  • wms-ib-domain 模块
    • 定义领域步骤
    • 补充领域模型
  • wms-ib-infrastructure 模块,实现所有相关
    • 包括事务
    • 此处省略了 cache/DAO/MQ/RPC dubbo 等实现

github上查看该步骤提交的代码.

后续

  • 根据业务的多态性,针对更多的业务场景,定义扩展点
  • 根据业务复杂度和自治性,抽象出多个支撑域
  • 根据组织上的前中台架构,和业务特征,定义 Partner 和 Pattern,并绑定扩展点实现
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].