Title: Did not end without tail - Project development note: hierarchical development ≠
Keywords: distributed development C # project division of labor Delphi and C # mixed development, development process, layered development
November 26: It is very unhappy, and the company has left several colleagues. The overall environment is really too late LL.
Some friends think that the development of layers and sub-modules is conceptually not the same concept. I want to make a clarification here.
I want to explain in detail the concept of hierarchical development I think. Perhaps this concept is definitely my understanding. The layering development in my mind is such a concept: When our design has adopted the concept of the hierarchy, then we can use two types. Development and hierarchical development. The layering is a "horizontal" concept, but the layered development is a "longitudinal" concept. Splitting block development is also a "longitudinal" concept. The following development processes take the two concepts as an example, assuming that the framework of our application is hierarchical, such as DO, BO, PO, UI, and Database layers. (If you don't have a concept for DO, BO, PO, and UI, please refer to the previous notes.) So in this hierarchical design, we can also use two developments:
Division development
In the score development, A can be responsible for developing a sales service module, B is responsible for the stock module. Then this allocation method is under this. Then A will start to explore how to write this process (maybe watching the document, maybe see Demo), then find out what I think can be written, write do, write do, write bo, write PO Start writing with the UI). Another person is also developed in this step. These two people's activities may not be obvious. This kind of development method has no good explanation. Everyone should have experience in the development of such a happening.
2. Hierarchical development
During layered development, there may be a big difference with the above development method. A and B are responsible for all databases and do. C is responsible for BO, D is responsible for PO and UI. So developing process D To contact the needs to make the page and Po, telling C, c, and c, which need to develop a BO component when it is necessary to make a business judgment. When D or C needs to interact with the database, it is not written directly to the program code directly to obtain data, but a description of the data interaction tells A and B, A and B (not SQL statements). The relationship between A, B, C, and D is complementary. That is, these three types of people can be developed at the same time. In theory, this development method must have a successful relationship. For example, if the database is not coming out, D should have no way to work. But we can find some techniques to make D can have been preparing for work (iterative preparation). Of course, if the development process of D, he may also have the concept of a module, but for a and b, they only have the table of the relationship database and the stored procedure to consider, they are purely in the concept of modules.
As can be seen from the example, the mode of the divided into the hierarchical development is actually fused. As long as you are using the framework to build your application. Then you have developed the development method development of the division module, there will be a development of DO, BO, PO, and to realize the A person, he will also think about the problem of layering. Then use the development of layered development, some people may have some people desalinate the concept of modules, but it is impossible to discard the concept of the module.
This hierarchical development method I want to have a lot of friends who have used in different industries. I think the biggest advantage of this hierarchical development method is to be divided into workers. Each person has a sufficient exertion. The possible problem is in the implementation of a project, not everyone can exposure to all levels of this project, a little obstacles from an increase in the level of developers. However, it is possible to achieve the promoters' level of development through personnel deployment. The change I want to develop is an embodiment of technological progress. The development method itself will affect the development of quality, efficiency, and product (or project) value. It is also very important for a project. I think this type of promotion will affect the development process of the entire product. For example, D. The impact of demand, there will be corresponding changes in what development team can join the development team. Our project is still in progress, there are many changes I want to summarize. But my feelings is that the contacts of the various departments have changed due to changes in the development process. The quality of the change is nothing, but we must have to change.