当前位置:网站首页>What is an excellent architect in my heart?
What is an excellent architect in my heart?
2022-07-04 10:23:00 【Java full stack preacher】
First of all , It's not advertising ……. The reason why I watch a promotional video so seriously , It's because I have read teacher Li Zhihui's books ( Technical framework of large website -- Core principles and case analysis ), Good writing , Interested can read below .
The content of this paper comes from : Li Zhihui architect training camp publicity video . Mainly about : What is an architect 、 What qualities should an architect have 、 Basic work and main responsibilities of architects 、 Architects' learning and thinking, etc . I think it's good , And because of doing it in the video “ listen ”, It is difficult to have an overall understanding , So I couldn't help typing out all the content in the video , It is mainly convenient to understand and remember .
After finishing the explanation :
1 On the way to becoming an architect , What are the difficulties ?
1.1 The difference between programming and architecture
Programming : You only need to complete the development work according to the given functional modules and technical requirements .
Architecture : You need to think about all kinds of technologies 、 Business 、 Resource requirements , Find the most suitable architecture scheme according to the requirements .
So programming and architecture are almost two completely different jobs .
1.2 How to become an architect from a programmer ?
( elicit questions --> solve the problem )
It's not that you have many years of programming experience , You automatically get the ability of architecture design , You can become an architect . in fact , If you don't think from the perspective of an architect , Lead the team to complete the architecture design and development of a system as a whole , Then you will never know how to be an architect . And you're not going to be an architect , You will never have the opportunity to lead a team to complete the architecture design and development of a system .
So there seems to be a dead circle here , The key to breaking through this dead cycle lies in two points :
First of all You should show enough excellent development ability , Let the leaders believe that , Even if you don't have experience in architecture design and lead development , You can also play the role of architect , To appoint you as an architect ;
second Before you became an architect , You have mastered enough methods and abilities to do architecture , After being appointed as an architect , Don't mess things up , But to work in an orderly way , Fight your first battle of architecture design .
Grow up to be an architect , The main difficulty is :
First of all Whether you are good enough in programming , To get the opportunity to do architecture ;
second Whether you can master the general method of architecture design , Be able to grasp the opportunity to do architecture design ;
Third Do you have enough knowledge about system architecture design , In the life cycle of software architecture design , As well as your own career constantly iterative progress , Make your systems and your own career prospects better and better .
2 What qualities should an architect have ?
How to be a good architect ? What qualities should an excellent architect possess ? let me put it another way , What capabilities should a good architect have , I have summarized eight aspects here .
2.1 The first point : Excellent programming ability
The biggest misunderstanding about architects is that architects don't need programming . in fact , Programming is the most basic ability requirement of architects , Show enough excellent programming ability , To get the opportunity to become an architect . Architecture is not finished by drawing two diagrams , To be developed in programming , Programming problems encountered in the development process , Architects need to solve it by themselves ; Problems in the process of system maintenance , It also requires architects to be very familiar with coding to solve . These things require architects to have excellent programming skills .
2.2 Second point : The ability to design documents
Architects should write good code by themselves , But the more important thing is to make the whole development team be able to write logic clearly 、 Easy to maintain code . To achieve this , It requires the development team to develop under the constraints of architecture , Everyone knows the position and role of his work in the whole system architecture , Association and dependence with other colleagues , This information needs architecture design documents to transmit . The design document is The most essential work of an architect , In order to do a good job in design documents, the development work of everyone in the team should be highly cohesive 、 Low coupling 、 Clear dependency , Then the architect must have good module decomposition ability .
2.3 The third point : The ability to decompose modules
I have seen some excellent programmers , After becoming an architect , The main way of working is to undertake the most important or even most of the work , Then let other programmers help him with chores , Then he asked for leave today , The whole development team doesn't know how to work . in fact , The architect should let everyone in the team play their value , And continue to make progress , In this way, you and your team are sustainable , Not just finish the work . This requires architects to have good module disassembly ability , Disassemble development tasks into high cohesion 、 Low coupling modules , Assign to team members . In the early era of monomer architecture , If the problem of chaotic module relationship is not so prominent , Microservice architecture will make those architects who do not pay attention to module dependencies suffer a lot .
2.4 Fourth, : The ability of large scale complex system architecture
Most architects have never designed a Taobao or Facebook The opportunity of , But every qualified architect should know : How to design the architecture of such a large-scale complex system as Taobao . On the one hand, the architecture model of a successful system like Taobao is the most important reference experience for architecture designers ; On the other hand, it is the touchstone to test the learning ability of architects .
2.5 The first five : Ability to master typical technical solutions
Like load balancing 、 Distributed cache 、 Message queue 、NoSQL, These are almost standard configurations for many slightly larger systems . So as an architect, in addition to using these technologies , About the internal principles of these technologies 、 Advantages and disadvantages must also be mastered , Only in this way can we choose specific technical products ( Technology selection ), When solving problems in the process of use .
2.6 Sixth points : System optimization and system stability
Architects don't just throw out a system architecture diagram at the beginning of development ( analogy : It's like being a father is not finished by throwing 100 million sperm in the early stage of pregnancy ). Architects are responsible for the system throughout its life cycle , The system performance needs to be continuously optimized , Make sure the system is stable 、 Highly available experience .
2.7 Seventh points : The ability of data processing and application
Early system architecture design was mainly carried out around business requirements , But with the arrival of the big data era , More and more system architectures begin to revolve around data , Build the so-called artificial intelligence system , Therefore, architects must master the ability to process and apply data .
2.8 Eight : Leadership and management ability
Architects want to make their architectural design come to fruition , Become the architecture of a truly operational system , We need to deal with all kinds of internal and external relations , You need to lead the development team to develop according to your own architecture design . Then an architect may not be a manager in the strict sense , But he must have certain leadership and management ability .
3 What is the original intention of the architect training camp ?
(4 Click to explain the original intention )
There are some misunderstandings in the industry about architects , On the one hand, I think the architect is a high-level job , Draw a framework 、 Just point out the programmer's work ; On the other hand, I think architects are useless , not essential . In the specific development practice , On the one hand, we don't pay attention to architecture design , Get the requirements, almost no design comes up with the code ; On the other hand, as the requirements continue to iterate , The project is getting out of control and into chaos , I began to complain that I didn't design well . A lot of information about architecture equates architecture with high concurrency 、 Architecture of high availability system , All kinds of distributed 、 Fuse 、 Current limiting , And the vast majority of people face the development task , You don't need that high concurrency , There are not so many high availability , After learning a lot of architecture, I still can't do architecture . Many developers who want to be architects , The technical development path of how to become an architect is not clear , Unable to systematically learn the skill stack related to architects ; And many architects who have undertaken the responsibility of architecture design , There is no systematic methodology , Can not output a clear architectural blueprint , Nor can we effectively organize and cultivate the team . Misunderstandings and confusion about architecture and architects , I have been thinking about writing something for a long time .
Architecture design is an important part of development , The architect is an important role in the development team . The architecture is not superior , It's real , Architecture has its own scientific methods and best practices . The architect is not the one who dictates in development , It's the leader of the technical team , He used architecture design to guide the technical team to complete the development task , In the face of difficulties , The person who can solve specific problems .( Advertising content : Geek time asks me to open it this time 《 Architect training camp 》, I want to put the methods and practices of architecture that I have thought and experienced for many years here , The growth and cultivation of architects . In the process , If I can enlighten you, I will be very happy . I would be more honored if I could make the software development industry more scientific and standardized )-- The advertising content is also printed , It's a respect for the creator .
4 What are the characteristics of the architect training camp ?
( The basic work and main responsibilities of architects )
This is an architect training camp , Instead of building a training camp . Architecture cannot be trained , Each project , Each software has its own requirements and characteristics , Every company has its own corporate culture , Every architect has his own background experience , All of these will lead to no system architecture design is the same . Architecture design must be scenario and practice oriented , Proceed from the actual needs , Fall into practical application . But architects can be trained , Design patterns 、 Architecture mode 、 Technical principle 、 Design method 、 Management skills , These can be obtained through training and learning .
Our whole course is organized according to the responsibility dimension of architects .
A new project must start with architecture design , So what is the output of architecture design ? This is what the architecture document is about .
With the architecture design, we need to develop , How to make the development process follow the architecture design ? How to make developers focus on business implementation ? Architects need to use the development framework to standardize the development process , Focus on business realization , This is what framework design is about .
With the development framework , How to make different developer tasks and responsibilities clear ? Make the code modules they develop highly cohesive 、 Low coupling , Architects need to do a good job in module splitting , This is what module decomposition is about .
Now the mainstream system architecture is micro service architecture , The essence of microservices is actually modular service , So I will also focus on micro services and remote invocation framework in this part of the course .
With the continuous increase of the system scale, the maintenance cost is increasing , Architects need to refactor the code , This is what code refactoring is about . Refactoring and design patterns are inseparable , In fact, this part mainly talks about design patterns .
above These are the basic tasks of architects . It's all code 、 Design these basic , It doesn't seem to have anything to do with the expected system architecture . As we have said , You have almost no chance to design the architecture of such a large-scale system as Taobao , But no matter how small the system is, you should also do the above job responsibilities well , To become a qualified architect , But the architecture design method of large-scale distributed system is what every architect must master , Whether you use it or not , Because this is the common sense of architects .
The system architecture will describe how Taobao such a system is designed . Various technical solutions will be used in system design , Distributed cache 、NoSQL wait . How to make good use of these technologies , Choose the right implementation , Solve all kinds of problems in the process of use , What is the architecture design principle of these technical solutions , Technology selection will be described . During the operation of the system , Performance optimization is the primary responsibility of architects , performance optimization : First, we need methods ; Second, we need to have a deep understanding of various underlying technical principles , To accurately determine the performance bottleneck . Maybe the quality of the architecture will vary according to everyone's aesthetic judgment , But how about the level of architects , You can see it when optimizing the performance . Performance optimization class , The performance optimization methods and underlying technical principles will be described . If the system often fails during operation , So usually architects have to carry the pot . How to ensure high availability of the system , Talk about safety and stability . Facing all kinds of new technologies , How architects break through themselves , Go beyond the usual meaning of technical architecture and development to obtain new achievements and opportunities , Data application and technological innovation will discuss big data 、AI、 Blockchain 、 The Internet of things , The principles and application scenarios of these technical frameworks . Architects cannot work alone , If the architecture cannot fall on the system implementation , Cannot be executed by developers , It's waste paper . How to deal with people , How to achieve yourself in your work , Achieve team members , Technology Management . in fact , The course content organized according to the architect responsibility dimension is also corresponding to the architect quality mentioned above , Realize corresponding responsibilities , You need to have corresponding literacy .
5 Go to an architect training camp , What foundation is needed ?
( Learning and thinking of architects )
Besides having some basic programming skills and experience , No additional conditions are required . But if you want to gain something in training camp , You must be good at thinking , Architecture design and programming are different , If the program is written incorrectly, it will not run , But architecture doesn't matter right or wrong , As long as the program can run normally in the end, this is OK Of . But there are good and bad architectures , There are appropriate and inappropriate , There are subtle and bad , If you don't think about it, you won't understand why you want to design like this , What's the benefit of this design , Fortunately, where . In the training camp , We will learn and discuss many technologies , These technologies are also architecturally designed , Such as : operating system 、 database 、 virtual machine 、 Distributed cache 、 Microservice framework and so on , When we learn these technologies , Think from the perspective of architecture design , What is its design principle , Instead of studying how to use it from the perspective of users . This process is also the process of training your thinking structure , But it may cause you some trouble and pain , You need to be prepared .
Xiaobian agrees with this sentence very much -- These technologies are also architecturally designed . So we are upgrading a certain technology 、 When studying its source code , We should focus more on The principle of Architecture Design , This is the core idea of the designer in a certain technology , It is an important source of knowledge for you to learn architecture design , Master the architecture design of these technologies , Make contributions to your future self-study .
Video link : What is a good architect in my heart
It's not easy to code words , Please also use triplicate :、 Looking at 、 Share
More high-quality resources :
边栏推荐
- Today's sleep quality record 78 points
- Leetcode48. Rotate image
- 入职中国平安三周年的一些总结
- Check 15 developer tools of Alibaba
- Exercise 8-10 output student grades (20 points)
- Intelligent gateway helps improve industrial data acquisition and utilization
- leetcode1-3
- 使用 C# 提取 PDF 文件中的所有文字(支持 .NET Core)
- Rhcsa day 9
- Exercise 9-1 time conversion (15 points)
猜你喜欢
Occasional pit compiled by idea
OSPF comprehensive experiment
Machine learning -- neural network (IV): BP neural network
Today's sleep quality record 78 points
Number of relationship models
Safety reinforcement learning based on linear function approximation safe RL with linear function approximation translation 1
Rhcsa day 9
【OpenCV 例程200篇】218. 多行倾斜文字水印
Static comprehensive experiment ---hcip1
Fabric of kubernetes CNI plug-in
随机推荐
Rhcsa operation
Hlk-w801wifi connection
Hands on deep learning (46) -- attention mechanism
Sword finger offer 31 Stack push in and pop-up sequence
【Day2】 convolutional-neural-networks
OSPF summary
What are the advantages of automation?
Machine learning -- neural network (IV): BP neural network
system design
PHP代码审计3—系统重装漏洞
Talk about scalability
Hands on deep learning (44) -- seq2seq principle and Implementation
Static comprehensive experiment ---hcip1
Use the data to tell you where is the most difficult province for the college entrance examination!
Basic principle of servlet and application of common API methods
C language pointer interview question - the second bullet
Doris / Clickhouse / Hudi, a phased summary in June
Summary of reasons for web side automation test failure
Go context basic introduction
【Day2】 convolutional-neural-networks