Nicrosoft I have seen too much code (I used to himself) in 2001.8.17 (myself), only paying attention to implementation. The most programmers in China have been successful. How many people think about how much will be created before starting to knock the keyboard? Is it ready to create a code thrown, or need to be upgraded, improved code? If you need a long-term maintenance, improved code, in the initial time, if you just pay attention to implementation, ignore the design of the overall framework, then the final waiter is just countless bugs and disasters.
In fact, relatively, implementation is simple. What you can implement is based on a platform or a specific hardware and software environment. What you are implemented is just because the platform is provided to your function. This implementation is not you created. The frame design requires considerable experience. No one can complete an excellent framework at the beginning.
In one job, you have to write a few simple components for Delphi. There is inheritance between the component classes (very simple, only two layers). For this very small "framework", after the design of "I want to", I started to write the code. After completing the components of the parent class, when the component is written, it will find a problem with the original "design". At that time, I was strange to have such a strange idea to build such a framework. When writing to the derived class assembly, I found that some things are so reasonable, and the idea of the time that was originally designed! So, re-build these code, fortunately, the amount of code is not large, even if it is overwritten, there is no time.
What I want to say is that even a simple framework, I set it down after the third rewriting. At the same time, I have obtained valuable experience. The difficulty of design is that people's thinking habits are from bottom to top, gradually abstract. However, in the frame design of the class, it is necessary to refine from the top of the design, which is gradually refined. Once there is a problem in the design of the original class (such as: VCL TOBJECT), then as the class level is expanded, the problem will gradually zoom in, and it will eventually lead to the crash of the entire frame. This requires designers to have a wealth of experience!
I never believe that the programmer's life is only 35 years old. Maybe after 35 years old, it is possible (in fact, the craftsmanship) has declined, and the design capacity is not reduced with the increase of experience. This is the most precious.
Foreign software development groups, the general backbone is a person who is 40 years old. Those are the master's programmers, and the so-called 35 years old cannot be a programmer's programmer is not eligible for programmers.
The software engineering is to turn the programmer into a codec, become a ring on the pipeline, design work by specialized designers (such as frame designers). Perhaps, division of labor is trend, however, we are satisfied with the codener or hope to grow into a settlement, depending on our eyes and efforts.
Let go of your eyes, not to limit your own, add yourself to "realize your master." The ability to achieve is the foundation, and there must be a certain ability to grow, but it is just a necessary condition, not sufficient. Otherwise, I think I have to go to the top of the mountain, I have stagnated. So, you can only be an encoder, your program life is only 35 years old.