当前位置:网站首页>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 .
边栏推荐
- 外币记账及重估总账余额表变化(下)
- view的绘制机制(三)
- Basic knowledge of software testing
- Sqli-labs customs clearance (less2-less5)
- MapReduce concepts and cases (Shang Silicon Valley Learning Notes)
- Oracle EBS DataGuard setup
- CAD secondary development object
- Sqli labs customs clearance summary-page4
- sqli-labs通关汇总-page1
- Ingress Controller 0.47.0的Yaml文件
猜你喜欢
Alpha Beta Pruning in Adversarial Search
離線數倉和bi開發的實踐和思考
Two table Association of pyspark in idea2020 (field names are the same)
Pratique et réflexion sur l'entrepôt de données hors ligne et le développement Bi
Error in running test pyspark in idea2020
Sqli-labs customs clearance (less18-less20)
TCP attack
Sqli-labs customs clearance (less15-less17)
Oracle EBs and apex integrated login and principle analysis
The first quickapp demo
随机推荐
Network security -- intrusion detection of emergency response
Changes in foreign currency bookkeeping and revaluation general ledger balance table (Part 2)
Data warehouse model fact table model design
ssm人事管理系统
@Transational踩坑
php中时间戳转换为毫秒以及格式化时间
DNS attack details
Ingress Controller 0.47.0的Yaml文件
读《敏捷整洁之道:回归本源》后感
UEditor .Net版本任意文件上传漏洞复现
MapReduce与YARN原理解析
oracle-外币记账时总账余额表gl_balance变化(上)
The first quickapp demo
华为机试题-20190417
Analysis of MapReduce and yarn principles
Oracle APEX 21.2 installation et déploiement en une seule touche
sqli-labs通關匯總-page2
php中通过集合collect的方法来实现把某个值插入到数组中指定的位置
2021-07-05c /cad secondary development create arc (4)
Oracle EBS interface development - quick generation of JSON format data