Architecture patterns in the world: some basic knowledge

There are many Architecture Patterns like
Microkernel
Micro-services
Layered architecture
event-based

Architecture patterns in the world: a full list and more knowledge

Architectural Patterns are widely used templates that provide proven solutions to common problems encountered in software development. These patterns offer a way to structure software applications in a way that makes them flexible, maintainable, and scalable.

The goal of architectural patterns is to provide a blueprint for solving complex problems in a simple and elegant manner. These patterns are a set of best practices and guidelines that have been accumulated over years of experience in software development. They help to streamline the development process by reducing the amount of time spent on making design decisions.

The following are some of the popular architectural patterns:

Model-View-Controller (MVC) pattern: This pattern separates an application into three distinct components: the model, the view, and the controller. The model represents the data and business logic, the view represents the user interface, and the controller handles user interactions and updates the view and model.

Model-View-ViewModel (MVVM) pattern: This pattern is similar to the MVC pattern, but it provides a clear separation between the model, the view, and the view model. The view model is responsible for exposing the data and behavior of the model to the view, and for processing user inputs.

Model-View-Presenter (MVP) pattern: This pattern is similar to the MVC and MVVM patterns, but it provides a clear separation between the model, the view, and the presenter. The presenter is responsible for handling user interactions, updating the view, and communicating with the model.

VIPER: VIPER is a more complex architectural pattern that is designed to improve the structure and maintainability of iOS apps. It follows the Single Responsibility Principle (SRP), which states that each component should have a single, well-defined responsibility. VIPER is composed of five components: the View, which is responsible for displaying the user interface; the Interactor, which is responsible for managing the business logic; the Presenter, which is responsible for preparing and presenting the data; the Entity, which represents the data objects; and the Router, which is responsible for managing navigation. By breaking the app into smaller components, VIPER helps to promote code reuse and improve maintainability.

Microservices pattern: This pattern involves breaking down a large application into a set of smaller, independent services that can be developed and deployed independently. This pattern enables teams to work more effectively and reduces the risk of releasing broken features.

Event-Driven Architecture pattern: This pattern is used to build scalable, distributed systems that process a large volume of events. The pattern uses event-driven communication to allow the components of the system to communicate and respond to changes in a loosely coupled manner.

Service Oriented Architecture (SOA) pattern: This pattern involves breaking down an application into a set of services that can be reused across multiple applications. This pattern enables teams to work more effectively and reduces the risk of releasing broken features.

Layered architecture : also known as the N-tier architecture, is a design pattern that separates the application into multiple, distinct layers of abstraction. Each layer has a specific responsibility and communicates with only the adjacent layer, leading to a clear separation of concerns. This pattern is commonly used in enterprise applications and helps to increase the modularity and maintainability of the codebase. A typical example of a layered architecture is the Model-View-Controller (MVC) pattern in iOS development.

Microkernel: is an architectural pattern that is used in software development. In this pattern, the core functionality of a system is separated into a minimal kernel and the remaining functionality is provided by separate components that run as independent processes. The core functionality of the microkernel includes basic communication between components, and the components themselves contain the majority of the functionality. This pattern is useful for systems where adding or changing functionality is common, as it makes it easier to change or add components without affecting the entire system. Additionally, the separation of functionality into separate components can improve system security and modularity, as components can be isolated from one another. Microkernel architecture is commonly used in operating systems, but can also be applied to other types of software systems.

When choosing an architectural pattern, it is important to consider the specific requirements of your project and choose a pattern that is well suited to your needs. It is also important to keep in mind that no single pattern is a silver bullet, and that you may need to use multiple patterns in combination to achieve your desired results.

In conclusion, architectural patterns are a powerful tool for software development, providing a set of proven solutions to common problems. By using these patterns, developers can streamline their work and build software applications that are flexible, maintainable, and scalable.

REF
https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Ftowardsdatascience.com%2F10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013

About the Author

Trần Huy

View all author's posts

Bài viết khác

So sánh giữa gorm vs go-pg vs bun

Trong thế giới phát triển Golang, việc tương tác với cơ sở dữ liệu là một phần không thể thiếu của hầu hết các ứng dụng. Để đơn giản hóa quy trình này, các thư viện ORM (Object-Relational Mapping) ra đời, giúp các nhà phát triển thao tác với database thông qua các đối tượng […]

So sánh GORM vs go-pg vs Bun

Cộng đồng GORM Là ORM phổ biến nhất trong cộng đồng Go. Có nhiều tài liệu, ví dụ, StackOverflow câu trả lời, và nhiều package hỗ trợ mở rộng. Nhiều developer đã từng dùng Gorm. go-pg Từng rất phổ biến khi chỉ dùng PostgreSQL, nhưng đang bị Bun thay thế dần. Ít được duy trì […]

clean architecture golang

  1.Clean Architecture là gì? Clean Architecture là một kiến trúc phần mềm được đề xuất bởi Robert C. Martin (Uncle Bob) nhằm mục tiêu tách biệt rõ ràng giữa các tầng trong ứng dụng, giúp mã nguồn dễ bảo trì, mở rộng, và kiểm thử. 2.Tổng quan kiến trúc Entity (Domain Model): Là tầng […]

Tìm hiểu Hexagonal Architecture

Hexagonal Architecture là gì? Hexagonal Architecture (tên gọi khác là ports and adapters architecture), là một mẫu kiến trúc được dùng trong thiết kế phần mềm. Nó hướng tới việc xây dựng ứng dụng xoay quanh business/application logic mà không ảnh hưởng hoặc phụ thuộc bởi bất kì thành phần bên ngoài, mà chỉ giao […]

Sử dụng Request/Response trong ứng dụng RESTful mô hình MVC

DTO là gì? DTO (Data Transfer Object) là một object trung gian dùng để truyền dữ liệu giữa client – server hoặc giữa các service trong ứng dụng web/API theo kiến trúc RESTful API. DTO chỉ chứa các thông tin cần thiết mà client hoặc service khác cần (ví dụ: Login Form chỉ cần thông […]

Docker

Docker là gì? Docker là một nền tảng mã nguồn mở cho phép bạn đóng gói, phân phối và chạy ứng dụng bên trong các “container” – những môi trường ảo nhẹ, cô lập nhưng vẫn chia sẻ nhân hệ điều hành của máy chủ. Khái niệm then chốt ở đây là “containerization”: thay vì […]