Sometimes writing programs is like cooking. Many people have said this as an analogy. What do we get from the comparison between program writing and cooking? Because the period of writing a program is relatively long, and the process of cooking is really short (if it is too long, someone will be hungry, haha)
[Analysis]
Starting with a small program, there is a gap in the chest and the key is as powerful as a god. You only need to have a rough idea in your mind. You just need to make something and try again. Just as if you do some home cooking at will, you don't need to strictly process the food. If you have any dishes, pots, fire, or heating, you can eat it. It doesn't matter whether it is delicious or not. It looks nice or not. In the end, it's all about your own stomach.
Let's talk about big programs and high-quality dishes. These things are very exquisite. It is not enough to have a gully in your chest, because your gully may not cover the beginning and end of the entire program.
Therefore, there must be a strict process. No matter whether you use agile, RUP, or XP, there must be a specification as a guide. Do not be arrogant; otherwise, the overall structure will be damaged. For cooking, whatever Sichuan food, Cantonese food, or Hunan food you are taking, you must follow certain steps and follow the recipe. Sichuan food must be spicy, then you won't be able to make it sour, or the whole dish will taste better.
[Transition]
I personally feel that the high-quality dishes are delicious and popular. In addition to strict procedures, we still need a considerable amount of auxiliary materials. The color and fragrance of a dish produce the food itself, more because of the use of auxiliary materials. It is like a complete program. In addition to using SSH, SSI, or other frameworks, it is more complementary to the framework, or it is not covered by the framework, for example, if ant is used for automatic building, Maven is used for project management, or JS is used to improve user experience.
These things are beyond the subject, but they are indispensable. Therefore, with "One thousand programmers (chefs), we will create one thousand world programs (delicious food. The same materials, the same framework, and different people have different effects. It mainly depends on the experience, experience, and understanding of creators.
[Dig deep]
Even for the same recipe, the same kitchenware, and the same ingredients, different programmers make completely different tastes. In addition to the experience, experience, and comprehension skills mentioned above, the difference also depends on the programmer's basic knowledge, whether there are good knife workers, and whether there are good spoon workers. In addition, the most important thing is the programmer's understanding of recipes, the understanding of food ingredients, the understanding of cooking ingredients, and even the understanding of kitchenware.
Even a programmer who has a lot of experience, experience, and comprehension skills, and has good basic skills, if he doesn't understand recipes, food, cooking, or kitchenware, I think even if I make the same dish, I just have a certain effort on "color". I can't talk about "fragrance", let alone "flavor ".
In addition to the above content, the most essential and important thing can be involved-the mastery of the above content can be used comprehensively only by fully understanding the above content, in order to make full use of all kinds of materials and their own skills, they can eventually go beyond recipes and reach the realm of "innovation.
[Summary]
It is very difficult to be a good cook, and it is not easy to be a good developer. At best, the skillful framework is also a technician. Only by constantly mastering its nature, the environment, and the platform, in order to truly achieve: There is a gully in the chest, and if there is a highest realm of God, This gully is the real gully.
Article Source: http://www.the5fire.net/archives/program-like-cook.html