1KW real estate +1KW Tencent stock +300W cash = early retirement at 35

Look at the post content, 3 million is these years 995 spelled more than 10 years to save down the salary, although many, but for the big factory programmer’s income is not an exaggeration.

Programmer career development path can be summarized as: technology flow and management post. Whether you’re in management or not, getting better at technology is the only way to go, and being an architect is a critical link along the way, which is the goal of most programmers.

There are specializations, so are programmers, some are good at coding, some are good at underlying principles, some are good at logic implementation… As long as you are proficient in one area, I believe you will be a core member of the team.

When it comes to higher level architecture design, many developers often face a dilemma that they need to break through.

In terms of the current technology environment, the hottest and most widely discussed is the micro-service architecture. Since Alibaba first tried micro-service in 2008, micro-service has gradually become the mainstream after more than 10 years of development.

As monomer becomes a beast that is difficult to tame, development efficiency, code maintenance, deployment flexibility, stability, scalability, etc. continue to decline, and maintenance costs become higher and higher, people begin to embrace microservices.

Of course, no technology is perfect, and simply finding a tool that imposes requirements often fails to solve existing problems and introduces more complex ones.

To build a stable, efficient, and scalable microservice application, there are several considerations:

Where is the boundary for service splitting?

How to choose? What kind of granularity is “high cohesion, low coupling”?

Is distributed transaction solved by simple retry + compensation mechanism or by strong consistency method such as two-phase commit protocol? How to balance?

Architecture is born for business needs and is the result of many trade-offs. Individuals in a system need to operate “according to certain rules.” The task of architecture is to clarify the rules of individual operation and collaboration, and to solve the problems caused by the complexity of the system.

For any programmer who wants to become an architect, judgment and trade-offs are important thinking.