理解模型层及其复杂性
understanding the model layer and its intricacy
我使用 MVC 框架 (PHP) 已经有一段时间了,我相信我非常了解层分离的概念。
对于那些还没有到场的人,我正在谈论:
- M => 模型,数据层;
- V => 查看,应用的UI;
- C => 控制器,处理业务逻辑和传入请求;
最近我遇到了一些通过使用其他层并扩展模型层来扩展这一概念的项目。
这些层使用 类,例如服务、存储库、转换器、值对象、数据映射器等
我也理解 DDD 的基本思想,但是,我想知道上面提到的这种类型的架构叫什么,这些附加层是否与 DDD and/or 任何设计模式相关联,如果你大家可以分享一些资源(博客 post、书籍、视频等),从中向该社区的其他用户学习这些东西。
作为参考,我在这个问题上找到了 tereško's aswer,这与我正在寻找的非常相似。
非常感谢
These layers use classes such as services, repositories, transformers,
value objects, data mappers, etc.
很难将这些归因于任何特定的体系结构。例如,值对象又名数据传输对象 (DTO),又名普通旧 CLR/Java 对象 (POCO/POJO's) 通常在基于 .Net / Java 的 OO 解决方案中找到。
更根本的是,正如您可能已经知道的那样,逻辑层('...只是一种组织代码的方式。'*)是软件架构中的一个基本概念,因此您会发现它们无处不在地方,而不是特定于任何一种架构。
- 查看 Panos 对“What's the difference between “Layers” and “Tiers”?”的深入回答。
share some resources (blog post, books, videos, etc)
就架构而言,使用层的架构风格以及您列出的概念适合的架构:
- 5-Layer Architecture(我在 2011 年记录的一个,我仍在使用)
- Ports & Adaptors aka Hexagonal Architecture目前似乎有很多关于六边形架构的文章,其中post是我见过的最好的
两者中的许多关键概念实际上非常相似。
这两者背后的总体思路非常相似。我敢肯定,您会发现其他架构,但它们有多少实质性差异是另一个问题。
我会将其设为社区 Wiki,以便其他人可以添加他们知道的任何资源。
我使用 MVC 框架 (PHP) 已经有一段时间了,我相信我非常了解层分离的概念。
对于那些还没有到场的人,我正在谈论:
- M => 模型,数据层;
- V => 查看,应用的UI;
- C => 控制器,处理业务逻辑和传入请求;
最近我遇到了一些通过使用其他层并扩展模型层来扩展这一概念的项目。 这些层使用 类,例如服务、存储库、转换器、值对象、数据映射器等
我也理解 DDD 的基本思想,但是,我想知道上面提到的这种类型的架构叫什么,这些附加层是否与 DDD and/or 任何设计模式相关联,如果你大家可以分享一些资源(博客 post、书籍、视频等),从中向该社区的其他用户学习这些东西。
作为参考,我在这个问题上找到了 tereško's aswer,这与我正在寻找的非常相似。
非常感谢
These layers use classes such as services, repositories, transformers, value objects, data mappers, etc.
很难将这些归因于任何特定的体系结构。例如,值对象又名数据传输对象 (DTO),又名普通旧 CLR/Java 对象 (POCO/POJO's) 通常在基于 .Net / Java 的 OO 解决方案中找到。
更根本的是,正如您可能已经知道的那样,逻辑层('...只是一种组织代码的方式。'*)是软件架构中的一个基本概念,因此您会发现它们无处不在地方,而不是特定于任何一种架构。
- 查看 Panos 对“What's the difference between “Layers” and “Tiers”?”的深入回答。
share some resources (blog post, books, videos, etc)
就架构而言,使用层的架构风格以及您列出的概念适合的架构:
- 5-Layer Architecture(我在 2011 年记录的一个,我仍在使用)
- Ports & Adaptors aka Hexagonal Architecture目前似乎有很多关于六边形架构的文章,其中post是我见过的最好的
两者中的许多关键概念实际上非常相似。
这两者背后的总体思路非常相似。我敢肯定,您会发现其他架构,但它们有多少实质性差异是另一个问题。
我会将其设为社区 Wiki,以便其他人可以添加他们知道的任何资源。