Finally, I have read Mr. Zhang Yi's book "Essentials and patterns of software design", and I am deeply impressed by his understanding and explanation of software design, I have a new understanding of the software design process and the use of the model. Therefore, I think of this book as a rare and outstanding book.
You can't just say "excellent". Where is it? My personal feelings are as follows:
First, the content is not impetuous.
Looking at the current book market, many books have been labeled as "** daily proficient **", "** getting started to proficient", and so on, which are tempting questions, the specific content is not flattering. After reading the book, I learned the most basic knowledge. I can follow the examples in the book to make a few simple examples.ProgramAnd even learned some of the bad programming habits, so I thought I was a developer. Impetuous is what programmers should avoid, but the impetuous content of many formal books has led to impetuous people.
Mr Zhang Yi's book is very different, and it does not list a large number of preliminaryCodeThe Code he proposed in his book is well-thought-out and representative code. In addition, even in the instance, the final code is not directly provided. Instead, the problematic code is provided first, and then gradually restructured and improved, in this process, the idea of software design is constantly passed on to readers, so that readers can understand the mysteries. In addition, the book is more about Mr. Zhang Yi's understanding and experience in software design and pattern application. This is rare in Chinese books, and such a selfless sharing, it is inseparable from Mr. Zhang's attitude towards being human.
Second, the content is not boring.
Many technical people write books full of computer terms, which make people sleepy after reading them. Or a large segment of code, originally a Chinese document, where English letters occupy much more space than Chinese characters.
Unlike Mr. Zhang Yi, he has a high level of literature and is happy to write various prose and novels as a literary enthusiast. Therefore, in his book, not all of them are cold code and technical terms.Famous sayingA warning sentence, or an appropriate metaphor, isArticleA lot of colors are added. Moreover, the text in the book is fluent and natural, and sometimes it seems to be a beautiful prose, listening to Mr. Zhang's feeling of software design from the heart.
Finally, the content is very responsible to the reader.
Most of the time, we will see that some authors seek fame and profit. When writing a book, they will not be responsible for the readers, perfunctory, and do not check the technical details and code, the results contain a lot of habits that mislead beginners, and even vulnerabilities and errors. Or it disappears after being delivered and printed, turning a blind eye to your comments and suggestions, and continuing to pursue fame and fortune.
Unlike the above situation, Mr. Zhang Yi can see from his careful revision of the second edition that he not only wants to write a book, but also writes a high-quality book, mr Zhang spent a lot of time and energy to improve the dissatisfaction and strive for perfection, we strive to give readers a new understanding of software design after reading it. Furthermore, between the lines in this book, we can hardly find that the texts are considered and the code is selected. The cases are based on Mr. Zhang Yi's practical work experience, this is different from some toy-style code in some books. Mr. Zhang shows not only code, but also valuable experience in his work. If the superficial code is just the huafan embroidery leg in martial arts, the content in mr. Zhang Yi's book is a rare secret of internal strength.
It is because of the above three points that we have made such an excellent book. Next, let's look at the content in the book.
Part 1Theoretical Overview
In this section, Mr. Zhang Yi outlined some important theories in the software design process, but not simply copied from other books, but added his own understanding, extract the essence of the content to prepare for the combination of theory and events. If you are familiar with the concept, you can skip it. However, you may miss the author's insightful explanation of these theories.
Part 2Read. netCode
Reading other people's code is one of the most effective ways to improve the level of software design and development. In this section, the author will take us to read it. some of the core code of net, which uses many design patterns, from which we can understand the ideas of Microsoft developers, so as to learn from and improve themselves.
Part 3Practice
Finally, we have created a Media Player example here. The initial design was poor, but the author analyzed it with us and constantly improved the design, so that the software had made great progress in all aspects. Maybe the code of the software itself is not the most important. The important thing is the improvement process. We gradually learn the various methods of software design and the specific application of the design pattern.
Part 4Experience Summary
I personally think this part of content is the essence of this book, because it briefly analyzes how Mr. Zhang Yi applied software design methods and design patterns in practical projects. All these are experience stories. We need to analyze the actual situation with the author, study feasible solutions, and select the best solution to solve the problem.
Part 5About architecture
When it comes to software design, we always talk about architecture. For large software systems, good architecture is essential. In this section, Mr. Zhang has made a research on Microsoft's petshop project, so that we can learn about the architecture involved in the project. In addition, according to some internal information, Mr. Zhang has been planning a book on Architecture and has accumulated a lot of materials. I also hope to see his new book on architecture as soon as possible.
All in all, this book is very prominent among many computer books in China. It is definitely a good book that can withstand the test of time. If you are interested in software design methods and design patterns, so it will certainly be improved and improved in the course of reading this book.