当前位置:网站首页>Three principles of architecture design
Three principles of architecture design
2022-07-02 07:17:00 【Software development heart】
The principle of appropriateness
Better fit than industry leader . It is better to fit your business than to use business leading solutions .
No “ Feet on the ground ” Three types of failure reasons for the architecture of
Want to do when there is no sufficient infrastructure and platform “ Big ” System
There is not such a big business scenario, but I want to use business leading solutions
The leading solution in the industry is to develop the business to a certain extent , In order to solve all kinds of new problems we have to face “ forced ” Coming out
BAT There are many excellent architects , But these architects may not be able to do well in small and medium-sized enterprises or start-up teams . stay BAT There are a lot of resources inside 、 infrastructure 、 Various platforms , But small and medium-sized enterprises rarely have such a complete environment , Copying the routines of large companies by rote often leads to a high probability of failure .
Simple principle
Simple is better than complex . Architecture design is the art of dealing with complexity .
The embodiment of complexity .
- Complex system
There are many associations between components
The number of components is huge
Problems caused by structural complexity
The more components , The higher the probability of a component failure
Suppose the failure rate of the component is 10%( Yes 10% Time is not available ), So there are 3 The system availability of the components is (1-10%)×(1-10%)×(1-10%)= 72.9%, Yes 5 The system availability of the components is (1-10%)×(1-10%)×(1-10%)×(1-10%)×(1-10%)=59%, The availability of the two is different 13%.
A change in a component may affect all associated components . These effects may spread along the associated link , Impact on more components .
Components A Modification or exception , Will affect components B/C/E,D It will affect E. This problem will affect the development efficiency of the whole system , Because once the change involves external systems , It is necessary to coordinate all parties to conduct a unified program evaluation 、 Resource coordination 、 Online cooperation .
It will become very difficult to locate a problem in a complex system .
The more components , Every component can cause problems , It needs to be checked one by one . The relationship between components is complex , It is possible that one of them shows a fault , But this is not the root of the problem .
- Architectural complexity .
Principles of evolution
The software field is not static , It needs to be constantly adjusted according to the development of the business .
Architecture design is similar to Biology , We also need to adapt to the external environment through evolution ( Business change ), Natural selection , The survival of the fittest .
First , The architecture designed to meet the business needs at that time .
secondly , The architecture should be iterative in the process of practical application , Keep good design , Repair defective design , Correct the wrong design , Get rid of useless designs , Gradually improve the architecture .
Third , When business changes , Architecture to extend 、 restructure , Even rewrite ; The code may rewrite , But valuable experience 、 lesson 、 Logic 、 Such design ( It's like a gene in an organism ) But it can be continued in the new architecture .
The principle of evolution is very important , When doing architecture design, we need to keep in mind . Fast landing to meet demand , Continue to improve the overall structure in the follow-up development , Evolve with the development of business .
边栏推荐
猜你喜欢
ssm人事管理系统
Sqli labs customs clearance summary-page1
DNS attack details
Take you to master the formatter of visual studio code
SQLI-LABS通关(less18-less20)
叮咚,Redis OM对象映射框架来了
Ingress Controller 0.47.0的Yaml文件
MapReduce concepts and cases (Shang Silicon Valley Learning Notes)
oracle apex ajax process + dy 校验
Oracle EBS database monitoring -zabbix+zabbix-agent2+orabbix
随机推荐
解决万恶的open failed: ENOENT (No such file or directory)/(Operation not permitted)
sqli-labs通关汇总-page4
Yaml file of ingress controller 0.47.0
Oracle RMAN automatic recovery script (migration of production data to test)
Oracle apex 21.2 installation and one click deployment
oracle EBS标准表的后缀解释说明
在php的开发环境中如何调取WebService?
Sqli-labs customs clearance (less18-less20)
JSP智能小区物业管理系统
DNS attack details
2021-07-05C#/CAD二次开发创建圆弧(4)
数仓模型事实表模型设计
mapreduce概念和案例(尚硅谷学习笔记)
Go package name
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory'
Pratique et réflexion sur l'entrepôt de données hors ligne et le développement Bi
SQL注入闭合判断
Sqli-labs customs clearance (less6-less14)
ORACLE 11G SYSAUX表空间满处理及move和shrink区别
IDEA2020中测试PySpark的运行出错