Development Framework selection and design experience

Source: Internet
Author: User
Framework. In fact, it is a semi-finished product of an application, that is, a group of parts for you to choose to complete your own system. Simply put, you can use a stage set up by others to perform performances. In addition, the framework is generally mature and constantly upgraded software.

Understanding what is a framework

Framework. In fact, it is a semi-finished product of an application, that is, a group of parts for you to choose to complete your own system. Simply put, you can use a stage set up by others to perform performances. In addition, the framework is generally mature and constantly upgraded software.

It can be said that a framework is a reusable design component, which defines the application architecture and clarifies the dependency, responsibility allocation and control processes between the entire design and collaboration components, it is represented as a group of abstract classes and methods for collaboration between their instances. it provides Context relationships for component reuse. Therefore, the large-scale reuse of component libraries also requires a framework.

The concept of the framework originated from the Smalltalk environment. The most famous framework is the Smalltalk 80 user interface framework MVC (Model-View-Controller ).

Currently, there is no uniform definition of the framework. The definition given by Ralph Johnson is basically accepted by most researchers:

A framework is a reusable design, which is expressed by a group of abstract classes and the cooperative relationship between instances [Johnson 98 ].

This definition defines the framework from the perspective of the framework connotation. of course, it can also be used to define the framework:

A framework is part of the design and implementation of an application in a given problem Field [Bosch 97 ].

Problems to be solved by the framework

One of the most important issues to be solved by the framework is the issue of technical integration. in The J2EE framework, there are various technologies. different software enterprises need to select different technologies from J2EE, this makes the software enterprise's final application depend on these technologies. the complexity of the technology itself and the risk of the technology will directly impact the application. Applications are the core of software enterprises and the key to competitiveness. Therefore, the design of applications should be decoupled from the specific implementation technology. In this way, the R & D of software enterprises will focus on the application design, rather than the specific technical implementation. the technical implementation is the underlying support of the application and should not directly affect the application.

Why is Framework development required?

The biggest benefit of the framework is reuse. A framework is called a framework because it can be reused. In the software organization, a framework-oriented development method is formed. The framework is used in development and the framework is improved after development. In this process, the reuse work has been carried out. The most reusable method obtained by Object-Oriented Systems is the framework. a large application system may be composed of multi-layer collaborative frameworks. The framework can reuse the design. It provides reusable abstract algorithms and high-level designs, can break down large systems into smaller components, and can describe internal interfaces between components. These standard interfaces make it possible to build various systems by assembling existing components. As long as the interface definition is met, new components can be inserted into the framework, and component designers can reuse the framework. the framework can also reuse analysis. If all personnel analyze transactions according to the framework, they can divide the transactions into the same components and adopt similar solutions, in this way, analysts using the same framework can communicate with each other.

Another advantage of the framework is that it can optimize the architecture. Software Architecture, that is, the architecture, including component elements, element mutual cooperation modes, basic requirements and restrictions. This shows that the architecture design is to organize components and elements in certain ideal cooperation modes to achieve basic functions and restrictions of the system. The framework is actually a reusable design based on the architecture in a specific field, that is, the framework is the application of the architecture in a specific field. The framework represents an excellent software architecture. The framework defines an extension method to regulate the use behavior of the framework. This allows the software to maintain the stability and consistency of the overall architecture.

The main features of using framework technology for software development include: good software architecture consistency in the field; building a more open system; greatly increasing code reuse, and improving software production efficiency and quality; software designers should focus on their understanding of the field to make demand analysis more adequate. they should store their experiences and allow those experienced to design frameworks and domain components, it does not have to be limited to low-level programming; it allows the adoption of rapid prototyping technology; it is conducive to collaborative work within a project; large-granularity reuse reduces the Average development cost, accelerates development, and reduces development staff, the maintenance cost is reduced, while the parameterized framework improves adaptability and flexibility.

Role of the framework on the organization

Knowledge accumulation. The core value of the framework is the accumulation of knowledge. Software development is an intellectual activity. However, knowledge exists in the human brain, which is the most difficult to accumulate. In software development, code is the most definite knowledge. both humans and machines can understand the meaning of the code by browsing the code, and do not have different understandings. Therefore, it is the best way to accumulate knowledge from the code. The framework is the output of this idea. The framework contains a large amount of code, which describes the abstract concepts in a specific problem field and the relationships between these abstract concepts. Therefore, the framework is competent for knowledge accumulation.

Protect assets. Knowledge accumulation is a protection of assets. Another important protection work is that software organizations (especially enterprises) need to ensure that the learning and improvement of knowledge are legally authorized. For example, the illegal outflow of knowledge is not expected by any organization. Knowledge accumulation as a framework helps ease this situation.

Development Framework selection and design

After understanding the role of the above development framework and the problems to be solved, the guidelines for designing and selecting the framework are very obvious. I will not go into details about the technical considerations here, only a few questions should be raised:

1: The framework should provide more and better help for our development process. Because the original starting point of the framework is to improve the development efficiency through the reuse of knowledge. We should know that any development framework cannot be perfect, nor can it adapt to all application scenarios. that is to say, any development framework has its applicability. Therefore, we must not apply the technology for the sake of technology. it is difficult to simply say that the technology or framework is better, and there is no need to fall into the abyss of repeated technical comparison and repeated choices.

2: The learning curve should be smooth, the technology should serve the application, the development framework should be easy to learn, the quick to get started, and the requirements for developers should not be too high. There is no deeper experience than using it. It may take half a month or a month to complete the learning cycle.

3: Be sure to get good technical support. In the process of application, one or more problems may occur. if the problem cannot be solved quickly, it will affect the development of the entire project. We must consider the overall cost. In fact, this is the biggest problem with open-source applications. in addition to the dead letter document, we need to check the source code or find a solution on the Internet, generally, a problem will lead to a one or two-day development pause. serious problems may even take a week or longer, and the project progress is hard to be controlled.

4: considering the impact on team requirements, the development team of the organization is easy to set up and flow between different development groups, so that tasks that require priority can be solved.

5: you cannot use the framework design and development at will because of your personal interests in technology and the pursuit of new technologies. The development framework is by no means a simple technical stack and competition. it should be built upon the joint choice of the team.

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.