作为软件工程师,为什么至少要学习基本的架构模式? 我相信有很多人回答了这个问题,但我会给你一些考虑的理由。 首先,如果您了解架构模式的基础知识,那么您就更容易遵循架构师的要求。 其次,了解这些模式将有助于您在代码中做出决策:例如,如果您的应用程序设计基于事件驱动的微服务,那么作为软件工程师,您必须将您的代码解耦为一个单独的服务,如果您注意到日益增加的复杂性和现有服务中的逻辑责任。 Mark Richards 在书中描述了 5 种模式:
分层架构
事件驱动架构
微内核架构(或插件架构)
微服务架构
基于空间的架构(或云架构模式)
1.分层架构
它是单体应用程序最常见的架构。该模式背后的基本思想是将应用程序逻辑划分为若干层,每一层都封装了特定的角色。例如,持久层将负责您的应用程序与数据库引擎的通信。
2.事件驱动架构
这种模式背后的想法是将应用程序逻辑解耦为异步接收和处理事件的单一用途事件处理组件。这种模式是流行的分布式异步架构模式之一,以高可扩展性和适应性着称。
3. 微内核架构
Mikrokernel 架构,也称为插件架构,是具有两个主要组件的设计模式:核心系统和插件模块(或扩展)。一个很好的例子是Web 浏览器(核心系统),您可以在其中安装无穷无尽的扩展(或插件)。
4. 微服务架构
微服务架构由单独部署的服务组成,理想情况下,每个服务都有单一的职责。这些服务相互独立,如果一项服务失败,其他服务将不会停止运行。
5. 基于空间的架构
基于空间的模式背后的主要思想是分布式共享内存,以缓解在数据库级别经常发生的问题。假设通过使用内存数据处理大多数操作,我们可以避免数据库中的额外操作,因此可能会从那里演变出任何未来的问题(例如,如果您的用户活动数据实体已更改,您不需要更改一堆持久化的代码并从数据库中检索该数据)。 基本方法是将应用程序分成处理单元(可以根据需要自动扩展和缩减),其中数据将在这些单元之间复制和处理,而无需对中央数据库进行任何持久性(尽管将有本地存储用于系统故障的场合)。
责任编辑:彭菁
-
数据库
+关注
关注
7文章
3750浏览量
64207 -
代码
+关注
关注
30文章
4708浏览量
68176 -
应用程序
+关注
关注
37文章
3232浏览量
57530
原文标题:几个软件架构模式
文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论