In software
In development, we often see extreme: either not pay attention to software architectures, or too much attention to she has become "sky." I even met such a thing: a company enforced Struts-based architecture design, but it arrived at the project group.
System, especially the segment substantially abandon this architecture design. So, where is this reason? Why is a cost high architecture design not received? In fact, sometimes a good design may not be accepted, especially if Java development actual experience or even lack of software development experience is more likely to control technology. We will leave this possible impact to see this problem. We have found that many designers ignore several important issues when making software architecture design: 1: The architecture of the software is fixed in large direction. This fixing is strengthened and fixed based on certain basic fixed software patterns (including design patterns, encoding modes, or some specific conventions). This makes software development to some extent, some can be obviously available, this style is through and persisted throughout the project, so when we enter usually terrible maintenance or adjustment, we will not be afraid that we are in many kinds. Different implementations are often lost. 2: The architecture of the software can be moderately controllable in specific applications. There is no doubt that software design is not possible without exception, and some moderately retains some moderately flexible. On the one hand, it is in line with the actual software development; on the one hand, moderate controllable flexibility embodies a respect for realizes and trust. However, how to achieve controllable flexibility? Usually, I think it can be considered a limited type of design selection and through colorful graphics to indicate this alternative. But even so, the designer is important to consider the relationship between these different options, and the compatibility of these selection and overall design, this time, the design and moderate "bond" design of the interface is necessary. 3: The support of architecture design. Architecture design usually involves some support design, which directly reflects the most valuable part of the system, and more detailed parties should be able to see performance and structurally related parts, and the necessary basic class. Typically, as designers, we should be able to design and implement the performance of the system's performance, structure, expansion, bonding and other parts, which usually should not leave the design person's control and grasp, these code written or at least positive Concerns are the necessary quality of designers: We should not let more see what we can't write (I also oppose the designers who don't worry!), In fact, this is the most difficult thing for software. The place. Especially in the test results, it is very accomplished when the performance of these design achievements has been greatly improved. As for the basic class, it should be as much as possible to reduce dependent and coupling. The support of architecture design should be as simple as possible for customer programmers to hide unnecessary intermediate details as much as possible, so as far as possible, stable and truly need. Typically, emerging technologies will be used in the support design of architecture design and packaged to hide specific implementations, and the risk of emerging technology is huge, and the acquisition of people is also a problem. Some techniques can provide alternative technologies, and some emerging technologies can also be referred to (but not necessarily adopting her implementation). Remember that software development is required for speed, quality, and maintenance rather than technical performances, this degree should be grasped by analytical designers. : Business or page. Perhaps this saying that the Fa will cause some people's opposition, think that it should be the former, however, the actual situation is that we often see the business-oriented system to achieve a page-oriented system: the latter is more Simple "and seems to have fewer code and workload. This is somewhat right. However, distinguishing these two different designs are necessary, although you may also use the MVC2 architecture, but you can make a face design.