首页 > 解决方案 > 在应用程序架构中有两个术语层和层的实际原因是什么?

问题描述

根据这个答案, 是不同的东西。

我看到了使用术语的一个实际原因,即它在逻辑上划分代码,因此它变得更易于维护。这只是帮助你

但我没有看到使用术语tier的任何实际原因。根据这个结论,我理解为什么人们倾向于交替使用

我仍然希望这个词有它自己的含义,而不是毫无意义。那么,你能给我任何它在开发中使用的实际例子吗?

标签: architecturen-tier-architecture

解决方案


在神话人物月中,包装被认为是一种早期的罪恶。层是包装的一部分。

你已经很好地设计了你的系统。你的组件有很好的接口边界,每个组件都可以部署在不同的计算机上,具有不同的架构,在不同的位置,你的系统可以正常工作。如果您遵循这一点,其中许多组件不仅可以远程部署,还可以冗余和并发部署,以实现更大的可扩展性和弹性。

微服务架构实际上需要这个。你的系统需要分解成 in(ter)? 依赖的服务,这些服务可以部署在你的控制层之外以允许扩展等。现代版本的 JCL(*) 用于像 k8s 和 faas 这样的丑陋命名的东西来授予扩展和冗余到您的系统。

不管这些巧妙的配置机制如何;传统系统理论的一些基础知识占主导地位。例如,如果两个模块过度通信/共享,则它们需要相对位于同一位置。JCL 需要能够表达这一点,并且组件链接的断言成为层的定义。

(*)作业控制语言;IBM 在 1970 年至 2014 年期间在大型机上分配和部署资源时使用的一种受到正确诽谤的机制;当它突然被 k8s 旗帜下的一组更难理解的 json 和 yaml 文件所取代时。不吸取教训的人,注定要重蹈覆辙;很糟糕。


推荐阅读