当前位置:网站首页>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
边栏推荐
- 转载:等比数列的求和公式,及其推导过程
- 查看CSDN个人资源下载明细
- Kubernetes CNI 插件之Fabric
- Exercise 7-2 finding the maximum value and its subscript (20 points)
- Latex insert picture, insert formula
- How can Huawei online match improve the success rate of player matching
- 7-17 crawling worms (15 points)
- Hands on deep learning (44) -- seq2seq principle and Implementation
- Button wizard business running learning - commodity quantity, price reminder, judgment Backpack
- Realsense of d435i, d435, d415, t265_ Matching and installation of viewer environment
猜你喜欢

Today's sleep quality record 78 points

【FAQ】华为帐号服务报错 907135701的常见原因总结和解决方法

Matlab tips (25) competitive neural network and SOM neural network

C language pointer interview question - the second bullet

C language pointer classic interview question - the first bullet
![[200 opencv routines] 218 Multi line italic text watermark](/img/3e/537476405f02f0ebd6496067e81af1.png)
[200 opencv routines] 218 Multi line italic text watermark

用数据告诉你高考最难的省份是哪里!

C # use gdi+ to add text to the picture and make the text adaptive to the rectangular area

Use the data to tell you where is the most difficult province for the college entrance examination!
Summary of reasons for web side automation test failure
随机推荐
C # use ffmpeg for audio transcoding
Network disk installation
Application of safety monitoring in zhizhilu Denggan reservoir area
What is devsecops? Definitions, processes, frameworks and best practices for 2022
For programmers, if it hurts the most...
Machine learning -- neural network (IV): BP neural network
2. Data type
Kotlin 集合操作汇总
Native div has editing ability
libmysqlclient.so.20: cannot open shared object file: No such file or directory
Exercise 9-5 address book sorting (20 points)
Batch distribution of SSH keys and batch execution of ansible
六月份阶段性大总结之Doris/Clickhouse/Hudi一网打尽
PHP code audit 3 - system reload vulnerability
Qtreeview+ custom model implementation example
Hands on deep learning (32) -- fully connected convolutional neural network FCN
有老师知道 继承RichSourceFunction自定义读mysql怎么做增量吗?
El Table Radio select and hide the select all box
Vs201 solution to failure to open source file HPP (or link library file)
SQL replying to comments