当前位置:网站首页>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
边栏推荐
- H5 audio tag custom style modification and adding playback control events
- El Table Radio select and hide the select all box
- 2020-03-28
- Hands on deep learning (32) -- fully connected convolutional neural network FCN
- MySQL develops small mall management system
- Batch distribution of SSH keys and batch execution of ansible
- JDBC and MySQL database
- Tables in the thesis of latex learning
- Does any teacher know how to inherit richsourcefunction custom reading Mysql to do increment?
- System.currentTimeMillis() 和 System.nanoTime() 哪个更快?别用错了!
猜你喜欢

Nuxt reports an error: render function or template not defined in component: anonymous

Reprint: summation formula of proportional series and its derivation process

MATLAB小技巧(25)竞争神经网络与SOM神经网络

Reasons and solutions for the 8-hour difference in mongodb data date display

品牌连锁店5G/4G无线组网方案

Machine learning -- neural network (IV): BP neural network

Kubernetes CNI 插件之Fabric

How can Huawei online match improve the success rate of player matching

【OpenCV 例程200篇】218. 多行倾斜文字水印

A little feeling
随机推荐
C # use gdi+ to add text with center rotation (arbitrary angle)
Exercise 7-2 finding the maximum value and its subscript (20 points)
Number of relationship models
libmysqlclient. so. 20: cannot open shared object file: No such file or directory
Container cloud notes
Servlet基本原理与常见API方法的应用
Golang 类型比较
C语言指针面试题——第二弹
Golang defer
Baidu R & D suffered Waterloo on three sides: I was stunned by the interviewer's set of combination punches on the spot
Kotlin: collection use
Hands on deep learning (III) -- Torch Operation (sorting out documents in detail)
Mmclassification annotation file generation
View CSDN personal resource download details
Development guidance document of CMDB
How web pages interact with applets
AUTOSAR from getting started to mastering 100 lectures (106) - SOA in domain controllers
The future education examination system cannot answer questions, and there is no response after clicking on the options, and the answers will not be recorded
AUTOSAR从入门到精通100讲(106)-域控制器中的SOA
System. Currenttimemillis() and system Nanotime (), which is faster? Don't use it wrong!