Article transferred from : Sugar maniac <https://www.jianshu.com/u/4a62d157ead3> ( There are colored eggs at the end of the article )

 

When it comes to the salary of programmers, I think it's only “ Architect in legend ” That's enough to tempt you , Annual salary 40W-80W It's a relatively simple thing for them , Let's talk about it today “ architect ”.


Architect is a challenging profession , The breadth of knowledge often determines the architecture capability of an architect . Reading a lot of technical books can improve your knowledge , But I hope you don't limit yourself to software related books , Can often bubble technical forum , On the one hand, you can make friends , On the one hand, they can increase their knowledge , You can also join the technology blog . Of course, if you have a big God in this field, Daniel can give you guidance or teach you experience , So sure you'll take half the detour .



In our industry , We roughly divide programmers into four levels

primary Java Programmers focus on writing code , Application framework

intermediate Java Programmers focus on code and framework

senior Java Programmer technology research , performance tuning -

architect Solve business and technical issues


Today we are mainly talking about architects . At present, our country Java The industry is becoming more and more popular, and more and more programmers are entering , But I have to say , There are very few architects , This also causes the current architect's annual salary to be so much higher than the average programmer's . Is the architect really that difficult ? I think you didn't find a way .

Also recommended courses for you :

master S T L https://edu.csdn.net/course/detail/9153?utm_source=blog11xk
<https://edu.csdn.net/course/detail/9153?utm_source=blog11xk>
Three.js Video tutorial (WebGL) https://edu.csdn.net/course/detail/9273?utm_source=blog11xk
<https://edu.csdn.net/course/detail/9273?utm_source=blog11xk>
java reflex , generic paradigm , annotation , On Agency https://edu.csdn.net/course/detail/9344?utm_source=blog11xk
<https://edu.csdn.net/course/detail/9344?utm_source=blog11xk>
【 Various types java System tutorial 】:https://edu.csdn.net/courses/o280_s348_k?utm_source=blog11xk
<https://edu.csdn.net/courses/o280_s348_k?utm_source=blog11xk>

 

 

Function of architect


Software architect plays an important role in the whole software development process , And with the development process, its responsibilities or concerns are constantly changing , In the demand phase , Software architects are primarily responsible for understanding and managing non functional system requirements , For example, software maintainability , performance , Reusability , reliability , Effectiveness and testability, etc , in addition , Architects also frequently review the requirements of customers and marketing personnel , Confirm the design proposed by the development team ; After the demand becomes more and more clear , The architect's focus begins to shift to organizational development team members and development process definitions ; In the software design phase , The architect is responsible for the overall software architecture , Key components , Interface and development policy design ; In the coding phase , Architects act as consultants to detailed designers and code writers , And there will be technical seminars on a regular basis , Technical training courses, etc ; As the software begins to test , Integration and delivery , Integration and test support will be the focus of software architects ; At the beginning of software maintenance , The software architect begins to make decisions about whether new functional modules should be added to the next version of the product .

 

become java What skills do architects need ?

First of all, you should be a senior java Attack Lion City , Proficient in various frameworks , And know how they work .

JVM Principle of virtual machine , tuning , understand jvm It allows you to write better code

Pool technology , What object pool , Connection pool , Thread pool

Java Multi thread synchronous asynchronous

Java Implementation principle of various collection objects

Familiar with various data structures and algorithms , array , Hash , Linked list , Sort tree

Skillfully use linux operating system

be familiar with tcp agreement

be familiar with http agreement

System cluster , load balancing , Reverse proxy , Separation of static and dynamic , Website static

Distributed storage system nfs,fastdfs,tfs,Hadoop Understand their strengths and weaknesses , Applicable scenarios

Distributed cache technology memcached,redis, Essential for improving system performance

Design capability of database ,mysql necessary

There is also Queuing Middleware . Such as message push

 

If you want to be an architect, you don't need to know a lot of techniques , These are the basis for solving the problem , It's a tool , Don't understand these, how to propose solutions ? This is a prerequisite for becoming an architect .


Architects should also focus on business characteristics , The performance of the system requires that the design scheme which can solve the problem with the lowest cost is qualified , It's a system with hundreds of users , The number of visits is small , Small amount of data , You cluster people , Distributed storage on , High end server architecture for architecture , This is the bullshit , The role of the architect is to meet business requirements first , The second lowest hardware network cost and technical maintenance cost .


The architect should also base on the business development stage , Foresee the solution of system architecture to the next stage in advance , And when designing the current architecture, the upgrade and extension of the architecture should be taken into account , Easy to upgrade ; Otherwise, when the system bottleneck comes , If something goes wrong, we can make a plan , Or the existing architecture can't be expanded, and it's just thrown away and redone , Or expand a lot of troublesome problems , This will cause losses to enterprises .

 


The answer to many questions is very simple , But the thinking and logic behind it is not simple , We should know what it is and why it is . If you want to learn Java Engineering , High performance and distributed , explain profound theories in simple language . performance tuning ,Spring,MyBatis,Netty Source code analysis friends can add mine Java Advanced group :626326599, There is Ali Daniel in the group , as well as Java Large Internet technology video free to share with you .

Here are a few systems learning maps I have summarized :











 

Charging book :

master S T L https://edu.csdn.net/course/detail/9153?utm_source=blog11xk
<https://edu.csdn.net/course/detail/9153?utm_source=blog11xk>
Three.js Video tutorial (WebGL) https://edu.csdn.net/course/detail/9273?utm_source=blog11xk
<https://edu.csdn.net/course/detail/9273?utm_source=blog11xk>
java reflex , generic paradigm , annotation , On Agency https://edu.csdn.net/course/detail/9344?utm_source=blog11xk
<https://edu.csdn.net/course/detail/9344?utm_source=blog11xk>
【 Various types java System tutorial 】:https://edu.csdn.net/courses/o280_s348_k?utm_source=blog11xk
<https://edu.csdn.net/courses/o280_s348_k?utm_source=blog11xk>