Explore the eternal way of software
- Review "The Eternal Way of Architecture" [1]
Writing / transparent
From the pattern
The word "mode" enters China's software developer's field of view, starting from "design mode" [2] book. In September 2000, China's software development book market is far from prosperity today. I believe this book is a new feeling of refreshing. Suddenly saw such a delicate and elegant solution, the developers of the long-term hard exploration design "round poetry" were "mad".
At that time, I am also one of the obsessed with the pattern. I still remember that in 2001, I have repeated such an obsession in communication with my friends. Below is a letter I gave Friend Windy in October 2001:
The enlightenment of "mode-oriented design" is in the 13th Ming. Standing in the Temple of the Changling, a grand architecture, giving me a feeling of pelican. John Vlissides said that Christopher Alexander said that China's architecture gave him a lot of inspiration. Today, I think I caught a little master's feeling. Comparative construction, delicate design, but can make such a perfect building. Undoubtedly this is the success of the design. Under careful observation, finding a variety of buildings, its components - 棂椽 beam columns - are both no blessings. How high is how high! This reflects how mature! ... on the side of the road, some construction workers build a set of antique houses. The dynasty is replaced, and the yin passes, but the workers are still perfectly equipped with buildings in four hundred years ago. Because they live a precise and image pattern language. Although I read Shalloway's Design Patternals Explained has been a period of time. Today, I finally knew why he was so loved to Alexander's architectural mode.
Unfortunately, due to the lack of a cultural accumulation, the readers of "design model" (including me) have suffered from indigestion. I boldly estimate that the negative effects caused by "design model" in China software industry is no less than its positive effect. Alan Shalloway has said that "model" is not limited to "design", or even "design" is the root cause of the most misunderstanding [3]; John Vlissides list "Ten Misunderstandings" in his Pattern Hatching ", In which" mode is not just a solution "[4]. But how many people know, why?
It is because there is a lack of the necessary background knowledge, and Chinese developers understand the pattern is often a one-sided or even wrong. If the mode is only considered a solution, or a summary of a repeated situation, then it is more helpful or guiding significance for software development; if only mode is designed as a UP-FRONT Program, it will even lead to over-engineering. All in all, the top of the model can only count "good things", as for the "eternal way", this overflowing word, even if the most love is like me, I don't dare to export.
Eternal way of architecture
In the face of a discipline with a decades of thought base and more than ten years, we must admit that our shallow is, we must constantly learn. At the same time, we must have our own ideas. Socate said: "We are ignorant, so we have wisdom."
In order to really understand the idea of GOF, in order to truly understand the idea of the pattern, we must first go deep into its ideological basis. So I opened the book in my hand. So I saw a completely different knowledge with my previous understanding, I saw a new world.
Remember one of the above questions? "Mode is not just a solution." What does it mean? Please see the following paragraph:
... The mode system forms a language.
From a mathematical point of view, the simplest language is a system that includes two series: 1. A series of elements or symbols.
2. A range of rules that combine these symbols.
However, ... model is both elements, and rules, so rules and features are not available. Mode is element. Each mode is also a rule, which describes possible arrangements of the elements of other modes themselves. [5]
So suddenly open. From the initial definition, the mode is not just a solution, but a complete language. As a solution, the pattern constitutes the elements of the language; as the language rules, the meaning of the pattern is equally important, even more important. And this area is often overlooked by readers of "design model".
It can be seen from the title of the title, the author uses the model as "the eternal way of architecture" - Is this a bit unemarate? Please see the explanation:
Some people have told us that there is no objective difference between excellent architecture and poor buildings, excellent urban and poor cities.
In fact, the quality of architecture and cities is an objective problem ... but it is easy to understand, why people have so strong that there is no single solid foundation.
This is because the unique center characteristics of this difference cannot be named.
(Why can't this this traity be named?)
Take (this) the unknown trait imagination, and each word we tried is an ellipse. Each ellipse includes this, but each ellipse also includes many other meaning away from this point.
Because each word is always like such an ellipse, each word is always too space, too unclear, the range is too large. None words can express unknown traits, because the traits are too special, the words are too broad. However, it exists in anyone, the most important characteristics of anything. [6]
Obviously, the "good" architecture and "poor" architecture described here do not include "tofu slag project" with defective structure. In structural engineering ensures the stability of the structure, after strengthening, the architect thinks how to make the building really satisfy people. In the book, the author repeatedly stated that although the modern architecture has an extremely good structure, it lacks excellent design, leading to a large number of buildings against people's nature.
We have said "human nature". So where is the "human nature" in the building? It is in a multi-year pattern language. A specific mode, in a specific scenario, supplemented to a particular correlation mode, which is in line with human nature, because the mode is "allowing its own internal force to self-discovery", and the pattern language is energetic, can be self-developing of. Therefore, based on mode design, design reverse impact mode language, this process is "the eternal way of architecture".
Some people here: We have been too used to IT books that fill the ducked teaching methods, we are too used to reading the way "An entry application, a progressive principle, a reference information". Again, when we face Christopher Alexander, we must admit your shallow and ignorance, we must think about our wisdom. The Chinese people are best at logical thinking, and the Chinese people are also most prone to some seemingly meaningful words that are not able to fall into logic. When "the eternal way of architecture" tells you "This center character" cannot be named, are you very habit? Continue to read, let you run a rusty brain.
Back to our model
What I said here is "our model" refers to "mode in software development". Introduce the model in such a multi-architecture, what is the meaning of software developers? Or is it more straightforward, and the mode will be "the eternal way of software"? In this regard, I have no answer, only discussion. But I believe that no one can know the truth, there is discussion, thinking, we can get close to the truth. Since this book is in 1979, the author is an architectian, and the book is naturally impossible to give the answer on software development, and it is still only able to think by the reader. After reading it twice, I have the following points:
l Like the building structure, there are many "internal power" in the software. Like architectural design, software design should also work hard to disclose internal force in the system, so that the system tends to stabilize and is angry. Everything software design should be started.
l Any system requires changing, any system will go to death. As the designer, it should hug changes, use changes, not evapo.
l Good software can only "generate" without "creation", what we can do is to use a relatively good process, try to make the software towards good direction. From this perspective, the shorter development of the iterative cycle is, the better.
l The industrialization of the software makes the software are dead, lose "unknown traits", false, out of reality. By controlling the procedures, the system is controlled, it will only make the system inside the system without any discovery, and finally go to the collapse.
l ...
I seem to have not mentioned mode? Because all books are scheduled. As for how to look at the mode in the field of software, you need you to think about it, you will understand.
Is the pattern of software eternal way? In the end, I still can't give an answer. However, I believe that fully understand the pattern language, fully understand the relationship between pattern language and design, will help us improve design capabilities and help us rich mode language.
Last end
This article is coming soon. As an introduction to a book, I did not introduce it, the quality of translation. Not negligence, it really doesn't have to say. The author Christopher Alexander has been writing this book for 14 years. The translator Zhao Bing has used this book for several years - the IT book we look at, and the translation cycle is very much for one year. Do you still need to doubt the quality of this book?
After reading the first pass, I wrote a reading experience called "" Software Blue Collar "Critique" [7], caught many arguments. Unfortunately, netizens who participate in debate have not understood the background knowledge of that article, so most of the discussion is meaningless. Here, I chose the most meaningful reply to answer, and the right is for this article, and I hope that Mr. Zhang Yan can see this article.
Zhang Yan said to me:
Alexander is an architect, architect cares about how buildings can meet people's needs, that is, the "soft" quality of architecture. As for the "hard" quality of the building, the structural engineer is ensured, the architect has neither abilities, and there is no responsibility for the "hard" quality of the building. Therefore, the status of architects is similar to the overall designer or architect designer in software engineering (now isn't it called Architect?), There is certainly no so-called blue-collar space in this ethnic group. But is the software that has no "hard" quality? Of course, it is, the so-called coding strength is also. Do not crash, no overflow, incorrect operation, etc. These are guaranteed by programmers, and Architect also tested this paragraph. Therefore, the Software Enginner or Programmer in the usual sense is equivalent to the role of structural engineers in the building. These people's way of thinking should be consolidated, and they cannot have divergence, otherwise "hard" quality is not guaranteed. The module is also introduced at this level.
You know, the architect is the most unconstrained man in the construction process. Therefore, if the engineering method is discussed, it should not be used to classify the architect's thinking. There is a "good story" in the history of architecture: Sydney Opera House, the architect's divergent thinking, the structure of the structure, the whole building excerpt super-order! But the revenue after the completion of the building is more than one quantity than the originally expected. Therefore, creativity is "architect's weapons, structural nightmares". The construction and structure is a contradiction between the construction industry, and there are similar problems in software design. Therefore, only the problem of architecture, I personally think it is a bit biased. I am answering here:
Your reply tells me a lot of knowledge that I didn't know before. With these knowledge, I read it again "the eternal way of architecture". And, I think I found the answer.
Architects are not subject to engineering methods, but anyone is constrained by their own pattern language, and the pattern language is constrained by engineering methods. The example of the Sydney Opera is in the expansion mode language, which is very rare. When the mode language is expanded, use these mode language to build buildings, it can get "quality improvement of a number of levels" buildings, and the cost will not "exceed one quantity". I don't know if you have recently been there? Philip Cox designed a community called "Jinqiu Zhichun", using a lot of elements (or model modes) that have been used in Sydney Opera House, I believe that it does not exceed a quantity level of budget, Is it? The reason why there is such a dilemma in the example of the Sydney Opera House, I believe that because the lag of structural projects - people's thoughts are always advanced, we should make lag, stiff physics to adapt to advanced, angry thoughts, Not the opposite, right?
[1] The reader can now buy "A Pattern Language" and its sisters "Building Mode Language" in China's Interactive Publishing Network (http://www.china-pub.com/). "Oregon Experiment" (THE OREGON EXPERIMENT)
[2] Eric Gamma is waiting, Li Yingjun et al., "Design Patterns, Machinery Industry Press, September 2000.
[3] Alan Shalloway online exchange record hosted by Umlchina, April 30, 2002, http://gigix.cool2u.net/download/shalloway.pdf
[4] John Vlissides, "Top Ten Misunderstandings", http://gigix.cool2u.net/download/topten.pdf
[5] Christopher Alexander, Zhao Bo translated, "The Time of Building", Intellectual Property Press, February 2002, page 144 to 145.
[6] Christopher Alexander, Zhao Bo translated, "The Time of Building", Intellectual Property Press, February 2002, page 21 to Page 30.
[7] http://expert.cbs.net/develop/Article/13/13656.shtm