Skip to main content

myddd-java简介

简介#

myddd-java是基于Java及Spring Boot的领域驱动基础框架。

myddd-java始终坚持以下两个原则:

  1. 最大化的倡导ddd编码风格与模式

  2. 把支持Spring Boot做为第一要务

    Spring Boot全家桶技术,已成为中小企业,个人开发者开发的主流选择。选择支持Spring Boot,也是期望为更多的人与团队服务。在不影响他们的整体架构的选型下,更好的推广与传播DDD

myddd-java是我在2020年在做一个后端项目时,基于dddlib整理的一个基础框架。

从"放弃"到"重拾"#

在2021年,我搞了myddd-vertx,基于Kotlin与Vert.x的响应式领域驱动框架后,我本来准备"放弃"myddd-java

为何我要遗弃它?#

它是『野孩子』,myddd-java来源于dddlib

myddd-java这个框架并不是我从零开始构建的。

我在2020年做一个后端项目时,准备选择Spring Boot这个技术来做,又想保持DDD编码理念,但我熟悉的dddlib这个并没有适配与支持Spring Boot。所以我就把dddlib改了下,在它的基础之上,将其中几个最重要的几个支撑DDD理念的模块与Spring Boot做了整合,这就是myddd-java最初的来源。后面做项目时才添加了一些其它自有的代码与模块。

在dddlib上进行改造,也是因为dddlib很久没有更新,感觉有点可惜,就把它与Spring Boot整合了下,也是期望能让更多的人接触与使用DDD。

dddlib是杨宇老师的开源框架,你可以访问它的源码以了解更多。https://github.com/dayatang/dddlib

  • myddd-vertx才是"亲生的",是我从零开始构建的基础框架

myddd-vertx是基于Kotlin与Vert.x的响应式领域驱动基础框架,与myddd-java不同,这个是我在自己对DDD理解之上,从零开始一行一行代码构建出来的基础框架

这才是 『亲生的』好吧。

当然更喜欢亲生的啦 。

  • myddd-java的代码简洁性与性能,都远不及myddd-vert.x

由于myddd-java是传统的Java的线程模式的同步编码模式,相比之下,无论是代码的简洁性,还是整体框架的性能,其与myddd-vertx相比有较大的差距。

为何捡回来了#

  • java与Spring Boot仍然是后端开发的主流选择

虽然很多后端的编程人员,包括一些优秀的人员不太喜欢Java这个语言,更是对Spring这种全家桶没有太多好感,但不可否认的是,在后端编码中,仍然没有任何一种其它模式能与这两者的搭配相抗衡。

  1. Java语言的易学性,使得构建一个开发团队较为容易,成本也低。
  2. Spring Boot解决了项目技术主流各个方面的问题,不管你认可不认可,喜欢不喜欢,用它一定能解决问题。

所以,继续支持Java及Spring Boot仍然具有非常重要的价值

  • myddd-vertx带来了双重挑战,不利于推广与使用

虽然我个人认为myddd-vertx无论是在代码简洁性上,还是性能上,都远优于myddd-java这种传统的模式,但myddd-vertx毕竟对个人或团队有着双重的挑战

  1. 你得熟悉与掌握一门新的语言--Kotlin
  2. 你得学习与理解异步编程的模式,并掌握Vert.x这个玩意

我估摸着就算myddd-vertx优势明显,但基于上述两个原因,真正会尝试并使用的人并不会太多。

  • 维护它的成本并不高

维护它并不需要花费多少时间,因为我并没有想去造任何的轮子,只是尽量支撑能较好的实现DDD领域驱动理念而已。

至于在myddd-stater中支持myddd-java项目的生成,这个成本就更低了。

因为myddd-starter项目生成的底层逻辑是我设计了一套代码生成的规则 ,在这个规则之上,添加新的项目生成模块,并不需要修改代码,只需要按规则建立一些模板文件就行了