当前位置:网站首页>Architecture introduction
Architecture introduction
2022-07-04 10:16:00 【JoesonChan】
Translated from :https://tianpan.co/notes/145-introduction-to-architecture
Architecture is the shape of a software system . Think of it as a panoramic view of a physical building .
- Examples are bricks .
- The design principle is room .
- Components are buildings .
Together they are used for specific purposes , For example, hospitals are used to cure patients , Schools are used to educate students .
Why do we need architecture ?
Behavior and structure
Each software system provides stakeholders with two different values : Behavior and structure . It is the responsibility of software developers to ensure that these two values are high .
With its job description , Software architects focus more on the structure of the system , Instead of functions and features .
ultimate objective - Save the cost of human resources for each function
Architecture serves the whole life cycle of software system , To make it easy to understand , Development , test , Deployment and operation . The goal is to minimize the human resource cost of each business use case .
mark · Richards (Mark Richards) Written O'Reilly Work 《 Software architecture pattern 》 It is a simple and effective introduction to these five basic architectures .
1. Layered architecture
Layered architecture is the most common in adoption , It is well known among developers , Therefore, it is the actual standard of application . If you don't know which architecture to use , Please use it .
Example
- TCP / IP Model : Application layer > Transport layer > The Internet layer > Network access layer
- Facebook TAO:Web layer > Cache layer ( followers + The leader )> Database layer
Pros and cons
- advantage
- Easy to use
- Separation of responsibilities
- Testability
- shortcoming
- monolithic
- Difficult to adjust , Expand or update . You must make changes to all layers .
- monolithic
2. Event driven architecture
A state change will send an event to the system . All components communicate with each other through events .
A simple project can put a mediator , Event queues and channels are combined . Then we get a simplified architecture :
Example
- QT: Signals and slots
- Payment infrastructure : Bank gateways usually have high latency , Therefore, they adopt asynchronous technology in the architecture design .
3. Microkernel architecture ( Also known as plug-in architecture )
The responsibilities of the software are divided into “ The core ” And multiple “ plug-in unit ”. The core contains minimal functionality . Plug ins are independent of each other , And implement shared interfaces to achieve different goals .
Example
- Visual Studio Code,Eclipse
- MINIX operating system
4. Microservice architecture
Large systems are decoupled from multiple microservices , Each microservice is a separately deployed unit , They use RPC Mutual communication .
Example
- Uber: see also Design Uber
- Cleverly
5. Space based architecture
The name of this pattern comes from “ Tuple space ”, namely “ Distributed shared memory ”, No database or synchronous database access , Therefore, there is no database bottleneck , All processing units share replication application data in memory . Elastic start and close .
Example : see also Wikipedia
- Most often Java Users use : for example JavaSpaces
边栏推荐
- In the case of easyUI DataGrid paging, click the small triangle icon in the header to reorder all the data in the database
- Lavel document reading notes -how to use @auth and @guest directives in lavel
- Laravel文档阅读笔记-How to use @auth and @guest directives in Laravel
- Dynamic memory management
- 使用 C# 提取 PDF 文件中的所有文字(支持 .NET Core)
- Hands on deep learning (III) -- Torch Operation (sorting out documents in detail)
- Hands on deep learning (40) -- short and long term memory network (LSTM)
- Fabric of kubernetes CNI plug-in
- Vanishing numbers
- How web pages interact with applets
猜你喜欢
2. Data type
Development guidance document of CMDB
Hands on deep learning (33) -- style transfer
Hands on deep learning (36) -- language model and data set
Dynamic address book
Log cannot be recorded after log4net is deployed to the server
Safety reinforcement learning based on linear function approximation safe RL with linear function approximation translation 2
Debug:==42==ERROR: AddressSanitizer: heap-buffer-overflow on address
Write a mobile date selector component by yourself
Matlab tips (25) competitive neural network and SOM neural network
随机推荐
Button wizard business running learning - commodity quantity, price reminder, judgment Backpack
C # use gdi+ to add text with center rotation (arbitrary angle)
【Day1】 deep-learning-basics
Pcl:: fromrosmsg alarm failed to find match for field 'intensity'
Laravel文档阅读笔记-How to use @auth and @guest directives in Laravel
Use C to extract all text in PDF files (support.Net core)
Safety reinforcement learning based on linear function approximation safe RL with linear function approximation translation 2
Exercise 9-1 time conversion (15 points)
浅谈Multus CNI
Exercise 7-2 finding the maximum value and its subscript (20 points)
Differences among opencv versions
按键精灵跑商学习-商品数量、价格提醒、判断背包
Hands on deep learning (34) -- sequence model
基于线性函数近似的安全强化学习 Safe RL with Linear Function Approximation 翻译 2
转载:等比数列的求和公式,及其推导过程
SQL replying to comments
leetcode1-3
Golang defer
Kotlin: collection use
Hands on deep learning (41) -- Deep recurrent neural network (deep RNN)