当前位置:网站首页>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
边栏推荐
- PHP code audit 3 - system reload vulnerability
- Exercise 8-7 string sorting (20 points)
- C language pointer interview question - the second bullet
- Hands on deep learning (43) -- machine translation and its data construction
- Doris / Clickhouse / Hudi, a phased summary in June
- uniapp 处理过去时间对比现在时间的时间差 如刚刚、几分钟前,几小时前,几个月前
- MongoDB数据日期显示相差8小时 原因和解决方案
- Hands on deep learning (37) -- cyclic neural network
- System.currentTimeMillis() 和 System.nanoTime() 哪个更快?别用错了!
- Deep learning 500 questions
猜你喜欢

华为联机对战如何提升玩家匹配成功几率

转载:等比数列的求和公式,及其推导过程

【Day2】 convolutional-neural-networks

【Day1】 deep-learning-basics

Use the data to tell you where is the most difficult province for the college entrance examination!

基于线性函数近似的安全强化学习 Safe RL with Linear Function Approximation 翻译 2

C # use gdi+ to add text with center rotation (arbitrary angle)

Hands on deep learning (39) -- gating cycle unit Gru

Development guidance document of CMDB

Kubernetes CNI 插件之Fabric
随机推荐
品牌连锁店5G/4G无线组网方案
技术管理进阶——如何设计并跟进不同层级同学的绩效
Safety reinforcement learning based on linear function approximation safe RL with linear function approximation translation 1
按键精灵打怪学习-识别所在地图、跑图、进入帮派识别NPC
Realsense of d435i, d435, d415, t265_ Matching and installation of viewer environment
xxl-job惊艳的设计,怎能叫人不爱
Differences among opencv versions
Exercise 7-4 find out the elements that are not common to two arrays (20 points)
Network disk installation
JDBC and MySQL database
C language pointer classic interview question - the first bullet
Service developers publish services based on EDAs
MATLAB小技巧(25)竞争神经网络与SOM神经网络
MySQL case
Application of safety monitoring in zhizhilu Denggan reservoir area
MongoDB数据日期显示相差8小时 原因和解决方案
Legion is a network penetration tool
Hands on deep learning (36) -- language model and data set
Kotlin 集合操作汇总
Golang Modules