The most important software development book "design model" in the past 10 years
Jiang Tao
Foreword
Two years ago, I have written a few book reviews in China. At that time, I feel that the software development is a lot, but the boutique flexible, only a few old classic famous version is old, such as Charles Petzld's "Windows" Development Guide, "Windows Senior Development Guide", "Windows Senior Development Guide", David Kruglinski "VC Technology Insider", etc. These two years may be involved in the new vitality into the software, coupled with software practitioners to increase rapidly, and all publishers compete for computer books, making the situation changed. Although the book is dazzled, the price of books is getting higher and higher, but the overall quality is not good. Many domestic books are known as "advanced programming". In fact, it is actually equivalent to entry manual, and some will even help documents can be translated, and one version is also a version, happy, this is a sorrow of the publishing world!
I really like to buy a book, and there is almost no one in the technical field doesn't need to be read. Sometimes I saw someone else's left right in the bookstore, and finally took a few lying books, but I won the treasure. I really want to pull him and tell him that it is very good. However, our Chinese seems to be less accustomed to this direct way. Later I thought, if there is a professional book review, it should be very beneficial to readers. Why is Amazon become a large reason for the NO 1 of the book website, a high-quality reader review is a major reason. Mr. Houjie, Taiwan is also a very popular book review column. Unfortunately, Mr. Hou will concentrate on creation, and the book review is suspended. I really hope that one day I can see "No Responsibility Book 4".
Book experience
Select the books of the most important is to see: a look at whether he truly level; two to see if he can clear technical explanation. Some people in China or translators are just a known semi-solving, and the pursuit of speed and efficiency. As a result, this book can only be misunderstood. But if the level of high level is only technically, there is no writing and expression, or the selection is too hard, or the text is difficult to understand, it is difficult to accept the reader. Domestic original books are too hard, "cold-faced poker type, no feelings, no feelings, lubrication and poor enclosure" (Houjie Mr.), and lack of practical, look theory In the face, it can actually have no application value, so there is almost no known authors and even translators in China, of course, this is also related to the publication environment.
Taiwan is doing very well in this regard, English version of technology book can be translated and published, and it can also publish a better original book. The mainland publishing community should learn from them, and there are nearly 200,000 people in the whole year, with a lot of talents in the mainland, the market is wide, and the publication of the newcomers, you should have a good sales performance. At the same time, it should also be helpful to the improvement of the overall level of software industry.
Publishing House "Four Everyone"
There are four well-known computer books publishing in China: Tsinghua University Press, Machinery Industry Press, Electronic Industry Press and People's Posts. Originally, I hope that the publishing house is very famous. It is the main force of the computer book publishing. Unfortunately, now only pays attention to speed, too much attention to the quality, worse, a good "VC technology insider", "VC technology" Inside the "fourth edition compared to the high-end, I have a little thoughts on the hope of hope.
Tsinghua University Publishing House is strict and has maintained a relatively high level. Electronic Industry Press is an old-name publishing house, which has published a lot of good books, like "Windows 95 programming mystery", but recently stopped. The People's Posts and Telecommunications Publishing House has also had a lot of books, especially with the Taiwan Publishing House, but the technical book level is afraid to compliment.
Compared with the top three, the machinery industry publishing house is the most exclusive, but it is the fastest pace. The number of original books introduced in recent years is determined to rank first, and it is increasingly paying attention to quality, especially the latest batch of books, there are several gratifying places: u begins with translator and translation quality. The translator comes from various universities, mainly due to the professor, and the translation quality is quite good;
u Miss material, wide coverage. This batch of books have "TCP / IP Detailed Volume 3: TCP Transaction Agreement, HTTP, NNTP, and Unix Domain Agreement", "Leon's UNIX Source Analysis", "Apache Server Source Analysis", "Linux Core Source Code Analysis" , "Design Mode", Software Demand, "Program Design Practice", "Delphi 5 Development Guide", "Windows Core Programming", etc. Especially in network programming and software engineering, it is a very exciting masterpiece;
u provides a website www.china-pub.com (China Interactive Publishing Network) support. Most of the books on the website have electronic version of the PDF format, whether or not the book is bought, users can download directly.
Today I want to introduce you to "design mode", this book is not thick (less than three hundred pages), but the content is very thick.
"Design mode can be used for object-oriented software"
The English book name of "Design Mode" is "Design Patterns: Elements of Reusable Object-Oriented Software". The book is famous, and it is actually published in 1995, the book has four authors Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, all Ph.D., one is not small. The book is a classic master-oriented classic master, and has been ranking Amazon sales list. Amazon's readers have achieved full score - five stars, experts and scholars have also praised "design patterns", page columns It has been praised:
"This book is what I have read by I have long been reading, and one of the most insightful books - the book is not a general, but combined with examples, establishing a model legal in the best way. status."
--Stan lippman, C Report
"The book is expected to achieve all the results expected. The book gathers the available design of time test. From the years of object-oriented design experience, the book selection 23 models, constitutes the essence of the book. Excellent programmers for excellence should have this "design pattern". "
--Larry O'Brien, Software Developments
"Design Mode" is especially useful in a practical environment, because it is classified a set of well-oriented, expressible object-oriented software design patterns. The entire design model is still very new, the four authors of this book may have occupied this Half of the world's deepest experts, so they define models can be used as a role model for later people. If you want to know how to properly define and describe design patterns, we should be able to get inspiration from them. "
--Steve Billow, Journal of Object-Oriented Programming
"In general, this book expresses a very valuable thing. There is a unique contribution to the field of software design, because it captures valuable experience in object-oriented design and expresss in a concise and reuse form. Come out. It will become a book I am looking for an object-oriented design ideological process: This is the true meaning of multiplexing, isn't it? "
- Sanjiv Gossain, Journal of Object-Oriented Programming
Although this book is published five years ago, the content of software engineering is to be reused. The development of object-oriented technology has envistered the "Software IC" to meet the needs of software development, but this idea seems too far, and in recent years "model" A beautiful solution for "software can be reused". The so-called pattern origin is from urban building, "Each pattern describes a problem that has been repeated around us and the core of the solution. This way, you can use the scheme multiple times without having to repeat labor. "This idea is applied to object-oriented design, refers to summarizing various problems encountered in software design, and proposes design solutions. Experienced designers know that they must start from the beginning. The purpose of this book is to record the design experience of object-oriented software as a design pattern, each design mode system naming, interprets and evaluates an important and repetitive design in an object-oriented system.
"Design Mode" has 6 chapters, the first chapter introduces the concept of design mode, describes the format and classification, explaining how the design mode is applied to solve the problem, and finally gives a lot of suggestions for choice and using design patterns. This chapter is an overview, the need and the next few chapters can be understood.
The second chapter introduces the practical application of the design mode by designing a new document editor, and lists the solutions of one or more design patterns and discusses their advantages and disadvantages. This vivid instance fully shows how the four world-class experts are thinking about design software.
The following three chapter classification details 23 common design patterns, gives the design intent, structure, usage effect, key points and defects, code examples (SmallTalk and C ), in actual software, code examples (SMALLTALK, and C ). Related modes, etc. These models are classified as follows:
purpose
Design Patterns
5 kinds of creation
(Creational)
Abstract Factory
Builder
Factory Method
Prototye
Singleton
Seven types of structural type
(Structural)
Adapter
Bridge
Composite
Decorator
Façade
Flyweight
Proxy
11 kinds of behavior
(Behavioral)
Chain of Responsibility
Command
Interpreter
Iterator
Mediator
MEMENTO
Observe
State
STRATEGY
Template Method
Visitor
The last chapter summarizes the huge impact of design patterns to software design. A few years later proved that "design model" is one of the most important software development books in the past 10 years, the model format and vocabulary given by "design model" have almost become industry standards for software design.
The 23 design patterns provided by this book seem to be less than the number, the latest 2000 published "The Pattern Almanac 2000" is known as more than 700 models. But in fact, the number of patterns is not much, the key is to understand the idea of designing the design model and learn. John Vlissides, one of the author, once a speech, he asked how many people in the audience have seen "design models", almost everyone raised their hands, he asked who can explain how to implement combination mode (23 models One), there are very few people who raise their hands. These 23 models condensed the author's experience and heart. When you have also begun to consider how to apply patterns, how to make your design is simpler and more flexible, and your strength has increased a level in invisible.
"Design Mode" is a must-have book for each software designer. But what I want to explain is that this book is not a book that is easy to read. Some experts even say that a developer needs to spend a year to understand the essence of this book. Learning models need repeated exercises to apply themselves. This is a bit of a bit of learning. Go-style is a summary of the migrant law in a hundred years, but it is not easy to apply. It is necessary to see the appropriate formation of the appropriate style. This book is not reading the high school. Only if there is a considerable basic reader to benefit from this book, readers must first become familiar with object-oriented design languages such as C or Java, and it is best to develop and maintain object-oriented software. Only some of the design experiences can fully understand the design model.
Although the publication of the book is late for nearly five years than the English version, there is always a huge progress. According to reliable news, there are several publishers in China to vigorously introduce foreign technical books, and keep track of foreign countries in the technical publication. This is a great interest in the overall level of the domestic software industry. After all, the latest software technology and development comes from abroad. I hope that the future technical books will no longer have the difference in five years, and I hope that my country's software industry will go overseas. .