First, the series of brief
In this article, we will use a series of articles to describe how to build an application development framework, and take the framework of the author's development as an example, one by one, to expand the analysis, how to start from scratch, to build their own development framework.
The purpose of this series of articles is to lead a person with a programming experience, through hands-on, initial completion of their own framework, more importantly, to obtain a framework for the construction of a systematic thinking model. After all, the framework is obsolete and thinking is not obsolete.
I hope that in the depth of technology, then, initiative, perseverance, thinking, action, is the four most basic elements.
Ii. Summary of the authors
The individual has more than 10 years of software engineering work experience, the work involves all areas of engineering (demand planning, demand mining, demand analysis, system architecture, functional design, coding implementation, system testing, on-line operation), for each field has a certain practice, not each field is the best, but should be the most extensive field.
Have done project management work, practice including planning, communication, planning, risk management, process monitoring and other professional management domain.
has done the team management work, has practiced the recruitment, the training, the appraisal, the leadership work and so on enterprise organization domain.
Lead the team to complete two CMMI certification, the CMMI has a certain understanding of the process accumulated a lot of learning system thinking, the overall operation of software enterprises have a deeper understanding.
Advantage is to know how to balance the various areas, the disadvantage of course is not proficient.
After settling, finally to the software engineering to maintain a high interest, enthusiasm for knowledge output and thought output.
Be able to accept criticism from all sides, but never correct it.
Iii. what is a framework
The transfer of knowledge is what we really want to do.
What is the framework, we first look at the definition of Baidu Encyclopedia: The framework is a frame-refers to its constraints, but also a shelf-refers to its support. is a basic conceptual structure that is used to solve or deal with complex problems.
This definition is clear, the framework contains two meanings, one constraint, and two is support. More details can see Baidu Encyclopedia, the individual feel that the explanation is in place. Go see first.
By reading and combining our work areas, we know that we define frameworks called software development frameworks.
For example: NET core is a framework, EF is a framework, everyone called the framework, and seems to have a connection, there is a cross, in the end we listen to whom?
We find that the software development framework is still an abstract concept, and when we need to implement a concrete framework, we need to focus on a finer question.
NET core is a framework yes, it is the framework in which to locate, EF is a framework yes, it is the framework for positioning?
The author has been working on the management software, so the framework I define is how to complete the management application framework. In fact, this framework, almost every software company has one, each programmer also dreamed that they can have a own.
Iv. How to design a framework
We already know the definition of the framework, so the next step is to act.
Management system development process, for programmers, is called additions and deletions to check.
From the point of view of design, we have abstracted different requirements and found that management system requirements include forms, processes, and reports. There is also an external interface.
From the point of view of demand, we find that management requirements are basic configuration, business process, and Business report. Of course, there are system docking.
Abstract to this, our framework to solve the problem is clear enough to quickly complete the form of adding and deleting, quickly complete the process-driven, quickly complete the report.
The next thing to do is to put the concept of the framework in: constraints, support.
Constraints: We need to use what convention, to complete our development, only under such an agreement, we can achieve the purpose of rapid development.
Support: What we need to support and complete these support, our rapid development of applications can be effective.
By applying the framework concept, we can create new problems:
Who is our framework-oriented object?
What common problems do they usually encounter?
What issues do our frameworks need to address? Do you need to solve all the problems?
What modules do we need to include in our framework? Why do I need to include these modules?
What kind of development model do we offer to help developers solve problems faster?
Answer these questions correctly, so what does our framework look like, in fact, we have an overall architecture.
In the actual operation process, different people, different experience, will propose different solutions, everyone's method, it seems to be very reasonable, we do not discuss right and wrong, we think as long as the solution to the problem is right.
Individuals are more adept at analyzing with systemic thinking, and are just a way of solving problems.
System thinking is the most basic stratification, first positioning each level to solve the problem, then subdivision, which problems which methods, which level, whether included, how to include.
In fact, the judgment of every detail comes from our daily accumulation and cognition, and individuals think that expanding their knowledge domain is the only way to objectively assess the problem.
As the introduction of this article, it is also written here, any problem can be unlimited, with the problem as a cut-in, causing thinking, the individual think is enough.
The next chapter introduces the Bitadmincore framework positioning and architecture, and gives you an idea of how we think.
The actual combat of building Netcore application Framework (i): What is a framework, how to design a framework