世界变得越来越依赖软件,软件系统已经渗透到了人类生活的方方面面,并带来了很多便利。从移动应用(用于和人联系),到医疗应用和深度学习模型,到金融技术系统,再到智能建筑(利用技术来自动化许多功能)。
为了提供所需的解决方案并获得最佳效果,必须使用恰当的架构来开发这些软件系统。
模式是特定于问题上下文的解决方案。
架构模式是针对特定环境中常见软件架构问题的通用且可重用的解决方案。
软件缺陷对组织业务有很大的影响。所有软件失败的主要原因都是选择了不恰当的软件架构模式,企业经常在没有正式架构的情况下启动应用程序开发。
然而,经常被忽视的一个事实是:缺少架构设计会迫使开发团队选择一个没有指导原则的典型模式。最终的方案将缺乏明确的角色、职责以及相互之间的依赖关系。
让我们看个简单的例子。
网上银行应用不需要像微服务范式那样复杂的设计。对于检索请求,创建一个客户端 - 服务器架构就够了。然而,如果没有这样的规划,应用程序就可能会变得复杂,而且没有办法回头,或者有可能在重构过程中损失大量的投资。
在本文中,我们将看看什么是软件架构模式,并对其中一些模式进行详细介绍。请记住,可以在单个系统中使用许多模式,用最好的设计来优化每一部分代码。
尽管我们称之为计算机科学,但它时常是一门艺术。
让我们来看看