发现一篇有意思的文章,咱们也来讨论一下吧:《探寻软件的永恒之道》(100分)

  • 主题发起人 主题发起人 程云
  • 开始时间 开始时间

程云

Unregistered / Unconfirmed
GUEST, unregistred user!
今天收信时,发现有个朋友给我发了一个连接,就是下面这篇文章。
看了这后认为很有意思,特帖到大富翁,同大伙儿一起聊聊这个。
***********************************************************************
标题 探寻软件的永恒之道 gigix(原作)

关键字 模式 建筑 永恒之道 Alexander GoF 软件工程

探寻软件的永恒之道
——评介《建筑的永恒之道》[1]
撰文/透明
从模式说起
“模式”这个词进入中国软件开发者的视野,是从《设计模式》[2]一书开始的。2000年9月,
中国的软件开发图书市场还远不如今天繁荣,相信这本书给绝大多数人的都是一种耳目一新的
感觉。突然之间看到如此之多精致优雅的解决方案,足以令长期苦苦探索设计之路的开发者们
“漫卷诗书喜欲狂”了。
在那个时候,我也是模式的痴迷者之一。还记得2001年,我和朋友的通信中多次表现出这样的
痴迷。下面是我2001年10月给朋友Windy的一封信:
对“面向模式的设计”的开悟,在十三陵。
站在长陵的绫恩殿,宏大的建筑,给我一种鹈鹕灌顶的感悟。那天John Vlissides说,Christopher Alexander
曾经说中国的建筑给了他很多灵感。今天,我想我抓到了一点大师的感触。
繁复的构造,精巧的设计,却能天衣无缝的组成如此完美的建筑。无疑这是设计的成功。仔细
观察之下,发现对于各种各样的建筑,其组成元件——棂椽梁柱——却都是毫无二致。这是多
么高的复用程度!这体现了多么成熟的设计体系!
……
在公路边,一些建筑工人在建造一组仿古的房屋。朝代更替,光阴流逝,但工人们仍然能够完
美的仿造四百年前的建筑。因为他们一代代流传着精确而形象的模式语言。
尽管我看Shalloway的Design Patterns Explained已经有一段时间,在今天,我终于知道为什
么他如此钟情于Alexander的建筑模式了。

可惜,由于缺乏一种文化的积淀,《设计模式》的读者们(包括我在内)都患上了消化不良。
我大胆估计,《设计模式》在中国软件业造成的负面效果绝不少于其正面效果。Alan Shalloway
曾经说,“模式”并不仅仅限于“设计”,甚至“设计”二字正是导致最多误会的根源[3];
John Vlissides在他的Pattern Hatching中列举了对模式的“十大误解”,其中提到“模式并
不仅仅是一种解决方案”[4]。但是,有多少人知道,为什么?
正是因为缺乏必要的背景知识,中国开发者对模式的了解往往是片面的甚至是错误的。如果把
模式仅仅视为一种解决方案、或者一种反复出现的情况的总结,那么它顶多只对软件开发有一
定的帮助或者指导意义;如果只把模式作为预先(up-front)设计的方案,它甚至会导致过分
工程(over-engineering)。总而言之,模式顶多只能算一种“好东西”,至于“永恒之道”
这种溢美之词,即使最钟情于模式如我,也是不敢出口的。
建筑的永恒之道
在面对一门有数十年思想基础和十余年发展历史的学科时,我们必须承认自己的浅薄,我们必
须不断学习。同时,我们必须有自己的思想。苏格拉底说:“我们无知,所以我们有智慧。”
为了真正理解GoF的思想,为了真正理解模式的思想,我们有必要先深入其思想基础。于是,我
翻开了手上的书。于是,我看到了与我以往的理解完全不同的知识,我看到了一个崭新的世界。
记得上面的一个问题吗?“模式并不仅仅是一个解决方案”。这句话是什么意思?请看下面这段话:
……模式系统形成了一种语言。
从数学观点看,最简单的语言是一个包括两个系列的系统:
1. 一系列要素或符号。
2. 组合这些符号的一系列规则。
然而,……模式既是要素,也是规则,所以规则和要素不可分。模式就是要素。每一模式也是一个
规则,它描述了本身也是其他模式的要素的可能的排列。[5]
于是豁然开朗。从最初的定义开始,模式就不仅仅是解决方案,而是一种完整的语言。作为解决方
案,模式构成了语言的要素;而作为语言规则时,模式的意义同样重要,甚至更加重要。而这个方
面常常被《设计模式》的读者们忽略了。
仅从书名就可以看出,作者把模式当成“建筑的永恒之道”——这种说法是否有点太不谦虚了?请
看作者的解释:
有人已告诉我们,优秀的建筑与低劣的建筑,优秀的城市与低劣的城市之间没有客观的差别。
其实,建筑、城市的好坏之别是一个客观的问题……不过易于理解,为什么人们如此坚信好劣建筑
之别没有单一坚实的基础。
这是因为产生这种差别的独特的中心特质无法命名。
(为什么这种特质无法命名?)
把(这种)无名特质想象为一点,我们试的每个词作为一个椭圆。每个椭圆包括这点,但每个椭圆
也包括许多远离此点的其他的意义。
因为每个词总是像这样的一个椭圆,所以每个词对于作为点的特质来说,总是太空泛,太不明确,
范围太大。没有一个词可以表达无名特质,因为特质太特殊,词太广泛了。但是,它是存在于任何
人、任何东西之中的最重要的特质。[6]
很明显,这里所说的“好”的建筑和“差”的建筑,都不包含结构有缺陷的“豆腐渣工程”。在
结构工程学能够保证结构的稳固、健壮之后,建筑师们想到的便是如何让建筑真正满足人的需要。
在书中,作者多次表示,尽管现代建筑有极其优秀的结构,却缺乏优秀的设计,导致大量的建筑
违背人的本性。
我们已经说到了“人的本性”。那么,建筑中“人的本性”在哪里?它就在数千年流传的模式语
言中。一个特定的模式,在特定的场景下,辅以特定的相关模式,它就是符合人的本性的,因为
模式是“允许其自身内力自我疏解”的,而模式语言又是有活力、能够自我发展的。所以,基于
模式设计、设计反向影响模式语言,这样的过程正是“建筑的永恒之道”。
在此有些个人见解:我们已经太习惯于IT图书那种填鸭式的教学方法了,我们已经太习惯于“一
本入门应用、一本进阶原理、一本参考资料”的读书方式了。再说一次,当我们面对Christopher
Alexander这些人文气息浓厚的技术书籍时,我们必须承认自己的浅薄和无知,我们必须用自己的
智慧来思考。中国人最擅长逻辑思维,是以中国人也最容易被一些似乎有意义的词汇蒙蔽双眼而
陷入逻辑先验不能自拔。当《建筑的永恒之道》在一开始就告诉你“这种中心特质”无法命名的
时候,你是不是很不能习惯?继续读下去,让你快要生锈的大脑运转起来吧。
回到我们的模式
我这里所说的“我们的模式”,是指“软件开发中的模式”。介绍了这么多建筑学中的模式,对
于软件开发者有什么意义吗?或者说得更直白一些,模式会是“软件的永恒之道”吗?对此,我
没有答案,只有讨论。不过我相信,没有人能够知道真理,有讨论、有思考,我们就能离真理更
近一些。
由于此书成于1979年,作者又是一位建筑学家,书中自然也无法给出关于软件开发的答案,仍然
只能靠读者自己去思考。读完两遍之后,我的心得大约有以下几点:
l 和建筑结构一样,软件中亦有诸多的“内力”。和建筑设计一样,软件设计也应该努
力疏解系统中的内力,使系统趋于稳定、有生气。一切的软件设计都应该由此出发。
l 任何系统都需要有变化,任何系统都会走向死亡。作为设计者,应该拥抱变化、利用
变化,而不是逃避变化。
l 好的软件只能“产生”而不能“创造”,我们所能做的只是用一个相对好的过程,尽
量使软件朝向好的方向发展。从这个角度来说,开发的迭代周期越短越好。
l 软件的工业化使软件僵死、失去“无名特质”、谬误百出、脱离现实。通过规程、制
度来控制,只会使系统内力无从疏解,最终走向崩溃。
l ……
我好象没有提到模式?因为整本书讲的都是模式。至于如何在软件的领域中看待模式,那需要你
自己去思考、去体会了。
模式到底是不是软件的永恒之道?最终,我还是无法给出一个答案。但是,我相信,充分理解模
式语言,充分理解模式语言和设计的关系,会帮助我们提高设计能力,也会帮助我们丰富模式语
言。
未完的结尾
本文即将结束。作为对一本书的介绍,我并没有介绍它的著、译质量。不是疏忽,实在是不必说。
作者Christopher Alexander用了14年的时间来撰写此书,译者赵冰用了数年的时间来翻译此书
——我们所看的IT图书,翻译周期极少有达到一年的。还需要怀疑这本书的质量吗?
在读完第一遍以后,我写过一篇名为《“软件蓝领”批判》[7]的读书心得,引起了许多争论。可
惜,参与争论的网友,绝大多数并没有理解我写那篇文章的背景知识,所以大半的讨论都没有意义。
在此,我挑选最有意义的一个回复来回答,权当为此文作结,也希望张岩先生能看到这篇文章。
张岩对我说:
Alexander是个建筑师,建筑师关心的是建筑如何能符合人的需要,也就是建筑的“软”质量。至
于建筑的“硬”质量,是由结构工程师来确保的,建筑师既没有能力,也没有责任对建筑的“硬”
质量负责。因此建筑师的地位类似于软件工程中的总体设计师或曰架构设计师(现在不是也叫
Architect了么?),在这一族群里当然没有所谓蓝领的容身之地。但软件就没有“硬”质量的要
求了么?当然是有的,所谓编码强度是也。不死机、不溢出、不误操作等等。这些是由程序员来保
证的,Architect同样也管不到这一段。因此通常意义上的Software Enginner或者Programmer相当
于建筑中的结构工程师的角色。这些人的思维方式应该是内聚的,不能具有发散性,否则“硬”
质量无从保证。而模块也是在这一层次上才开始引入的。
要知道,在建筑开发过程中,建筑师是最不受工程化方法约束的人。因此如果讨论工程化方法,
是不应该用建筑师的思维方式去类比的。建筑史上有段“佳话”:悉尼歌剧院,建筑师的发散性
思维害苦了结构师,结果整个建筑超预算超了一个数量级!但建筑落成之后的收益却比原先预计
的高了一个数量级。因此创造性是“建筑师的武器、结构师的噩梦”。建筑与结构是贯穿建筑界
始终的一对矛盾,在软件设计中同样存在类似的问题。因此仅仅以建筑学的视角看问题,我个人
以为是有点偏颇的。

我在此回答:
你的回复告诉了我很多以前不知道的知识。带着这些知识,我又读了一遍《建筑的永恒之道》。
并且,我想我找到了答案。
建筑师不受工程化方法约束,但任何人都受自己的模式语言约束,而模式语言本身是受工程化方
法约束的。悉尼歌剧院的例子,是在扩充模式语言,这是非常罕见的。当模式语言扩充之后,再
利用这些模式语言来建筑,就能得到“质量提升了一个数量级”的建筑,成本却不会再“超一个
数量级”。不知道你最近去过大运村那边没有?Philip Cox在那边设计了一个名叫“锦秋知春”
的小区,采用了很多悉尼歌剧院中曾经采用过的元素(或者叫模式),相信它的成本是不会超过
预算一个数量级的,对吧?之所以在悉尼歌剧院的例子中出现这样的窘境,我相信是因为结构工
程的滞后——人的思想总是超前的,我们应该让滞后、僵硬的物理去适应超前的、有生气的思想,
而不是相反,对吗?
--------------------------------------------------------------------------------
[1] 现在读者可以在中国互动出版网(http://www.china-pub.com/)购买《建筑的永恒之道》一
书及其姐妹篇《建筑模式语言》(A Pattern Language)和《俄勒冈实验》(The Oregon Experiment)
[2] Eric Gamma等著,李英军等译,《设计模式》(Design Patterns),机械工业出版社2000年9月。
[3] 2002年4月30日UMLChina主办的Alan Shalloway网上交流记录,http://gigix.cool2u.net/download/Shalloway.pdf
[4] John Vlissides,《模式的十大误解》,http://gigix.cool2u.net/download/topten.pdf
[5] Christopher Alexander著,赵冰译,《建筑的永恒之道》(The Timeless Way of Building),知识产权出版社2002年2月,第144页到第145页。
[6] Christopher Alexander著,赵冰译,《建筑的永恒之道》(The Timeless Way of Building),知识产权出版社2002年2月,第21页到第30页。
[7] http://expert.csdn.net/develop/Article/13/13656.shtm
----------------------------------------------------------------------------
对该文的评论 人气:7404
antpower(2003-5-26 14:06:11)
本人没有学过建筑,但是本人学过船舶工程,我想造船绝对比建筑更具有系统性。
对于这里一再颠倒的建筑与模式的关系,我不大认可。
模式不是解决方案,模式似乎更趋于形式---就是什么地方可以怎么样的构造,用什么样的样式构造。
建筑的关键是设计图纸和施工图纸。设计的时候考虑到施工,施工的时候可以验证设计。
设计中最主要的是受力分析,结构分析,从而得出这个建筑各个部位的用料与结构。
至于各个部位该是个什么样子,可以参考许多的样式来确定。
有了设计的图纸才有施工的图纸,到底如何施工最有效,快速,最好的保证工程质量这由建筑施工方设计吧。
我想大家都知道建筑的设计者和建造者该是不同的人。
总觉得,太多的牵强附会不利于我们自己的思想发展。
对于软件工程,该如何更大程度的统一好设计图纸和施工图纸,如何减少这两者之间转化的代价,
这才是我们应该努力的地方吧。
----------------------------------------------------------------------------
taopi2001(2002-12-29 23:51:41)
C.亚力山大写了一本《建筑的永恒之道》,而今天看到了gigix的这篇《软件的永恒之道》。
在评论中有人说,这根本是空想,不切实际,探索软件的永恒之道根本就是不可能的。我想这些讨
论也许确实算不了什么,不过拙劣的评论总比什么都没有好,至少大家开始关注、考虑这个问题,
并且都意识到自己的不足。在此的讨论是想让更多人产生这个思考,开始意识到一些以往忽视的问题。
我赞成gigix的作法,我们从没有想过就地解决,“在线成佛”。看过《建筑的永恒之道》并有些理
解的人明白永恒之道的最后一课是无我心境,这本身就意味着探索的路是无尽的,因为更本不会有人
能达到那种纯粹的境界。但是,没有确切的结果我们就不需要努力了吗?学过运筹学的人知道,很多
优化问题没有最优解,只有较优解。那么照这些人的想法,我们学习线性规划干什么,优化求解又有
什么意义?是的,没有结果并不能说明就不能使它更好。
“学而不思则罔,思而不学则殆。”学习并思考,有助于提炼、归纳自己的思想,而交流则能够产生
思想的碰撞。如果不积极思考,一切随波逐流,那样的话和机器有什么不同,而且那种作法不会改善
现有的任何东西。
所以,不但有“软件的永恒之道”,还有“数学的永恒之道”、“物理的永恒之道”、“学习的永恒
之道”、“思考的永恒之道”、“锻炼的永恒之道”、“辩证的永恒之道”……
再说说我对这篇文章的看法,其实无论从建筑的角度,还是从生物学的角度来看软件,都有其道理。
从建筑学的角度,就是大家说了好多的模式了;而从生物学角度,在软件开发管理当中的适应性模型,
就是顺应达尔文“适者生存”的观点。
然而回到《建筑的永恒之道》,这本书与其说是建筑学著作,不如说是一本哲学经典。
一篇amazon上的评论说得很好——Changes how you look at everything(改变你看待事物的方式,
August 5, 2000 Reviewer: Leonard R Budney)。其中有一段内容:In fact, the book's main idea
is much more powerful than that. It applies to almost every aspect of life, not just to
architecture. When a situation makes us unhappy, it is usually because we have two conflicting
goals, and we aren't balancing them properly. Alexander's idea is to identify those
``conflicting forces'', and then
find a solution which brings them into harmony. It's a simple
concept, but once you appreciate it you realize how deep it really is.
中文大意:实际上,这本书有着更深的含义,可以应用到生活的各个方面,不光是建筑。当你作某件事
情不顺心时,通常是因为其中存在着两种相对斥的作用力,而你没有平衡好它们。亚历山大的观点是鉴
别出他们,并找出方法使他们平衡、和谐。这个概念很简单,但只有在你感悟到一些时,才能认识到它
内在的深意。
所以,我想在讨论这个问题之前,或者可以边讨论边思考,如何将这种观点应用到平常的为人处世当中
去,为此我们不妨先营造一个和谐、积极的讨论氛围。而这个过程所需要的是体验,来自各个方面的。
最后,我在这里引用Chinese Psychologic Online中国心理热线的斑竹郭卜乐的一段话:“心理不同于
思想。人的心理没有对错没有雅俗,而人与人之间只有远近、喜厌和爱恨不存在谁是谁非。人的一生其
实就是一个不断体验、不断适应、不断调整的过程。您需要了解的是,您的心理是否积极、和谐,是否
更易获得别人的亲近,是否能让您觉得生活的美好。
心理并不是孤立存在的,人的生理基础和外界刺激无时不刻地影响、改变、并形成或结构人的心理。人
和环境是互动的。思想是内容,心理是形式或途径,意识正是通过积极地调整自身、与环境适应体现出
人作为万灵之长的先进和顽强。 ”
----------------------------------------------------------------------------
xzh000(2002-12-29 21:45:33)
什么是软件?
----------------------------------------------------------------------------
chen_guo_quan(2002-12-4 13:49:10)
to gigix:
不知道您是否承认生命是有限的,如果你不认为生气是有限的,我确实无话可说!
假如,仅仅是假如!!!
假如您认为生命是有限的,那么我想请教,有限的生命能够探索无限的永恒吗?
假如生命不能,那么,我们为什么还在此探索软件的永恒之道?
假如生命能, 那么,为什么有限的生命能探索无限的永恒,而一种非永恒的理念(例如:马克思主义),
不能断定一种永恒是否存在.
在下青少无知,恳请勿见怪!!!
----------------------------------------------------------------------------
jack0707(2002-9-29 15:44:10)
本质是无法得到的,随着我们对问题的认识,他时刻在变。
我们所能坐的是从经验中总结规律,从而避免错误发生。
此间我们可以借鉴其他系统得到启发,如何借鉴,和一个人的认识水平密切相关.
以上有些抽象,下面具体讲个例子,如果我们能把例子讲全,那是我的梦想。
一年前,我们开发一套图形系统,为了设计的完美,我们图形的坐标坐的很精细,当然使的也很精细。
一年后,当系统庞大到几十万条记录时,速度慢的简直无法让人忍受。
此事惊动了老板(电力博士)
老板的第一句话是:凡是工程,都存在误差的问题,你们是如何认识误差的?
老板的第二句话比上句具体:盖房子,你们是用砖,还是用集成块?
结果引入了误差,速度提高了,程序也容易编写了。
----------------------------------------------------------------------------

jack0707(2002-9-29 15:13:37)
对问题认识程度的不同,导致程序编写的不同。
他山之石可以攻玉,确实可以借鉴其他系统来帮助认识问题。
但如何借鉴却因人的认识水平来定。
举例:一年前我们坐一套图形系统,为了尽量坐的完美,我们坐的太精细。
一年后,当系统庞大到几十万条记录时,速度慢的无法让人忍受。
此事惊动了老板(电力系统博士)。
老板的第一个问题是 :既然是个工程问题,那第一点就要解决误差问题,你们是如何认识误差的?
老板的第二个问题是个提示:盖房子,是用砖还是用集成块,你们说如何选择?
结果误差引入到图形处理中,数度自然上去了。
----------------------------------------------------------------------------
LANDFISH(2002-9-15 0:04:39)
奇怪,为什么加不了评论?
----------------------------------------------------------------------------
LANDFISH(2002-9-15 0:03:45)
看了前面几位前辈们的评论,感觉眼界开阔了不少。有人对gigix的思考不屑,觉得是空想,我却认为很有意思。
我们应该多做一些实践是没错,但是如果只有实践而没有总结上升到理性思维的层次,是不会有大发展的。我觉
得实践和所谓的“空想”之间的关系就像佛教中“入世”与“出世”一样,一个佛学大师只有经过“入世”才能
有所谓的“出世”,但如果只有“入世”就只能叫做一个佛教徒,编程也一样,只有在实践以后跳出来看一下,
才能够进入更高的层次。
----------------------------------------------------------------------------
LANDFISH(2002-9-15 0:02:48)
看了前面几位前辈们的评论,感觉眼界开阔了不少。有人对gigix的思考不屑,觉得是空想,我却认为很有意思。
我们应该多做一些实践是没错,但是如果只有实践而没有总结上升到理性思维的层次,是不会有大发展的。我觉
得实践和所谓的“空想”之间的关系就像佛教中“入世”与“出世”一样,一个佛学大师只有经过“入世”才能
有所谓的“出世”,但如果只有“入世”就只能叫做一个佛教徒,编程也一样,只有在实践以后跳出来看一下,
才能够进入更高的层次。
----------------------------------------------------------------------------
juyib(2002-7-3 6:05:26)
张岩的话不错,我觉得你过于依赖这个理论了,什么都从这儿出发。要是讲模式的话,建议看看格式塔的心理学
著作,相信会有启发的。
----------------------------------------------------------------------------
jiale(2002-6-28 18:14:09)
寻求人生的本质 导致了无数才华横溢 的人选择了死亡,
寻求软件的永恒之道 导致了 -------------------?
我还真不明白这个世界上是否有什么永恒之道,
也许这个世界本来就是虚无的,有了那么几个唧唧喳喳的声音后,又陷入了虚无。。。。。。。
----------------------------------------------------------------------------
Feicker(2002-6-28 10:48:20)
一堆垃圾,有时间好好学学写程序,这种自以为得道成仙的人物多半是半仙,误人啊!!!!
----------------------------------------------------------------------------
xiaoduan(2002-6-27 17:46:53)
勿在浮砂筑高台,弟兄们,不要把青春耗费在这些无聊的事情上了
----------------------------------------------------------------------------
liujiazhuang(2002-6-27 17:46:25)
个位拜托!不要以为看了几本有关建筑理论的书籍就认为理解了建筑、结构。Christopher Alexander仅仅是
建筑行业里的一家之言。不可否认对元素的结构和机理作以研究是对建筑很好的剖析,但是作为世界上最古
老的行业,其中蕴涵的更多是有关人文,科学,宗教,政治等多方面的艺术和技术。用软件来比喻建筑好像
现在时间远远未到。其中更重要的是其整体概念和功能要求。就像拿人工智能和人本身来比一样,IT行业还需
要有很长的路要走。
作为计算机行业,可喜的是在其开始就以拿来主义为先导,看看我们机箱的后面,串口,并口。。。这也是为
什么这个行业发展快的原因。吸取他人经验是好事,但是别吹大了。
----------------------------------------------------------------------------
littleblackcat(2002-6-27 11:28:01)
to scripting:
讨论问题最忌讳想当然,如果没有看过《建筑的永恒之道》一书,在这里讨论是意义不大的,gigix的这篇文
章就是对于《建筑的永恒之道》的读后感想,如果你看此书的话,相信肯定不会说出这等话来,建议看看该
书的 空间的分化一章
----------------------------------------------------------------------------
scripting(2002-6-27 10:40:20)
凌晨2点写了不少,但是3次都没有贴上去,遗憾!
这个讨论把软件和建筑从“模式”上联系在了一起,而我多少年来喜欢把软件和生物去联系。软件工程的
仿生学才是真正的出路。建筑是一个堆砌过程,目标/用途/规模/寿命/可见/可控等特征都软件工程来的明
确。它的构造是设计/材料/施工等概算/预算/施工组织/成本核算/决算的过程。而软件呢?现在的软件似
乎也是堆砌过程,但是实质应该是繁衍过程-----细胞裂变过程------DNA体系的构造过程。这个并不悬妙,
无论是软件宏观世界还是微观世界都展示着这个过程,只是人们不这么去认识和分析罢了。相信软件发展
的轨迹还在继续这么走!
当一个细胞产生的时候,预示着一个生命机体的可能性!
----------------------------------------------------------------------------
actor(2002-6-27 9:18:05)
谈到可靠性和永恒的还是要靠数学的函数的确定性(具体叫什么忘了,大家可以参考《净室软件工程》一书
),有完整的可验证的方法和手段,剩下就是分析的问题了。
对于mis系统,有变态的客户要求的系统不属于此列,呵呵
----------------------------------------------------------------------------
actor(2002-6-27 9:12:15)
模式的目的是重用,切实有效的东东拿过来用一用。
《设计模式》着眼点是怎样构造灵活有效的软件体系结构,是很多人在作软件系统中总结的经验,至于大家领
会多少主要看实际使用多少。
如果谈到道,老美的说法就有点肤浅了,偶的编程之道在于走两个极,下到指针、地址上到对象、框架、模式,
其实归根到底对象的模型什么的不就是系统维护的一个地址表吗,得到一个指到它的指针就可以访问了,用表作
缓冲来实现多态和继承,模式也就是利用多态和继承作了点文章。
别信那一套,从两个极看问题,那些东东就那么回事,没什么神秘的,不需要炒作!
----------------------------------------------------------------------------
lolin(2002-6-27 2:19:42)
捏着鼻子总算把全文看完了,有些话早憋在心里不吐不快!
1、停止空想、注重实践
谓之“空想”可能言重了!但我敢说:对读此文的99%
的程序员而言,一场几乎关于软件学本质的讨论都太泛了。
这无异于对一只饥饿的蚂蚁说:“看!顺着这个方向走,你
就能回到起点!”
我决不是说不要思考、不要模式。其实我也是一个
“模式”拥护者,也有很多自己的想法。我反对的是这
场讨论的的发展方向。以Vlissides先生十几年对
“模式”的研究,尚不能对他下一个完整的定义。
而我们却讨论起“软件的永恒之道”来了。对不起,
我觉得我们成功的机会不大!

最近在CSDN上以读了好几篇这类的文章了,使我不禁
想:
2、为什么关于“??本质”式的讨如总能煽起一股风潮呢?
说起来也很奇怪:从未听大师们说过这类话题。如:
写《时间简史》的人就拒绝回答时间是什么..... 莫非越是
在群山峻岭中跋涉过的人们就越迷于“本质”?
现在我终于顿悟了!说得不客气一点:
“探寻软件的永恒之道”是没有答案的,苦苦追寻的人们
不过是害怕付出艰苦的努力,希望就地解决,“在线成佛”而已!
----------------------------------------------------------------------------
scripting(2002-6-27 2:01:38)
这个讨论把软件和建筑相比大概缘于"模式",而我长期以来的思考是把软件和生物学来对照.本质上,建筑是
堆砌过程,尽管有着风格/模式/文化/艺术魅力...,软件呢?软件的道路看似靠堆砌,本质是繁衍.于是我认为,
面向系统分析(建筑设计)的软件开发过程和目标将是没有出路的.一个投资3000万元的建筑从设计到竣工有
着明确的用途和使用寿命,这个非常容易理解.而一个软件工程就不那么简单了.因为人类的思想行为和软件
实施相差太远.所以我的观点,软件永恒之道不是从砖瓦说起,而是从细胞说起.当一个完整细胞诞生的时候,
预示着一个生物机体的设计过程完成,而细胞裂变的过程展示着软件的生产(产生/创造)过程.这并不悬妙,
软件道路其实已经在走,这个过程在宏观世界和微观世界都那么精彩,然而还远没有达到细胞/裂变的那种生
物工程的规模.砖瓦木材成为建筑是设计师赋予了灵魂,却远远不能和软件工程相提并论,因为结构/模式是看
的见的.软件工程的结构/模式,将是DNA链.软件在控制计算机破译生物DNA,但是不要忘记构筑自己的DNA体系,
这是我心中的永恒之道.
----------------------------------------------------------------------------
scripting(2002-6-27 1:53:32)
这个讨论把软件和建筑相比大概缘于"模式",而我长期以来的思考是把软件和生物学来对照.本质上,建筑是堆
砌过程,尽管有着风格/模式/文化/艺术魅力...,软件呢?软件的道路看似靠堆砌,本质是繁衍.于是我认为,面向
系统分析(建筑设计)的软件开发过程和目标将是没有出路的.一个投资3000万元的建筑从设计到竣工有着明确
的用途和使用寿命,这个非常容易理解.而一个软件工程就不那么简单了.因为人类的思想行为和软件实施相差
太远.所以我的观点,软件永恒之道不是从砖瓦说起,而是从细胞说起.当一个完整细胞诞生的时候,预示着一个
生物机体的设计过程完成,而细胞裂变的过程展示着软件的生产(产生/创造)过程.这并不悬妙,软件道路其实已
经在走,这个过程在宏观世界和微观世界都那么精彩,然而还远没有达到细胞/裂变的那种生物工程的规模.砖瓦
木材成为建筑是设计师赋予了灵魂,却远远不能和软件工程相提并论,因为结构/模式是看的见的.软件工程的结
构/模式,将是DNA链.软件在控制计算机破译生物DNA,但是不要忘记构筑自己的DNA体系,这是我心中的永恒之道.
----------------------------------------------------------------------------
scripting(2002-6-27 1:53:02)
这个讨论把软件和建筑相比大概缘于"模式",而我长期以来的思考是把软件和生物学来对照.本质上,建筑是堆砌
过程,尽管有着风格/模式/文化/艺术魅力...,软件呢?软件的道路看似靠堆砌,本质是繁衍.于是我认为,面向系
统分析(建筑设计)的软件开发过程和目标将是没有出路的.一个投资3000万元的建筑从设计到竣工有着明确的用
途和使用寿命,这个非常容易理解.而一个软件工程就不那么简单了.因为人类的思想行为和软件实施相差太远.
所以我的观点,软件永恒之道不是从砖瓦说起,而是从细胞说起.当一个完整细胞诞生的时候,预示着一个生物机
体的设计过程完成,而细胞裂变的过程展示着软件的生产(产生/创造)过程.这并不悬妙,软件道路其实已经在走,
这个过程在宏观世界和微观世界都那么精彩,然而还远没有达到细胞/裂变的那种生物工程的规模.砖瓦木材成为
建筑是设计师赋予了灵魂,却远远不能和软件工程相提并论,因为结构/模式是看的见的.软件工程的结构/模式,
将是DNA链.软件在控制计算机破译生物DNA,但是不要忘记构筑自己的DNA体系,这是我心中的永恒之道.
----------------------------------------------------------------------------
carlton(2002-6-26 18:22:35)
惭愧,惭愧,小弟一向非常喜欢做软件,但看到个位大师发言,竟插不上半句,唯有目瞪口呆。
不知何日能于个位高人一起华山论剑。
----------------------------------------------------------------------------
banq(2002-6-26 17:04:16)
建筑和软件某些地方是可以来比喻的
特别是中国传统建筑,那是很讲模式的,这些都是传统文化使然,比如京剧 一招一式都有套路;中国画,也有套路,
树应该怎么画法?有几种画法?艺术大家通常是创造出自己的套路,比如明末清初,水墨画法开始成熟,这时画树就
不用勾勒这个模式了,而是一笔下去,浓淡几个叶子,待毛笔的水墨要干枯时,画一下树干,这样,一个活生写意的
树就画出来.
我上面这些描述其实都是一种模式,创建模式的人是大师,但是拘泥于模式的人永远是工匠.
再回到传统建筑中,中国的传统建筑是过分注重模式了,所以建筑风格发展不大,基本分南北两派,大家有个感觉,
旅游时,到南方,你发现古代名居建筑都差不多;北方由于受满人等少数民族的影响,在建筑色彩上有些与南方迥
异,但是很多细节地方都差不多.这些都是模式的体现.
由于建筑受材料和功用以及费用的影响,所用模式种类不多,这点是和软件很大的不同.
正因为这点不同,导致建筑的管理模式和软件的管理模式就有很多不同, 有些人认识不到这点,就产生了可以大
量使用"软件蓝领"的想法,因为他羡慕建筑中"民工"的低成本.
要知道软件还有一个与建筑截然想法的责任和用途,那就是:现代社会计划感不上变化,竞争激烈,所有一切变化
莫测,要应付所有这些变化,首推信息技术中的软件,只有软件能够帮助人类去应付各种变化.而这点正好与建筑
想反,建筑是不能帮助人类去应付变化的,(它自己反而要求稳固,老老实实帮助人遮风避雨,总不能叫人类在露天
或树叶下打开电脑编软件吧).
软件要帮助人类去应付变化,这是软件的首要责任,所以,软件中模式产生的目的就和建筑不一样了,建筑中的模
式产生可以因为很多原因:建筑大师的创意;材料的革新等;建筑中这些模式一旦产生,容易发生另外一个缺点,就
是有时会阻碍建筑本身的发展,因为很多人会不思创造,反复使用老的模式进行设计,阻碍建筑的发展.
但是在软件中,这点正好相反,软件模式的产生是因为变化的东西太多,为减轻人类的负担,将一些不变的东西先
用模式固化,这样让人类可以更加集中精力对付变化的东西,所以大量反复在软件中使用模式(我个人认为这样的
软件就叫框架软件了,比如J2EE),不但没阻碍软件的发展,反而是推动了软件的发展.因为其他使用这套软件的人
就可以将更多精力集中在对付那些无法用模式的应用上来.
想不到一下子自己写这么多,自己主页有多了篇文章啊.呵呵(jdon.com)
----------------------------------------------------------------------------
SnHnBn(2002-6-26 14:00:32)
为什么要拿建筑跟软件来比呢?根本就不能比!
就建筑来说,众所周知的重点和难点在于设计。建筑原料不是非常多而且大部分都是同等结构的钢筋、水泥、砖瓦等。
但是软件,设计固然是难点,但是其基本原料可不是可以少得跟建筑常用原料种类来比的,不是简单的几个组件或模块
就可以拼得起来的。
如果一栋大厦的每个砖块、窗口、每个阶梯都做成不一样的,那我看建筑业跟软件业相比也好不到哪里去。
企图把软件当作建筑来搞,是非常错误的做法。
----------------------------------------------------------------------------
pursuer_zhao(2002-6-26 13:30:58)
gigix起码称得上是一个思想家
----------------------------------------------------------------------------
jiale(2002-6-26 12:42:57)
我记得好象有个人说了:软件设计说到底,还是人类思维的表现,建筑艺术也是人类思维的一个体现,我觉得张岩 说的有道理,
人类对建筑的研究了几千年,而软件才区区几十年,不能想比的,如果软件发展了几千年,而建筑才几十年,我想人们一定在研
究建筑的永恒之道了~~
----------------------------------------------------------------------------
gigix(2002-6-26 12:20:54)
to chenxix:
我已经说过:在软件领域,我们并没有找到纯粹理性的思维方式,所以我们的理性思维尚处于一个黑暗而盲目的阶段。人之患在
好为人师,尤其是在没有普遍的思维方法的时候。正如标题所写,我的整篇文章只是在“探寻”,并没有打算向任何人灌输任何
东西。而您却对我如此斥骂,并打算将您的观点灌输给我,这是为什么?
(想起那天的“三人聊斋”。黄健翔说:“我只是说我自己的观点,没打算把你怎么怎么着。就算你认为我说得不对,也别骂我,
别老想着把我怎么怎么着,因为你说的也不一定就对。”)
另外,您的无知和您的勇敢同样令我钦佩。莫非真是“无知者无谓”?在您短短的几句话中,对于模式的无知与谬误已经一览无
遗。不过我不愿戳人短处,还是拿您擅长的马克思主义哲学来请教您一个问题吧:请问马克思主义哲学本身是永恒的吗?假如它
是,那么您所说“没有永恒之道”岂不是自相矛盾?假如它不是,那么凭一种非永恒的思想又怎能断定永恒之不存在呢?在下愚
钝,还望见教。
----------------------------------------------------------------------------
anrxhzh(2002-6-26 11:31:19)
建筑共软件一道,理性与狗屎齐飞。
----------------------------------------------------------------------------
chenxix(2002-6-26 11:00:38)
狗屎!模式固然有可取之处,但是只有我们真正用上它发挥出效果我们才能真正的说她好,而不是用一些无聊的个人的胡思乱想
来证明她如何如何!
我想与其发表这种无聊的文章,不如谈谈大家在应用模式时的收获,让我们感受到其真正的价值!让大家能够正真从结构化程
序设计全面转向面向对象的程序设计,这才是实质!
去探寻什么永恒之道,这是无知的人才做的事情。这个世界有永恒之道吗?连起码的马克思主义哲学都不懂!
----------------------------------------------------------------------------
gigix(2002-6-26 9:17:58)
几句题外话:
最近在看《纯粹理性批判》。人的思维方式总是从实验中得到经验,然后用理性归纳总结经验,再用经验证明理性,
如是循环往复。数学与物理学则超越此一桎梏,发展出了自己的思维方法,所以能有长足的进步。而这一进步并非
因为“理性-经验”的必然结果,而是由先天知识、悟性得到,也即进入“纯粹理性”之境界。这听起来有点metaphysics
的味道(实际上的确就是metaphysics),但是,惟有承认“纯粹理性”之存在,并依赖纯粹理性思辩,才能超越经
验的桎梏,得到普遍的原理。
至于软件业,几乎所有人都还在“经验”中打拼,对经验进行理性归纳总结者尚属凤毛麟角,更毋庸妄谈纯粹理性
和metaphysics了。诚如张岩兄所说:除了时间之外,没有其他任何因素可以弥补得了。若是机缘巧合,50年内能有
软件业之康德横空出世(50年能积累足够的经验供他作纯粹理性思辩吗?我怀疑),吾人尚能一窥普遍原理之庐山
真面目。否则,余与岩兄都只好抱憾了。
----------------------------------------------------------------------------
zhangyan_qd(2002-6-25 18:47:30)
我就是张岩,感谢gigix让我跟着露了一回脸:)
首先声明,我其实和gigix在大方向上没有分歧,都认为软件业应当从建筑业的发展历程中吸取营养。但是gigix更
多的是从建筑学的角度考虑问题,而我更多是从工程学角度考虑问题。
曾经很投入的考虑“软件和建筑之相似”的问题,也曾经极力试图证明重型方法在建筑业的成功同样适用于软件业。
在和gigix有过几次接触与对话之后,特别在看了这篇文章之后,我突然感到一种深深的失落和自我厌恶:这个问题
真的这么重要,以至于需要专门花时间去讨论吗?
建筑和软件有千万种不同,但最根本的一个不同是什么?不是技术含量,也不是劳动对象,是时间!建筑业发展了
几千年,而软件只有区区几十年的时间。这中间的差别,除了时间自己之外,没有其他任何因素可以弥补得了。
所以在现阶段,关于建筑和软件有何相似之处的讨论不可能得到有意义的结果,就象已经毕业的你语重心长的告诉
大一的学弟不要热衷社团,要好好学好专业课一样,他不会理解的,不会听的,永远不会!因为时间在你和他之间,
划上了一道填不平的鸿沟。除非等他自己毕业了,摔过你摔过的跟头、吃过你吃过的苦头,他才会理解你说的是金
玉良言,然后他会告诉他的学弟,但他的学弟同样不会听......相差4年尚且如此,何况上千年!!
软件要发展,也要经历建筑经历过的曲折、在工程化的过程上摔建筑摔过的跟头。时至今日,建筑业内部关于建筑
是艺术还是工程的争论还没有休止过,软件这个小弟弟?早啦!
这个争论真的是无味的,也许100年后再回过头来看这本书,我们才会真正有感觉。不过到那时,我和gigix都已经
不在了......
----------------------------------------------------------------------------
littleblackcat(2002-6-25 15:19:20)
不知你看过《建筑的永恒之道》没有,如果看过了相信不会做出这样的类比。模式和分工没有任何关系,每一个人都
是建筑师,只不过他的能力受制于他自己的模式语言。你理解的模式越多,实践越多,你的能力就会提升,因为模式
已经融合到你自身的思维中,丰富了你用于表达你构建思想的语言(包括要素和规则)。模式体现出了一个和它所依
存的环境,包括自然环境和人文环境,最为融洽的配合,很自然的和周围环境表现为一个整体而不显得突兀,当然要
求模式的使用者必须理解这些环境。在这个层面上软件模式又有什么不同呢?
----------------------------------------------------------------------------
_i_(2002-6-25 14:59:54)
我没讲完话,也讲不清楚,此模式非彼模式。层次上不一样。
其实这样的类别更加恰当一点
软件架构师相当于规划师,程序员相当于建筑师和结构师的组合体(耿偏向于结构师),如果采用标准的土建设计
流程的话,那么和软件行业很像,不过土建行业经常是有时建筑师把规划师的活也作了,也挺像,我们现在大多是
分析、设计、编码都干。
软件工程缺乏乡土建设计行业那样的评审、验收等环节,也缺少设计规范、标准等。所以效率低下,成功率亦低。
----------------------------------------------------------------------------
littleblackcat(2002-6-25 12:45:54)
“模式是个很难在建筑与软件取得共同点的概念,如果说人们还能接受卢浮宫前玻璃架的话,那么如今四处可见的
金字塔就是对视觉的蹂躏。”
那是他们把模式用错了,没有结合周围环境,没有理解文化氛围,在软件中这种情况亦有不少!
----------------------------------------------------------------------------
_i_(2002-6-25 12:33:13)
拿几十年的软件和几千年的建筑相比,还是有很大差别。
结构设计的日趋成熟还是不能满足人们在外在形式方面的贪得无厌。

拿软件架构师和建筑师相比是很不恰当的,软件架构师和编码人员是纵向的、逐步深入的关系,
而建筑师和结构师基本是横向的、并行的关系,很多时候建筑师必须反过来满足结构师的设计要求。
模式是个很难在建筑与软件取得共同点的概念,如果说人们还能接受卢浮宫前玻璃架的话,那么
如今四处可见的金字塔就是对视觉的蹂躏。
----------------------------------------------------------------------------
ketao_78(2002-6-25 10:57:09)
真是写的不错,鼓掌~!!
----------------------------------------------------------------------------
babysloth(2002-6-25 10:40:01)
好!写得好!
这次的评论不会又被删了吧?

 
以上全为文章中的内容,
其中有作者介绍的相关的几本书,
可不要怀疑我在给别人作广告呀。
不过,那几本书到挺值一看的。
 
搬个凳子 听课...
 
那我支个帐篷摆个水床...
 
>>对“面向模式的设计”的开悟,在十三陵。
>>站在长陵的绫恩殿,宏大的建筑,给我一种鹈鹕灌顶的感悟。
我还有鹌鹑灌顶的感觉呢。
 
我觉得其中说到的我们缺乏文化的积淀颇让人有感触,做程序的也需要一些文化的积淀,
我觉得这样才有可能出精品。其实大师们都是很博学的。
偶随便说两句,然后听课,呵呵
 
叫了丽华快餐,嘻嘻,边吃边看!
 
我不懂!
[:(!]

 
这么长,头大!
不过建筑现在的确比软件工程高明,我没见过没有图纸的施工队,但确常常见到没有
任何文档的软件设计人员
 
的確是好東西,好好看看;思考!
 
谁知道呢! It's CHINA!
 
看看人家文章后面跟的那些评论,那叫文化!
看看dfw里面大家跟的贴字,这叫灌水。
我无语中,也许大家都是搞技术的,强人所难了。
 
此鸭头非彼丫头,头上哪讨桂花油。
 
不要总以我们自已固化了的思维方法来思考问题!
也不要总用我们自已固化了的思维方式来判定别人理论的对错!
这个世界,我们不懂的太多,我们判断是非的能力,也仅仅局限于我们自已修养和理解力!
从作者的思路,暂时忘记自已的标准来看别人的思想,反而能得到不同的感受!
-----------------------------------------------------------
>>和建筑结构一样,软件中亦有诸多的“内力”。和建筑设计一样,软件设计也应该努
力疏解系统中的内力,使系统趋于稳定、有生气。一切的软件设计都应该由此出发。

我认为任何东东全是物质,甚至包括我们所说的精神(不一定存在于我们的空间)。不同的物质的组成后所起的作用有很多是我们大家不可想像的!几百年前的人怎么能理解我们现代的发明家(爱因斯坦,牛顿)所发现!我们现在又怎么能理解未来发明家的发现呢!
我们软件的设计,就是尽量使我们的产品更趋于合理,找到一种物质间我们认为合理并且也能够发挥能量的组合。而如何组合,关键在于了解每种物质的特点和二种或多种物质间组合的特点!而组合就像是一个万花筒,我们所知和所见只是其中的九牛一毛罢了!
注:我不相信神,但我相信某种超出我们想像的物质和能量的存在!(我们的世界也许真的是一种虚拟,只是过他也是物质的(包括精神世界))
暂时就说这些,我是想到什么就说什么,可能是我最近看《黑客帝国》看的有点过火,所以以上纯属我个人胡诌,大家不要见怪!
>>任何系统都需要有变化,任何系统都会走向死亡。作为设计者,应该拥抱变化、利用
变化,而不是逃避变化。
>>好的软件只能“产生”而不能“创造”,我们所能做的只是用一个相对好的过程,尽
量使软件朝向好的方向发展。从这个角度来说,开发的迭代周期越短越好。
>>软件的工业化使软件僵死、失去“无名特质”、谬误百出、脱离现实。通过规程、制
度来控制,只会使系统内力无从疏解,最终走向崩溃。
--------------------------
对于这些,现不说了,有空再来胡诌,看看大家的高见,仁者见仁,智者见智嘛!
 
还是“SanDao”老兄开了个好头呀,
常有人说大富翁学术气已大不如以前了,
但说这话的人,最好还是多跟“SanDao”学学,
在自己没有作到的时候,切不可轻易取笑自己呀。
我之所以把这篇文章转帖到大富翁来,
主要是作者的思想已趋于大成,虽说他自谦的用了“探寻”两字,
但如果能很多的去理解一下他的文章,还是可以得到很多收益的。
在文后的很多评论,
怕我是没有心情再看第二边了,
如有人羡慕CSDN的这种学术气氛,我看咱们还是少学为妙,
这那还叫学术情讨论吗,
大部分人不论青红皂白的,开口就骂。
还是作者加复中写的好。
-----------------------------------------------------------------*
*我已经说过:在软件领域,我们并没有找到纯粹理性的思维方式,所以 *
*我们的理性思维尚处于一个黑暗而盲目的阶段。人之患在好为人师,尤 *
*其是在没有普遍的思维方法的时候。正如标题所写,我的整篇文章只是 *
*在“探寻”,并没有打算向任何人灌输任何东西。而您却对我如此斥骂,*
*并打算将您的观点灌输给我,这是为什么? *
-----------------------------------------------------------------*
从这一点上就可看出,作者的本身修为,早在文后的讨论者之上。
切先不说他的观点是否正确,只这种学术性精神就很值的我们学习。
大富翁宁可到处都是灌水的人,也绝不要这类张口就骂街的混混。
 
文章作者长谈了模式之道,
认为建筑与软件有很多相似和可借鉴之外。
我也早有同感,而且不只是建筑,
就连作饭、绣花、种庄稼,又何尝没有共同之处呢?
有时看着大千世界,让我迷幻。
万事万物都是如此的相似,而又如此的不同。
好象是造物主与我们开的一个玩笑,
即使我们再费心思去幻想,与创造,
而最终还有太多的东西与这个世界有所联系,
好象让一根无形的线把所有的东西都绑在了一起,
即使再多的不同,也难逃脱太多的相似和共有的属性。
我这里不论作饭与软件开发又怎么相似了,
即使当前科技最前延的火箭和航天飞机,与我们的农民大叔种地都有着太多的相同属性。
都可有很多都一起借鉴学习的东西。
也许很多人会不理解这个,我可以给举个例子。
我们人类与大猩猩是不是有很大的不同?
这种差别在我们眼里看,好象起马有70%以上的不同,
但可惜的是,我们的感觉欺骗了我们,
我们同大猩猩只有不到 1% 的差别,真正的、本质上的基因差别。
即使我们与地球上最早的单细胞生命,在基因上也有 50% 以上的基因是相同的。
真感谢造物主的这一时疏忽,让我们从他的这个破绽里看到了一线真理。
原来我们的软件与其它行业是如此的相似,
即使有太多的不同,那也只是它是个刚刚举起的行业。只是一个不成熟的行业。
我们大可从别的行业大胆的去作些借鉴和学习,
软件行来根本不必象建筑业一样用几千年去发展。
更不必象饮食一样,去经历数万年的契毛饮血的阶段。
**************************************************************
杂谈两句,有待批驳了。
行业发展初期都会有一段时间的百家争鸣的,
是非对错都在争论之中,只要不是骂人打架,一切都无可厚非。
引用一句前辈的话吧!
满腹荒唐言,一把辛酸泪,
都云作者痴,谁解其中味。
(“gophie”老兄,不要把这首诗也编成笑话呀,这首诗的无尽的感慨,我想你也会有。)
 
gophie第一次来到dfw,逮一高手就问,什么是dfw。
程云领我来到论坛,曰,看。
即日,问,明白了吗?
曰:明白,dfw就是知识,大量的渊博的知识,犹如浩然大海,
程云不语,离去,三日后,再来,问,明白了?
曰:明白了,dfw就是水,垃圾、无聊。精华犹如水中珍珠,不但珍贵还对试图取之的人有淹没的危险。
程云摇头,离去,三日后,再来。
问,明白了吗?
曰:dfw就是dfw,我看到了它,我在他里面,我就是它。
程云还是摇头,曰,你终还是与它无缘,你去吧。
我从此知道了自己的肤浅,不敢再程先生面前多语。
 
很不错的文章,不过我要说的是,尽管我们可以从建筑学上领悟软件设计的思想,
又何尝不能从流体力学、空气动力学(我都不懂[:D])上借鉴一定的思想呢?
如果你看了本文(或《设计模式》)后,把自己的思想禁锢在这个方面,恐怕这也
不是作者愿意看到的。
正如前面“悉尼歌剧院”例子所提到的,我们需要“发散”的思维,提高了来说,
就是“创新”,创新才是一个民族的灵魂!不管是搞软件还是搞导弹。
 
后退
顶部