Architecture is the most urgent talents in many software companies. It is also a software enterprise with the highest salaries. In other words, the architecture is the human capital of the company, compared with human resources, it can get new products, new markets and new technical systems compared to human resources. So what is the role of the architecture, the structure of the architecture, how to locate a framework and how to become a framework? This is a lot of companies, many programmers hope to know or want to participate in the topic of the discussion.
The so-called architect is the designer, dragonfly, structural designer, these definitions are mainly used in architectural understanding. When I was a child, I was playing in the river. I often do things is to bridge, the steps are as follows: 1, draw on the beach; 2, select the shape, the size of the stones; 3, build the arch bridge. Among them, the light PP child who picks up the picture is the legendary "architect".
In software engineering, the role of the architecture is three aspects: 1. Industrial application frameworks, industry architects are often industry experts, understanding industry application needs, and its architecture behavior is mainly reasonable analysis of the need to lay out to the application model, bialy In the application function layout; Safety, maintainability, flexibility, cross-platform, etc .; 3, standardizing architects have made a certain type of architecture into a set of architectifications through many years of tempering or all-year-old, and of course, there is also a special research specification. Frame teacher. Their products are often divided into two types of application specifications and technical specifications.
Similar to architecture, if there is no good framework for software systems, it is impossible to become a successful software system. Construction site without drawings, no design bridge projects are unimaginable. Construction engineering is also available in software engineering!
Due to the qualified and competent software architects in my country, they directly lead to the backwardness of the national software industry in China. In the future, the information industry-dominated society, the level of information industry will directly affect the national core competitiveness. The reason, no business is not eager to reach, personal lack of guidance.
The urgent work of the company is a reason that cannot be overcome, that is, the overall level of social development. "Survival is the first, making money is the first", many customers have complained that domestic software companies can't trust, the system project is tired, the more the company is more worse, but it is impossible to do China. System project has to be done to do domestic software companies. Due to the low cost, the company has high development costs, software companies can only have a grass, take money (many companies can't get the late end). In such an environment, companies are almost unable to invest more resources to cultivate their own architects, and the dazzling jumping wind gas companies are more reluctant to invest ...
So, it is necessary to become a way to make a more popular software college and personal self-cultivation. About the Software Academy has been exposed to a lot, and the most of its purpose is the software architect (Or programmer Or talent) that created (OR to create). Teachers' sources and companies, students from the enterprise, talent delivery to enterprises is the means of their school. Although the slogan of software colleges like spring bamboo shoots is almost, I am afraid that most of them are only for circle.
The architecture is not from theoretical learning, but not learning related knowledge is certain. Reference software company architect needs, combined with the current architects needed, summarizing the architect self-training process is approximately for reference only:
1. The knowledge of the architectural embryo (programmer) learning is the language foundation, design foundation, communication base, etc. should be done at universities, including Java, C, C , UML, RUP, XML, Socket Communication (Communication Protocol) - Learn the raw materials necessary for the application system.
2, architect sprout (advanced programmer) learning distributed system, formation, etc., can be in contact with university or first working hours, including distributed system principles, EJB, CORBA, COM / COM , WebService (graduate students can study network Computer, high-performance concurrency processing, etc.) 3, the architect seedlings (designers) should have the above-mentioned basis, combined with practical project experience, thorough understanding of the design model, including design mode (C version, Java version), EJB Design mode, J2EE architecture, UDDI, software design mode, etc. During this time, it is best to understand the application of software engineering in actual projects and group development, team management.
4. Software architectivists are shaping that opportunities, personal efforts and talent software architects are actually a position, but after a programmer fully grasped the basic skills required for soft frame, how to get this opportunity, how to use The skills of the skills are properly used, how to constantly abstraction and summarize their architecture mode, how to go deep into the industry to become a qualified analysis, the elite talents that are integrated into one, this is not everyone who can meet the pie ...
However, learning the sea is endless, the energy is limited, how can someone can master these so-called architects? This is a secret, everyone has their own unique home to secretly exposing. However, it is a bit of extensive learning, it is necessary to work according to personal interests, engage in the field to identify a home main line.
Evaluation:
If the architect works on the model drawings, then the model element must be real, as we can't expect abstract senders to design high-rise buildings, there is no practical model element, it is impossible to build software systems. . To date, most software architects are depends on software programmers to achieve their architectural intentions. The direct gaps directly are obvious. The emergence of design patterns is to shorten the efforts of the gap between the two, and the purpose is to make the architects and programmers have more common language and norms. Although the design model allows software development efficiency and quality to have a certain degree of improvement, it is always facing a significant limit, that is, human factors. Although there is absolute advantage in creativity, it is unable to compare the machine in accuracy, persistence, efficiency, and quality. So we hope that people and machines play their own strengths during the software system construction, that is, let people play the role of architects, and let the machine play the role of the program construction. In fact, there is already a successful model, that is, the design-based automation software plant model used by the KCOM business project (http://www.kcomsoft.com) Enterprise Application Platform, using this model, architect In the model graph design environment provided by the tool platform, the design of the software system is designed, and the design results are automatically processed into the final enterprise application software system by the "Software Factory" of the tool platform itself. Such development models can enable the development of enterprise application software systems in efficiency and quality, fundamentally different from traditional design patterns, because the design patterns here are already included in the software factory compiler.