当前位置:网站首页>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 .
边栏推荐
- Use of interrupt()
- Oracle EBS interface development - quick generation of JSON format data
- Analysis of MapReduce and yarn principles
- 在php的开发环境中如何调取WebService?
- Laravel8中的find_in_set、upsert的使用方法
- 使用MAME32K进行联机游戏
- Sqli-labs customs clearance (less15-less17)
- Module not found: Error: Can't resolve './$$_ gendir/app/app. module. ngfactory'
- Oracle 11.2.0.3 handles the problem of continuous growth of sysaux table space without downtime
- How to call WebService in PHP development environment?
猜你喜欢
随机推荐
RMAN incremental recovery example (1) - without unbacked archive logs
MapReduce与YARN原理解析
ORACLE 11.2.0.3 不停机处理SYSAUX表空间一直增长问题
MapReduce concepts and cases (Shang Silicon Valley Learning Notes)
Laravel8中的find_in_set、upsert的使用方法
Two table Association of pyspark in idea2020 (field names are the same)
数仓模型事实表模型设计
Alpha Beta Pruning in Adversarial Search
2021-07-17c /cad secondary development creation circle (5)
解决万恶的open failed: ENOENT (No such file or directory)/(Operation not permitted)
ORACLE EBS DATAGUARD 搭建
spark sql任务性能优化(基础)
类加载器及双亲委派机制
RMAN增量恢复示例(1)-不带未备份的归档日志
Oracle EBS数据库监控-Zabbix+zabbix-agent2+orabbix
UEditor . Net version arbitrary file upload vulnerability recurrence
DNS攻击详解
Oracle EBS ADI development steps
Sqli-labs customs clearance (less1)
使用MAME32K进行联机游戏














