Lead: Long time no written articles on technology, because after career transition very tangled mind kind of technology. Love - Whenever I see the code window will Colorful heart was grieved, remembered once it is in life a brilliant mood; not self-confidence - so long will not have to leave technology behind rusty (although never broke away from technology and learning participation, but I lost the front-line practice writing code). Today, just go to the AWS (Amazon cloud service) of a regional seminar, an architect in the Amazon AWS cloud services for you on the architectural design and a number of cases, many familiar concepts, as well as the architect of humility and true, everything is so cordial. So whim, I want to look at their own architecture career journey.




Wanted their own definition of the main points of architecture, we found Baidu Encyclopedia summarized very good " system architecture requires both the overall and the need to control the local bottleneck and give insight into the solutions based on the specific business scenarios, and can target a variety of needs extended different dimensions of "refined look:

  • Familiar with the business : the technology itself is no "value", to fall to a specific usage scenarios for customers / users solve the problem.

  • But also insight into the overall control of the local bottle -neck: We always have to be optimized for the technology, often to solve a hidden bug, but as "premature optimization is the root of all evil," the profound meaning of this sentence in general, we should be in the clear go on a global basis to determine what needs to solve local problems.

  • Different dimensions of expansion: the face of constant change, flexibility and scalability of our architecture is the design goal.

This is something to do with the architecture of the core elements, of which there are many other points. Look at my drip comprehend.


The first stage: Outsourcing career

As a technician as if instinctively repelled IT outsourcing work to do, as if this will become the IT sector, "Lan Xiang" spokesperson. In fact, it does not mean low-end outsourcing personnel and no growth, especially for some outsourcing companies have strict codes and standards, there are standardized code, annotate requirements and documentation; just do business in part because, This requires sufficient separation of the business functions and interface design. It is this experience so I formed a standardized code habits and have a functional interface, modular thinking.

Reference: Huawei Code specification documents,  Google open source project style guide  ; books - "Code Complete"


The second stage: stand-alone software development

This is his first time in charge of developing a software independent, came into contact with customers to understand the business, and then resort to code. In this process, there are fragments of a deep impression, take over the function code has up to a thousand lines of code names at random did not comment, I see foggy. Finally, they pay a lot of lead time, including the use of debug tools of code line by line, with only a clear understanding of the business logic, silently walked over hundreds of mud horse. I then used to develop a good habit to start the first phase of the many functions of the division, the separation of this monster into a thousand lines to apply a small function, another code (name and comment) to regulate on, not only in their favor late maintenance, I would like to not have to do anything next to take over R & D personnel. During this experience, I began to have some utility functions to be written out of consciousness tools of (this period also saw a lot of open source code and extracts a lot of utility functions). Another focus is on the use of a single plug-in mechanism , such as the flexibility to adjust the interface to show elements, to local and upgrade program logic changes using the dynamic loading mechanism program (DLL).

Reference: snort and tcpdump source plug-in mechanism to fully practice the program; blog post - "Improving productivity tools" category ""


The third stage : Client / Server Side Programming

C (B) / S means the beginning of a contact network programming architecture, web programming. The impact of this on his biggest stage should be hierarchical thinking . Exquisite design layered network protocol stack and use java SSH framework are deeply affected themselves, such as their own a real-time chat system architecture designed to make full use of the hierarchical thinking, including thinking later use hierarchical set up some business irrespective of the technology platform, itself facilitated the company's technology to enrich the shelves.

Reference: blog article - "IM system architecture design of the humble opinion" , the source github- technology platform of high-performance TCP network server programs , remote procedure call protocol TCP client implementation framework


Phase IV: to Linux systems, server-side programming

When in 2011 as the Internet / mobile Internet storm even more frenetic, more than 90% of back-end services are carrying Linux client technology is too fragmented, so anticipation ahead of their own, their technology stack overall shift from Windows Linux, from the client to service end. If his architecture career turning point can only choose one, I would choose this stage. Linux system and windows is two different cultures, where "Unix Programming Art" This book can be said that my spiritual mentor, I read no fewer than four times. Many thought I was doing the book have become the basis and framework guidelines for the future, such as " module principle: Use simple interface split simple components; " condensed into one word sentence " KISS - the Keep It the Simple, Stupid! ." When Martin Fowler and James Lewis has not yet proposed the concept of micro-services, based on these ideas I've done a lot of design and practice of micro-services.

Reference: blog article - "third reading" UNIX Programming Art "--UNIX philosophy"   "server architecture" gateway server ""


Fifth stage: build Internet platform-level products

At this stage because his role is not just a technician, but has gone deep into the business and product design as well as operations go. Then the idea is sure to be operational guidance architecture , we can not consider fully all things, as the business development architecture can slowly evolve. But this time the scope of the architecture is no longer merely a procedural framework, but technology selection, architecture design, performance optimization, security, system release, operation and maintenance monitoring, business data analysis and other support for the entire business chain.

Reference: to be summed up (including mobile APP, intelligent hardware, web development, database, cloud services, high concurrency, etc.)




These are the memories of some of the major nodes of today whim, in fact, there are a lot of bits and pieces, bit by bit precisely because these constitute their own ideas and technology careers. King had served as the technical staff of their own, also respect all technical positions crush their program ape brother.