【问题标题】:What are Monolithic Software Architectures other than Clean Architecture什么是除干净架构之外的单体软件架构
【发布时间】:2021-11-26 19:30:12
【问题描述】:

除了干净的架构(六边形架构或端口和适配器)之外,对于单体软件,还有其他值得了解的软件架构吗?

我无法通过简单的谷歌搜索找到其他架构,而且我研究中的大多数文章都围绕着清洁架构。

谢谢。

【问题讨论】:

    标签: architecture software-design


    【解决方案1】:

    我不熟悉六边形架构。我快速浏览了一下。看起来 Hexagonal Architecture 是 Alistair 推荐的分层架构。我所知道的最古老的分层架构(面向对象软件)是模型-视图-控制器。视图是一层,控制器是另一层,模型是第三层。选择图层有些随意。 Here is a link to a very common four layer architecture.

    分层架构的想法很简单。将不同类型的功能划分为层。遵循一个层只允许与它下面的层通信的规则。看看分层架构图,你就会明白我的意思。

    这种做法在层之间建立边界。希望这些边界代表层之间的简单接口。这个想法是,不同层的实现可以独立改变,只要每个层继续支持其上层的定义良好的 API。

    完成这项工作的诀窍在于组织性而非技术性。分配不同的团队来创建和维护每一层。我推荐一个 Scrum 团队 == 一层。每个层/团队都有自己的源代码存储库。制定规则,其他团队只能使用已发布的工件/库。

    当两个团队开会并讨论他们的需求时,一个层的 API 就会演变。两个团队都需要就层 API 的更改达成一致。如果没有 API 更改,每个团队都可以免费测试、重构和改进他们的层,而无需咨询其他团队。

    这些做法有助于保持分层架构“干净”和松散耦合。

    【讨论】:

    • 感谢您的回答。我理解这一点,我的问题是关于除了这种分层架构之外是否还有其他架构来分层单体应用程序。我在这里找到了或多或少完整的答案:softwareengineering.stackexchange.com/a/371971/401385
    • @Abdelkrim Bournane 在您的链接中这是一个非常好的答案。我很高兴看到作者对 Smalltalk 给予了肯定。 Smalltalk 之所以重要有很多原因。 MVC 只是其中之一。
    猜你喜欢
    • 2013-05-24
    • 2020-02-17
    • 1970-01-01
    • 2018-03-12
    • 2019-03-28
    • 2016-06-24
    • 2018-04-03
    • 1970-01-01
    • 2018-09-16
    相关资源
    最近更新 更多