Design of computer CPU architecture RISC eventually defeated Cisc, creating the mainstream of today's PC.
Software architecture design is the same, in the case of accomplishing the same thing, strive for simplicity.
This evening I had a long talk with the chief scientist and the boss of the former company until 2 o'clock.
Cut the pieces that I thought was more satisfying and concise, and finally came up with a very streamlined and elegant architecture,
Draw the design idea to harvest as follows:
1. Flow-level scheduling based on file system/shared file system is the simplest, portability is also the highest (language/platform);
2. Data and Index/association data is a whole, as far as possible not to design to let them separate (especially the database ID map to the way the resource path), should try to consider their storage mode is also unified, and then the database to do redundancy.
3. File naming should be rigorous scrutiny, follow can reflect business, readable. Even the sorting of files can take into account the task sequencing;
4. File resources preemption, locks can be based on file name modification, temporary files;
5. Do not attempt to start with business considerations, you know, many times the business is accompanied by the growth of the system and mature. In the early stages of design and implementation, too much effort is likely to become unproductive. You should focus your design on the different business expansions.
6. Using polling is sometimes a wise way to reduce system coupling to a great extent. is similar to the observer pattern.
7. The design of the architecture can be considered to give a key part of the pseudocode.
Very excited, a painful mess of the renovation project, incredibly designed so elegant.
Have to admire God from the bottom of my heart.