Skip to content

gassyou/OvertimeApplicationForm

Repository files navigation

项目结构

整个项目分如下几个核心的应用程序:

  1. Commom
  2. OverTime
  3. Project
  4. Staff
  5. Attendance

每个应用程序都包括了3个目录结构:

  • Application:一些业务场景的逻辑。相当于一个门面
  • Infrastructure:Repository的实现。本应用程序用到的特殊服务的接口的实现。
  • Model:存放核心的领域对象(实体,值对象, Repository的接口,服务或者某些特殊服务的接口等等。

以上3个目录,作为一个领域整体,对客户端进行服务。对于客户端来说,这些就是实现某个领域业务的一个API。

对于Common的应用程序来说:

  • Model:存放DDD相关的一些接口。包括:值对象,实体,领域事件,或者一些共同的服务的接口
  • Infrastructure: 存放持久层技术的具体实现,共同服务接口的实现

反省

其实,在这个项目中,不需要将加班单,项目,考勤分成独立的应用程序, 只要一个应用程序里面就可以了。因为,在这个里面涉及的这些概念都是从属于“加班单申请”这个上下文的。

只有当想完成“考勤”这个领域的逻辑的时候,可以将“考勤”独立成一个应用程序。一个应用程序可以理解成一个上下文。 这是,在"考勤"上下文里面的“考勤记录”这个概念,可能就不同于“加班单申请”这个上下文中“考勤记录”。

Releases

No releases published

Packages

No packages published