Original Quoted from: http: //blog.joycode.com/microhelper/archive/2004/08/06/29865.aspx Author: MicroHelper
First, the grasp of degrees.
Project development has four elements: cost, time, quality, range. Now, the quality has decided, and it is not allowed to control, so we only define the scope in order to control the cost.
First, we must make a target to achieve after this time. Including the performance, scalability, performance, stability, friendliness, and more. A clear goal can guide everyone to this effort. And this goal has actual guiding significance for the development range.
The other is the most urgent problem that needs to be solved, which is the best consideration in the development.
There is also a risk. (Now the XXX driver is increasingly popular, in addition to risk drive, there are test drives, feature drivers, data drivers, USE Case drivers, etc.). How to make a range, guarantee that we will not fall into the quagmire, and you can take a new version of others to make our questions to consider.
How to transition smoothly
Small step is a safe approach to avoiding too much, unpredictable changes, divided into several small stages, step by step.
Acceptance
Although there is a problem, the system is more stable, working properly, at work, right, best this road to Right, to accept and hug changes is also a place where it takes to consider.
Second, the choice of technology
For architectures, there is no unified idea, and the choice is to define the interest in the above range to determine the target before selecting the appropriate architecture.
The focus is mainly concentrated
Represents the binding of layers and Entity, the persistence of Entity, the way data is transmitted between the various layers, the dependency between the cache object, the collaboration between the objects, the unified security control error handling. Configuration information management, Unit Test.
===================================================
If you don't look at the title of the article, I think I will be very easy to accept and put it in the favorites. I don't believe that people who have experience in the author will make a problem, so I have seen the article carefully, it seems to see a little thing, but for reconstruction, the author is indeed too small.
Let us consider this problem in accordance with the author's ideas. Due to the cost, time and other multi-facet factors, we cannot prepare all changes, although there are many ways to help us stimulate changes, and find potential changes in time, but it is inevitable. In the later stage of the project, we will still face the crisis of demand changes. If this change is what we are not expected, and the launch of the whole body, then in this case, do we need to reconstruct? Let's take a look at how the author of "Reconstruction" define the reconstruction: "Make changes to the code without changing the external behavior of the code to improve the internal structure of the code." Please pay attention, reconstruction It is not to change the optimization of external behavior. This is like a bath, which is a frequent, small metric work step. If you can't stimulate changes in the previous iteration, we need to consider the grasp of degree, don't expect the system level reconstruction in the later period of the project, it is too big. If your change will affect the entire system, you can only want to remedy any other way, so give it to the reconstruction, at least in this currently running version.
Just like the author's Work, Right, Best, the premise of reconstruction is that the code can work normally, the purpose is to make the code better work. So, more time, I will regard design as system-level, regarding reconstruction as code grade, and they are two ways of two phases, can't be mixed.
Reconstruction is not universal, don't rely on reconstruction, don't exaggerate the reactivating function, in many times, it does not improve your design defect.
===========================
The above view is that I have self-reimbursement of immature views, and does not mean the original author's point of view, and may miss the original author's intention. Inappropriate, I hope that the high fingers are correct.