作者:奥尔汗侯赛因利 作为软件工程师,为什么至少要学习基本的架构模式? 我相信很多人都回答过这个问题,但我会给你一些思考的理由。 首先,如果你知道建筑模式的基本知识,你就更容易按照建筑师的要求去做。 其次,理解这些模式将有助于您在代码中做出决策:例如,如果您的应用程序设计基于事件驱动的微服务,那么作为一名软件工程师,如果您注意到现有服务中日益增加的复杂性和逻辑责任,您必须将代码解耦到一个单独的服务中。 马克理查兹在他的书中描述了五种模式: 分层架构,事件驱动架构(或微内核架构),插件架构,微服务架构(或基于空间的架构 t-darkmode-bdbdbd">)1.分层架构它是单体应用程序最常见的架构。该模式背后的基本思想是将应用程序逻辑划分为若干层,每一层都封装了特定的角色。例如,持久层将负责您的应用程序与数据库引擎的通信。 2.事件驱动架构这种模式背后的想法是将应用程序逻辑解耦为异步接收和处理事件的单一用途事件处理组件。这种模式是流行的分布式异步架构模式之一,以高可扩展性和适应性着称。 3. 微内核架构Mikrokernel 架构,也称为插件架构,是具有两个主要组件的设计模式:核心系统和插件模块(或扩展)。一个很好的例子是Web 浏览器(核心系统),您可以在其中安装无穷无尽的扩展(或插件)。 4. 微服务架构微服务架构由单独部署的服务组成,理想情况下,每个服务都有单一的职责。这些服务相互独立,如果一项服务失败,其他服务将不会停止运行。 5. 基于空间的架构基于空间的模式背后的主要思想是分布式共享内存,以缓解在数据库级别经常发生的问题。假设通过使用内存数据处理大多数操作,我们可以避免数据库中的额外操作,因此可能会从那里演变出任何未来的问题(例如,如果您的用户活动数据实体已更改,您不需要更改一堆持久化的代码并从数据库中检索该数据)。 基本方法是将应用程序分成处理单元(可以根据需要自动扩展和缩减),其中数据将在这些单元之间复制和处理,而无需对中央数据库进行任何持久性(尽管将有本地存储用于系统故障的场合)。 您可以在他的 GitHub 帐户中找到其中一些架构模式的最简单示例。这里的链接:
|