以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 软件工程论坛 』   (http://bbs.xml.org.cn/list.asp?boardid=48)
----  设计模式与美学  (http://bbs.xml.org.cn/dispbbs.asp?boardid=48&rootid=&id=26294)


--  作者:jiachong
--  发布时间:1/10/2006 10:07:00 AM

--  设计模式与美学
有本《Java与设计模式》,厚厚的一本,通篇都拿道家思想与设计模式类比,感觉似乎有点道理,可惜没看多久书就丢了

设计和设计模式这东西,我自己也感觉有那么点类似于美学,一个好的设计就是让人感觉美,一个功能正确但设计很烂的程序可能让人觉得难受

具体到设计模式的实现上,同一个模式可以有多种实现方法(例如模式中的每个角色由一个类担当还是几个类复合后担当,具体用什么代码元素实现等),相同的是其中蕴含的“精神”,这样说不知道算不算唯心

就像那个“软件开发是工程还是艺术”的问题,我觉得软件开发在宏观面上是工程,到微观面上可能就有些艺术成分了


--  作者:jiachong
--  发布时间:1/10/2006 10:19:00 AM

--  翻出了那时候写的一篇小文章
一个好的设计会给人以和谐的感受,这就是作者所说得“质、形、无名、混
沌”,它的存在独立于人的认识。这就象模式、架构这类东西无形地存在于软件
系统中,不管人们有没有通过自己的主观去认识。经过人们认识后的“质”已经
不是原来的“质”,而是带上主观偏向的描述,也就是“混沌之死”。例如架构
被人们用描述语言描述出来之后,已经不是原来客观存在于系统之中的架构,而
是人们的具体认识,这种认识经常只包含了客观架构的某些方面。
    而这种“质”是依托其最具体的实现形式“气”存在的。就象好的建筑设计
最后总是表现在一处精美的建筑(每一块砖瓦、陈设)之中。这种“气”就是我们
所能研究和具体面对的对象。这就是“理寓于气”。
    怎样让“气”中蕴含优美的“形”,这就是“道”。我的理解,“道”就是
能让“气”体现出好的“形”的一些原则和方向。这些“道”一般来源于人们对
能体现出好的“质”的那些“气”的总结与抽象。就象人们认识到“开闭原则”
等设计原则能帮助我们获得好的“形”。
    “形”既是抽象的也是具体的。说它是具体的,是因为它总是蕴含在具体实
现之中,例如java代码。但它又是抽象的。大家应该都有这样的体验,一个程序,
如果采用了一些不好的设计,大家会觉得不舒服。例如相同的一段代码我们在多处
拷贝而没有抽取出来,或者用了一大堆连续的if语句来识别各种特例情况,这些
都会让我们觉得不舒服(假如你还有点责任心而不是仅满足于完成代码任务的话)。
这种不舒服我觉得就是我们的抽象思维对无形的“质”的一种感知。就象我们看
到一处设计的不好的建筑,感到布置、搭配看起来很不和谐,但还没有具体的认
识到其原因所在。为了解决问题,获得好的“质”,我们还只有去努力认识“质”,
哪怕我们得到的只是一个不完整的侧面,只要这个侧面包含了足够的我们感兴趣
的信息。有了足够的设计经验后,我们就会总结出一些“道”来,例如怎么设计
良好的接口来达到设计要求,而不是把责任全部推卸到具体的代码之中。也就是
尽可能用高级的、抽象的模式来处理问题,而不是把问题的解决局限在具体的代
码上。这也符合书中所用的“胚胎的发育”这样一个过程,即系统先有整体再通
过各部分的发育得到最后的实现,而不是跨越整体的逐步细化而直接去追求最后
的代码实现。
    一点思考,与大家分享一下,如有兴趣也请提一提不尽合理之处。
--  作者:pennyliang
--  发布时间:1/18/2006 6:14:00 PM

--  
所有的设计越是自然,越合理就越好。评价是否自然需要从人理解问题的角度出发,如果符合人理解额外难题的方式,就是自然的,否则就是不自然,评价是否合理需要从问题本身出发,是否合理的解决了问题,是否可能证明是最好的解决问题的方法。
--  作者:pennyliang
--  发布时间:1/18/2006 6:16:00 PM

--  
java与设计模式这本书我浏览过,非常厚,理解也很透彻,是本很不错的书,可惜没有时间看的很仔细,设计模式的透彻理解需要建立在解决问题的基础上,并在过程中逐渐积累经验。提高自身认识问题的能力,然后才能照方抓药。
--  作者:naive_1010
--  发布时间:4/21/2006 1:15:00 PM

--  
同意 楼上的说法!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms