Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

对于 domain ,app,infra 的疑问 #130

Closed
AnRic opened this issue Nov 19, 2020 · 5 comments
Closed

对于 domain ,app,infra 的疑问 #130

AnRic opened this issue Nov 19, 2020 · 5 comments

Comments

@AnRic
Copy link

AnRic commented Nov 19, 2020

大佬好,近几天在看您的 cola 架构,有个疑问斗胆在这边咨询您一下。

前提:之前项目中引用过 cola2.0,但并未真正的按照领域模型来开发,大体只是借鉴了 cola 的module 架构,事件总线,及一些工具吧。现在回头再看,看到cola 已升级到 3.0,因此,通过 start.aliyun.com 获取了一份 3.0 的demo,通过 archetype 的方式获取了一份 3.1 的demo。但在查看代码时有一些疑问,不知道是不是自己理解有问题,希望能得到您的解答。

1.在 3.0 的 demo 中,看到app 层的xxxCmdExe.jave 中,部分引用的是domain 层中定义的 xxxGateway,部分是 infra 层中定义的xxxMapper。按照个人目前对 cola的理解,app 层是否是不允许引用 xxxMapper,只允许引用 domain 中定义的 xxxGateway以及domain对象及domainservice?

2.基于上述疑问,可否在 app 层移除对 infra的依赖,只保留对 domain 的依赖,start启动层再添加 infra 依赖,具体如附件图中所示。基于这种想法,个人在 3.1 的 demo 中实操了一遍,验证可行,但由于还未很清楚 cola 的设计思想,尚不太确定 app 层引用 infra 层是否有其他重要作用,所以也作为一个疑问提出。

image

@lihhd
Copy link

lihhd commented Nov 19, 2020

「app 层是否是不允许引用 xxxMapper」
这样的话 就绕了。没有实质上的好处吧

@AnRic
Copy link
Author

AnRic commented Nov 19, 2020

「app 层是否是不允许引用 xxxMapper」
这样的话 就绕了。没有实质上的好处吧

我的理解是这样,所以不确定对不对。
个人感觉 app 层应该使用domain 层对象来做,不应该再涉及到底层的 xxxMapper 和 xxxDO 之类的,这样infra层的一些变换只需要做好跟domain层间的 转换,不需要改动app层。不然app层都可以直接使用 xxxMapper了,还定义 domain 做什么。

@significantfrank
Copy link
Collaborator

之所以可以绕过Domain层,是说Domain层是可选的,对于简单的CRUD,你不觉得完全不需要Domain层么:)

@pingguoilove
Copy link

之所以可以绕过Domain层,是说Domain层是可选的,对于简单的CRUD,你不觉得完全不需要Domain层么:)

这样的话,application层是不是就依赖了具体数据库特性了呢?我感觉这个疑问还是有点道理的。

@Ant-dong
Copy link

对于

这样是不是就退化成mvc的三层结构了?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants