(翻译)软件架构样式
软件架构样式
Kalyan Bandarupalli著,hystar翻译
架构样式是一套原则,你可以使用其来构建一个特定领域的典型的系统架构样式。实现软件架构样式依赖于你的组织实现架构样式的能力及基础性约束。这边文章解释了基于一种需求应该选择怎样的架构样式。
介绍
架构样式是一套原则,你可以使用其来构建一个特定领域的典型的系统架构样式。实现软件架构样式依赖于你的组织实现架构样式的能力及基础性约束。这边文章解释了基于一种需求应该选择怎样的架构样式。
架构样式
我们一种典型的做法是将多种样式组合在一起定义一个完整的架构。例如分层架构可以与基于组件的,面向对象与SOA等样式一起使用。
下面是一个常用的软件架构样式的列表。
客户端\服务器
当存在以下情况时,考虑使用这种样式
-
这个应用是基于服务器的且需要支持多个客户端。
-
你正在构建通过浏览器开放的基于Web的应用
-
你想要对数据存储,备份及管理功能中心化。
基于组件的
当遇到以下情况是考虑使用基于组件的架构
-
你的应用有特殊的需求,其不包含UI或业务处理。
-
你的应用执行存储过程这种几乎没有或者很少输入的函数
-
你要创建一个可插拔的架构,其允许你将单独的组件进行更新或替换。
分层
当遇到以下情况时可以考虑使用分层架构
-
你的应用很复杂
-
你想要提高应用的可维护性与可扩展性。
-
你的应用支持不同类型的客户端及不同的设备。
消息总线
当存在以下情况时,考虑使用这种样式
-
你现有的程序与其它程序进行交互来完成一些任务。
-
你正在实现一个需要与外部应用交互的应用
-
你正在实现一个发布者\订阅者应用
MVC架构样式
当存在以下情况时,考虑MVC样式
-
你想要提高UI的可测试性并使UI的维护更简单
-
你想要将UI元素与UI处理代码相分离
-
你的UI处理代码并未实现任何业务逻辑。
SOA
当遇到以下情况是考虑面向服务的架构样式:
-
你想要消费一个第三方暴露的服务。
-
你想要构建一个应用将一系列不同的服务组合到一个单独的UI中
-
你要创建一个SaaS(软件即服务)应用。
-
你要通过一个可发现的目录暴露服务。
本人才疏学浅,难免出现翻译错误,请不吝赐教。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异