当前位置:网站首页>[beauty of software engineering - column notes] 21 | architecture design: can ordinary programmers also implement complex systems?
[beauty of software engineering - column notes] 21 | architecture design: can ordinary programmers also implement complex systems?
2022-07-29 08:01:00 【if...else...】
List of articles
Column information
Columnist : The treasure jade
Column publishing platform : Geek time
primary coverage
The demand for software is increasing , And experts are scarce resources , So a problem to be solved is : Let ordinary programmers also participate , Realize complex systems together , Instead of relying on many elites .
One 、 Why do software projects need architecture design ?
Complex software projects , There are usually two characteristics : Uncertain requirements and complex technology .
The complexity of Technology , Mainly reflected in four aspects .
Requirements complicate Technology
If the requirements themselves are complex , Then the corresponding technology will also be very complex . For example, you build a personal blog website , And build a website like Taobao , Technical complexity is different .People can complicate Technology
Nowadays, software development is usually not a person , It's a team . The level of team members is different , I'm good at different technical directions , It is also a great test to make this group of people work together effectively , Simple technical problems will also become complex technical problems .Technology itself is complex
Now choose the programming language in the software project 、 frame 、 Technology components 、 Database and other technologies or tools , You may also need applications like microservices 、 big data 、 Artificial intelligence technology , These technologies are complex in themselves , Ordinary people need to learn to master .It is complex to make software run stably
After development , To publish a run , But the runtime is also full of various uncertainties . For example, celebrity gossip may lead to Weibo downtime ; Alibaba cloud downtime has led to the inability of many Alibaba cloud based systems to provide services .
Because of the complexity of Technology , It will make software development very complicated , Development costs are high . And architecture design can solve technically complex problems in these aspects .
- First , Architecture design can reduce the development cost of meeting requirements and changes in requirements .
- secondly , Architecture design can help organizations work together efficiently .
- Again , Architecture design can help organize various technologies .
- Last , Architecture design can ensure the stable operation of services .
Two 、 What is architecture design ?
We can start from Goals and methods Two perspectives .
So the architecture is designed The goal is , It is to meet the development of demand and respond to the change of demand with the minimum labor cost , To ensure the operation of software with the minimum operation cost .
Architecture design , already There are many mature methods . such as :
- Using an architecture like microservices , Break a complex system into a series of small services , The service is then disassembled into functional modules , Let people work better ;
- By separating the front and rear ends , Let programmers focus more on a certain knowledge field , Reduce the difficulty of development ;
- Use layered design to isolate business logic , Reduce the impact of demand changes .
3、 ... and 、 How to do architecture design well ?
Architecture design should be done well , It's really not an easy thing , It takes a lot of experience . But there are many mature architectural design patterns in the industry , We don't need to work behind closed doors , After understanding the business requirements , Find similar architectural designs , Then based on the mature architecture design scheme , To transform , Become an architecture that suits your business needs .
Architecture design can go through four basic steps :
- First step : Analyze requirements ;
- The second step : Choose a similar mature architecture design scheme ;
- The third step : Layer by layer refinement from top to bottom ;
- Step four : Validate and optimize architecture design .
Four 、 Other excerpts
- Architecture design , Through organizing people and Technology , Low cost to meet demand and changes in demand , Ensure the stable and efficient operation of the software .
- The way of architecture design , It is to organize personnel and technology to split the system and team , And arrange the arrangement relationship after segmentation , Let the split parts communicate with each other through the agreed protocol , Work together to achieve the final result .
- For example, the team takes PHP Mainly programmers , There is no need to choose rashly Java As a development language ; If the js Mainly programmers , You can consider using it Nodejs. Because of this choice , It can make the team not need too much learning cost .
summary
Architecture design , It is to control the technically complex problems in software projects . Architecture design , By organizing people and Technology , Low cost to meet demand and changes in demand , Ensure the stable and efficient operation of the software .
边栏推荐
- Official tutorial redshift 01 basic theoretical knowledge and basic characteristics learning
- Unity beginner 4 - frame animation and protagonist attack (2D)
- Phased learning about the entry-level application of SQL Server statements - necessary for job hunting (I)
- Prepare esp32 environment
- 330. Complete the array as required
- FLink CDC 的mysql connector中,mysql的字段是varbinary, 官方
- @JsonSerialize注解的使用
- [cryoelectron microscope | paper reading] interpretation of sub fault average m software: multi particle cryo EM refining with M
- [密码学实验] 0x00 安装NTL库
- Space shooting Lesson 17: game over (end)
猜你喜欢
The new generation of public chain attacks the "Impossible Triangle"
Dynamic thresholds buffer management in a shared buffer packet switch paper summary
Actual measurement of boot and pH pins of buck circuit
LANDSCAPE
Mutationobserver document learning
Official tutorial redshift 01 basic theoretical knowledge and basic characteristics learning
Sqlmap (SQL injection automation tool)
Rotation in model space and rotation in world space
What is the use of chat robots? What type? After reading these, you will understand!
(视频+图文)机器学习入门系列-第5章 机器学习实践
随机推荐
C# 之 volatile关键字解析
[note] the art of research (understand the importance of the problem)
Do you want to meet all the needs of customers
Official tutorial redshift 01 basic theoretical knowledge and basic characteristics learning
Record of problems caused by PIP upgrade damage
Excellent urban design ~ good! Design # visualization radio station will be broadcast soon
Access数据库引入datagridview数据后,显示错误
For the application challenge of smart city, shengteng AI gives a new solution
[paper reading] tomoalign: a novel approach to correcting sample motion and 3D CTF in cryoet
@Use of jsonserialize annotation
FLink CDC 的mysql connector中,mysql的字段是varbinary, 官方
[cryoelectron microscope] relion4.0 pipeline command summary (self use)
Redshift 2.6.41 for maya2018 watermark removal
Implementation of simple matcap+fresnel shader in unity
Tcp/ip five layer reference model and corresponding typical devices and IPv6
Why don't you like it? It's easy to send email in cicd
@JsonSerialize注解的使用
【学术相关】为什么很多国内学者的AI的论文复现不了?
Vmstat memory consumption query
Shell script - global variables, local variables, environment variables