How is System Architect self-built CSDN)

Source: Internet
Author: User

Frankly speaking, except for a few programmers who are extremely passionate about development programs and willing to work for them for a lifetimeDevelopersWriting code is only an essential Accumulation Stage for them to gain career improvement in the future. During the development time, they will actively learn various kinds of knowledge and experience to cultivate their own business minds, this includes expanding all aspects of their resources, which will lay a solid foundation for them to become managers or start a business in the future.

Becoming an architect is one of the career development paths of developers. What kind of career is architect? What are the basic capabilities required? How can we become a good architect and architecture designer? For related problems,This "expert stands" interview for you(Microsoft certified expert, system analyst, xisai Network Professional Consultant, member of China Computer Society)Zhang youbangHe will share his views on related issues.


"In my six years of work, apart from the first year being pure coding, I have been working on Architecture Design for the rest of my time, of course, I have been writing various types of code." Zhang youbang believes that architecture design may seem mysterious. programmers who are new or have no experience in architecture design may feel overwhelmed at the beginning, but in fact architecture design is very easy, it justSoftwareThere is only one link in system development. The development, maintenance, and change of the entire software system involve many things, including technology, team, communication, market, and environment.

 

At the same time, Zhang youbang said,Although architecture design is easy, it is not as simple as most programmers who do not have architectural design experience think.. By putting several servers together, each server is allocated with software for running, and then connected over the network, it seems that every enterprise-level application is just a few simple steps. However, in real life, software systems can be described as complex systems. Many people and things are involved in planning, development, maintenance, and change. Architecture design is to take the following things into consideration in the planning stage, and to make efforts for stability, but also to think about maintainability, scalability, and many performance indicators. In addition to technical considerations, we also need to consider human factors, including personnel organization, software process organization, and team collaboration and communication.

 

In addition, architecture design also requires methodological guidance. Zhang youbang stressed that the ideas of these methodologies include top-down analysis, separation of concerns, and horizontal/vertical module division. Sometimes I think that architecture design decisions are like browsing Google Earth. They actually reflect a top-down decision-making process. Decomposition of problems is the basic quality of software thinking, which can be horizontal decomposition, vertical decomposition, and the combination of the two. Whether the problem can be resolved efficiently and accurately is the first project that software developers need to train. In addition, graphical tools in architecture design are very useful. They can express the structure and operation mechanism of the system in a graphical way. This is why the architecture design is the misunderstanding of frame drawing. Furthermore, architecture design is an engineering task that requires a high degree of practical experience of the parties involved. Only when you have a comprehensive understanding of the various technologies on the market can you design an architecture that best meets various design constraints.

 

Speaking of the capabilities required by architects, Zhang youbang believes thatThe architect must first have rich development experience and be a technical director.It must be clear about what can be implemented, how it is implemented, how difficult it is, and how the system can adapt to changes in requirements. In addition,A deep understanding of process-oriented, object-oriented, and service-oriented design concepts is required to quickly detect implementation problems and propose corresponding improvements (Reconstruction) solution (also known as anti-pattern ). All of these require long-term development practices to be truly realized. It is difficult to comprehend from books alone. Even if I understood it at that time, it may not be able to integrate it into practice.

 

In terms of technical capabilities, the most important and necessary knowledge of software architects is the knowledge of component communication mechanisms, including in-process communication (Object Access, function call, data exchange, thread synchronization, etc.) and out-of-process (including cross-computer communication (such as RMI, DCOM, and Web Service)).Today, when WEB applications are widely used, developers tend to pay more attention to inter-server communication, but less attention to intra-process communication. Out-of-process cross-machine communication is the cornerstone of building distributed applications. It is a bird's eye view in architecture design;In-process communication is the skeleton of the module implementation, and it is the cornerstone.To design a. Net-based enterprise-level architecture, you must first understand the language level, including. net clr, inheritance features, delegation, and event processing. Then there is an understanding of common solutions, including ASP. NET Web Service,. NET Remoting, and enterprise Service components. In short, rich development practices help architects avoid the high level of effort on paper, and bring real feasibility to code writers.

 

Second, it is also important to have enough industry business knowledge and business mind. Sufficient industrial business knowledge can give architects more capabilities to embrace changes, and leave some room for expansion during system design to adapt to potential demand changes.Experienced designers may have encountered such a problem, and the wishful thinking reserve interface has a very low hit rate in demand changes. That is to say, the system interfaces left behind for scalability at the beginning of the system design did not play a real role in the flood of demand changes, because demand changes did not follow the expected direction, at last, we had to re-design the system for the changed business. This is because the understanding of business knowledge and the judgment on the market or business have not reached a practical level that can serve the architecture scalability.

 

Again, said Zhang youbang,The attention of architects must be put into consideration at the beginning of the architecture design, including communication and Determination of personnel quality.The software process is a process in which teams work together to build a system. The communication capability is the glue that binds multiple development lines together throughout the process. Everyone should have met and said, "This is the case, I don't know." Or a developer suddenly shouted, "why is there no data here. The purpose of communication is to avoid confusion between multiple development lines as much as possible, so that the system building process can be organized and efficient. In addition, the focus on people is also on determining the quality of team members, such as which developers are more familiar with which technologies, or which developers are easy to drag on. Only by reasonably using human resources and making appropriate people do the right thing can the entire software process be more efficient.

 

In addition, Zhang youbang believes thatArchitects should always pay attention to the development of new software design and development, and constantly explore more effective new methods, development languages, design patterns, and development platforms for constant and rapid upgrades, software architects need to learn about new technologies and apply them to software system development. However, the exploration of new technologies should be carried out within a rational scope, and we should not blindly follow suit. Solution providers always want you to use the latest technologies they provide, and they tend to focus on their own products when promoting their own solutions, which is easy to give people the illusion. For example, a database often makes people think that it can do anything, as long as it has nothing else. But in fact, this is not the case. For small applications, many business logic can be used.Script method is put into the database, but it is seldom seen that large applications adopt this method. The new things need to be judged from a comparative perspective, including horizontal comparison and vertical comparison, and finally some performance, portability, scalability, and other indicators. In addition, new entry developers often care about new technology trends and ignore the history of technology. developers who have been killed all the way from the DOS era have a more comprehensive grasp of the current technical system.

 

Architects can't do it through theoretical learning. They certainly cannot do it without learning and practicing relevant knowledge in person. As mentioned above, architecture design is a matter of engineering nature and can be gradually familiarized with it only on the basis of continuous practice. The practice is not to dig deep into the characteristics of various languages, because the system architect designs the application system architecture rather than the design language (unless you want to implement DSL ). In more cases, we need to take a Comparative Perspective to Practice and summarize the advantages and disadvantages of different implementation methods, in a specific context, you can determine the method used. It is not as hard as imagined to grasp certain methods while laying a solid foundation.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.