Several previous articles aim to introduce a way of thinking about contribution programming. For now, call it contribution-driven-Development (CDD.
- Contribution programming (1)
- Contribution programming (2)
- Contribution programming (III)
- Contribution programming (4)
Summary purpose
The abstract ability of programmers is usually accumulated through the practical experience of projects, and may be abandoned in the process of accumulation. In my personal experience, there are not many people with abstract and modular capabilities, and the programs produced are not scalable. Therefore, we propose the so-called CDD approach to help you.
CDD is not a new thing, but a summary of some experiences and techniques used in many projects. When I first came into contact with Eclipse plug-in development, I was deeply attracted by this way of thinking. All parts have reserved space for other plug-in developers to play.
Procedure
To sum up this way of thinking, you can refer to the following steps:
- Instance analysis: we need to start with an instance for any modifications to analyze the extensions that may be needed.
- Define contribution units
- Select the basic framework that provides contribution. Generally, it is a Dynamically Loaded framework.
- Technical restructuring of the basic framework construction and contribution units respectively
- The contribution size of continuous optimization is too small or too large.
Principle
Contribution programming embodies the Hollywood principle (don't call me, I'll call you ). Contribution is only contribution. In principle, contribution is passive. Therefore, the fundamental thinking is compatible with the general IOC framework.
The infrastructure construction of the system is responsible for loading various contributions, and how the organization calls each contribution is the main body and the portal to start the system.
We also embody the actual operations of divide-and-conquer to turn development of large systems into Multiple widgets.
Benefits
- Modular system components, management and personnel allocation have formed the benefits of natural division of labor
- Each contribution is highly testable, and TDD can be smoothly introduced.
- The dependency between modules is clear. You can handle module upgrades separately or isolate errors of a single module.
- It is easy to contribute and form your own system Ecosystem
- It is relatively easy for developers to get started, without having to look at a large area of documents and code.
- Rapid system upgrade with continuous delivery
Background
The scalability of a system is the vitality of the system. It is easy to expand, easy to modify, easy to contribute, and endless. We hope this way of thinking can become an important standard for training programmers.
Contribution programming (Summary)