【发布时间】:2021-11-26 19:30:12
【问题描述】:
除了干净的架构(六边形架构或端口和适配器)之外,对于单体软件,还有其他值得了解的软件架构吗?
我无法通过简单的谷歌搜索找到其他架构,而且我研究中的大多数文章都围绕着清洁架构。
谢谢。
【问题讨论】:
标签: architecture software-design
除了干净的架构(六边形架构或端口和适配器)之外,对于单体软件,还有其他值得了解的软件架构吗?
我无法通过简单的谷歌搜索找到其他架构,而且我研究中的大多数文章都围绕着清洁架构。
谢谢。
【问题讨论】:
标签: architecture software-design
我不熟悉六边形架构。我快速浏览了一下。看起来 Hexagonal Architecture 是 Alistair 推荐的分层架构。我所知道的最古老的分层架构(面向对象软件)是模型-视图-控制器。视图是一层,控制器是另一层,模型是第三层。选择图层有些随意。 Here is a link to a very common four layer architecture.
分层架构的想法很简单。将不同类型的功能划分为层。遵循一个层只允许与它下面的层通信的规则。看看分层架构图,你就会明白我的意思。
这种做法在层之间建立边界。希望这些边界代表层之间的简单接口。这个想法是,不同层的实现可以独立改变,只要每个层继续支持其上层的定义良好的 API。
完成这项工作的诀窍在于组织性而非技术性。分配不同的团队来创建和维护每一层。我推荐一个 Scrum 团队 == 一层。每个层/团队都有自己的源代码存储库。制定规则,其他团队只能使用已发布的工件/库。
当两个团队开会并讨论他们的需求时,一个层的 API 就会演变。两个团队都需要就层 API 的更改达成一致。如果没有 API 更改,每个团队都可以免费测试、重构和改进他们的层,而无需咨询其他团队。
这些做法有助于保持分层架构“干净”和松散耦合。
【讨论】: