Familiar strangers-Software Engineering
Last summer is now a process of transformation! From software engineering to UML to design mode to three-tier architecture (in fact, these are all in the category of softwares), this is a difficult and tortuous road, along the way, feeling a lot.
I feel familiar and unfamiliar with software engineering again. This tangled state can only blame oneself for being too ignorant. I don't have a good time to listen to university teachers. However, you don't have to blame yourself too much. Everyone knows the current education situation in China. I think if I had followed the course teacher well at that time, I would not be able to know the soft engineer much better than I do now. I'm glad I chose to keep going. This decision can be said to be the most correct one for me!
Software Engineering
Software Engineering is a profound discipline. If I want to use a martial arts tool to compare software engineering, I feel that only the "Yi Jinjing" of Shaolin Temple can reflect its important position in the software industry. Software Engineering runs through the whole process of software development. from design to coding to subsequent testing and release, as well as subsequent maintenance, it is inseparable from the idea of software engineering. Software Engineering is actually a tool to engineer software development, analyze and design software in scientific ways, and develop reasonable plans for software development, the software can be guaranteed to the maximum extent on time. Software Engineering is a course that requires lifelong learning. . As I continue to accumulate my understanding of the softwares, I will gradually deepen my understanding. Continue to work hard!
UML
UML is a very important part in the software development process. It can be said that UML is the soul of software engineering. It is the overall design and control of the software. Umlj draws the idea of softwares into various diagrams, and then adds the design pattern through these diagrams to convert them into the system'sCodeFramework. With the framework and the outline, the rest of the specific implementation code can be achieved overnight. In one breath! Four types of UML relationships: Association (combination, aggregation), dependency, generalization/inheritance, and implementation. Another nine diagrams are the focus of learning UML. The nine types of face-to-face charts are the top priorities. In addition, I feel that the timing diagram is also very tangled. When I build a data center charging system, the picture is not very good, and the result is edited and modified when I write the code. It is really a headache. Learn from the experience and study the UML diagram.
Design Mode
The first time I used. NET as the data center charging system, I used an abstract factory and felt the benefits of the design model. The use of appropriate design patterns can make code more independent. The terminology is low coupling. Make the code more reusable. There are many benefits. But it is worth noting that we should not simply use the design pattern to use the design pattern. Be sure to check whether the design mode is applicable to the actual situation. In this way, we can play the role of the design model, otherwise it will only be counterproductive. In short, the design pattern is the essence summarized by our predecessors. We need to use it, so that it can play its biggest role. To learn more about my design patterns, please refer to the introduction to big talk design patterns.
L3 Architecture
The Study on the third layer is also very complex, this timeWeInstead of having ready-made materials as before, Let us search for ourselves-in order to train ourselves to capture things and obtain nutrition, so that we can better adapt to the survival environment of nature. If you want to acquire knowledge, the largest knowledge base in the world is Internet or Internet.ProgramEmployeeCommunity-- Csdn. Blog. 51cto is indispensable to me. I learned Layer 3 from those blogs and gradually understood what Layer 3 is. To put it bluntly, the code is divided into several layers based on different functions, each of which has its own responsibilities. For example, the code responsible for dealing with databases is placed on the Data Access layers layer, while some logic judgments are placed on the BLL layer. To put it bluntly, layering is similar to using design patterns. It is designed to reduce the code coupling and make the developed software easier to expand and maintain.
Hierarchy is also an idea. Different stages have different understandings of hierarchy. With continuous learning, continuous AccumulationExperience.
C # and VB. NET
C # I learned how to learn the design model, because the code in Dahua is implemented in C #, but to let us get a preliminary understanding of object-oriented programming ideas. The learning of VB. NET is to seamlessly transition from the previously learned VB6 to the future object-oriented. This is a good embodiment of the "meal Theory"-getting unfamiliar knowledge through the knowledge you are familiar.
Rebuilding the IDC Charging System
We also talked about our classic project-the data center charging system. This time, we re-built the data center charging system, first stratified, and then used the abstract factory + reflection + configuration file. The first timeThe data room charging system uses VB6. At that time, it was simply a little white. What UML, design patterns, and layers were all blank. All the code is directly written under the form. Now let's look at what we 've done before. It's just as ugly! But it is because of the original growth that the crops are thriving now! The road is step by step, and knowledge is learned a little bit, so do not care about how poor the current, how low the level is, as long as you are willing to work hard, willing to pay, add a correct method, looking back one day, I found myself at a new height! The so-called unlimited steps and even thousands of miles, not small streams can not become a river. This is the truth. Learning is actually a process of accumulation.
Cooperative Development of Data room charging systems
It is helpless. This time you understand why it is classic! Cooperative Development mainly aims to cultivate our cooperation capabilities, learn how to use SVN, and deepen our understanding of the three layers and the design mode. Cooperative Development is much faster than development by one person, which is also a reason for layering. After layering, the code coupling is reduced, and each person is responsible for a part of the code, as long as you follow certain standards and specifications, you can perform parallel development at the same time, and then merge them after writing them. Finally, you can debug and package them! This cooperation does not have much new things, but adds an appearance model on the basis of the original. This cooperation has made me feel that comments and descriptions are very important. If the comments and descriptions are clearly written, the project can be completed without any additional communication. On the contrary, if the comments are not well written, so it will be difficult to do it. To write two sentences, we need to communicate with each other. This will lead to misunderstanding, which will cause a lot of unnecessary trouble, therefore, it is very important to develop standards and specifications for cooperation.
Conclusion
it's really hard to write this blog, because the previous annual summary "My it road 2011 (ii)" has already summarized this stage in detail, and now I will write it again, to put it bluntly, I used different words to say one thing twice. This is a challenge for a person with a very limited level of writing! It's okay to finish writing. Good and bad. You have to wait! It's time to go to bed after two more minutes! Good night everyone!