Today I attended an open project run by Beijing Bowen viewpoint publishing house in Shanghai.
Party (http://www.douban.com/event/11051981 ). Two topics have inspired me a lot.
Design facts and mistakes, another is Lao Zhao (@ jeffz_cn)'s "cache in Web Applications".
Of course, my gains may not be the theme they both want to convey, but it only triggers many associations, so they will not write down the process of thinking. Let's just draw some conclusions.
1. The architecture design needs to focus on the needs. There are two major parts of the requirements, one is the business-related requirements, and the other is the business-independent requirements.
2. Business-independent requirements, including reusability, high performance, reliability, ease of use, and security.
3. The classic gof design model only solves (or even partially solves) the reusability requirement.
4. Many design models can also be summarized in the field of high-performance requirements. The cache proposed by Lao Zhao today is an important mode that spans n fields and improves performance.
5. In my opinion, there are three major ideas to improve performance: cache, splitting, and parallel. On top of the three ideas, there is another general idea: Find the performance bottleneck and try to optimize it.
6. The idea of caching has been well discussed by Lao Zhao today. At each layer, there are cache Implementation ideas and solutions at each level, with advantages and disadvantages. It would be even better if we could talk about the common characteristics of the cache mode. It may be concluded that the CPU and I/O can be reduced in a more efficient way by performing special processing on 80% cases.
7. Splitting, such as separate data storage, separate static content from dynamic content, and distribute cache on multiple memcached servers, it is to decentralize the original bottleneck and refine the original problems.
8. parallelism is also a major category, so we will not start it. The general idea is to allow computers to do as much work as possible at the same time.
9. Maybe there should be such a book: high-performance design patterns, which should be equally important as "reusable design patterns.
10. There should also be "security design mode", "high reliability design mode", and "Easy-to-use design mode" among others, these cross-application, cross-business, and cross-domain design models are all design patterns that should be deeply mastered by architects.
11. maybe there should be a publishing house with high organizational skills. write such a set of Architect Design Pattern books.