The Elusive Title: Why Most Farming Systems Architects Fall Short
In the world of software development, the title of “farming systems architect” is often coveted, yet rarely achieved. A small team of about 10 people, often the most technologically adept, is responsible for architecting the code. However, the proportion of architects in the majority of farming systems is less than 10%. This raises the question: what causes most farming systems to struggle with architecting their code?
The Code Conundrum
The code is divided into several categories, each with its own set of challenges. Firstly, there are those who can write code and those who think they can write code. Secondly, even among those who can write code, there is a distinction between those who can write good code and those who can write really good code. Thirdly, really good code is divided into two categories: optimized and stagnant. Finally, there are those who have a superficial understanding of new technologies and those who delve deeper into the use of knowledge.
The Breadth and Depth of Knowledge
A small number of farmers are willing to further their knowledge, but often lack the breadth of understanding required. Very few are concerned with the breadth and depth of technology, preferring to focus on specific technologies or business needs. However, good communication skills are essential for those who want to understand the breadth and depth of technology.
The Role of the Architect
The architect is not just a title, but a mindset. It requires meticulous attention to detail, good communication skills, and a comprehensive understanding of the business and technical aspects of the system. Unfortunately, most architects fall short of this ideal, often staying at the level of 8 or 5. This is because becoming an architect requires more than just accumulating work experience; it demands a willingness to accept knowledge outside of work and a non-technical character with certain requirements.
A Roadmap to Becoming an Architect
For those who want to become architects, there is a roadmap that can be followed. This roadmap encompasses the following topics:
A: Common Patterns and Tools
- Learning Java technology architecture, design patterns, popular frameworks, and components
- Common design patterns and coding necessary
- Spring 5 and MyBatis as essential components
B: Engineering and Tool
- Choosing a good tool to enhance development efficiency and teamwork efficiency
- Maven, Jenkins, Sonar, and Git as essential tools
C: Distributed Architecture
- High concurrency, high availability, and massive amounts of data
- Distributed architecture principles and strategy
- Distributed Middleware and combat
D: Micro Services Architecture
- Business complexity and tiered services
- Micro Services Framework and Docker and virtualization
- Spring Cloud and Micro Services Architecture
E: Performance Optimization
- Performance Indicator System and JVM Tuning
- Web Tuning and DB Tuning
By following this roadmap, developers can gain the knowledge and skills required to become architects. However, it is a challenging journey that requires dedication and perseverance.
Conclusion
Becoming a farming systems architect is not just a matter of accumulating work experience; it demands a comprehensive understanding of the business and technical aspects of the system. It requires meticulous attention to detail, good communication skills, and a willingness to accept knowledge outside of work. By following the roadmap outlined above, developers can gain the knowledge and skills required to become architects. However, it is a challenging journey that requires dedication and perseverance.