Skip to content

promacanthus/vigour

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VIGOUR

使用领域驱动设计开发微服务。

shipping

项目原始链接,shipping

此示例展示了一个更贴近真实世界的应用程序,它由多个服务组成。

描述

该实现基于Eric Evans的《领域驱动设计》一书中的集装箱运输领域,该书最初是用Java实现的,但此后已移植到Go。本示例是一个简化版本,以演示Go kit的用法。原始的Go应用程序是单独维护的,并带有AngularJS应用程序和模拟路由服务。

项目组织

该应用程序包含三个应用程序服务,即预订,处理和追踪。如前面的示例所示,每一个都是单独的Go kit服务。

  • booking服务:货运公司用来预订和运送货物。
  • handing服务:员工在全球范围内进行收货,装货注册。
  • tracking服务:客户用来追踪路线上的货物。

也有一些通用领域服务,其中包含一些复杂的业务逻辑。它们提供每个应用程序服务使用的领域对象和服务,以为用户提供有趣的用例。

inmem是通用领域服务中存储库的内存实现。

routing提供了一个领域服务,该领域服务用于向外部应用程序查询可能的路由。

关于项目

为什么要创建这个项目呢?

因为,在学习领域驱动设计和微服务架构的时候,各种大佬的参考项目都是用Java写的。确实Java的生态更加成熟,在应用层开发的时候,用起来更方便吧。但是,看看现在云基础设施哪一个不是用Golang开发的(各大云原生开源项目疯狂暗示),那应用层用Go开发是不是能更好的和基础设施融合呢?我也不知道是不是这样,但是总想给Gopher证明一下,因此有了这个项目。

一来把学的知识用项目实践一下,二来查漏补缺,也当作笔记,最后希望给想要入门的人一个参考。

本项目参考如下项目(站在巨人的肩膀上走的更远):

  1. shippy
  2. chitchat
  3. goddd

使用的知识和技术

技术

快速阅读

没时间的点这里,了解大概。有时间的看下面,了解透彻。

领域驱动设计

微服务

About

VIGOUR (domain-driVen desIGn micrOservices architectURe)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages