还不快进入Design Pattern的世界?

      上周,Design&Pattern团队举行了主题为“设计模式在软件开发的应用”的讨论会。我是通过蝈蝈Design&Pattern团队《设计模式在软件开发的应用》讨论会议记录idiorDesign&Pattern团队《设计模式在软件开发的应用》精华版才知道的。讨论的内容非常精彩,可惜我给错过了。 

      不过没关系,我还可以做些亡羊补牢式的温习和思考,千万要记得,下次不要错过了。

1. 什么是设计模式

   来源于建筑,解决常见问题的优秀方案 。
                                                      
-- idior

我感觉其实模式体现的就是一种思想,一种思维方式。
                                                      
-- umlchina

有些东西,是在一定的积累之后的必须产物。
我同意,设计模式就是一种思想,但思想的基础是要有一定的实践经验。
                                                      
--vcfly.net

我认为在应用设计模式上,有两种方式:从传统的软件开发出发,对体系结构设计的时候,如果熟悉设计模式,那么设计的软件在扩展性和健壮性,都比较好;但如果从TDD的角度出发,设计模式主要还是在重构中体现。
                                                     
-- wayfarer

设计模式是为了更好解决对象设计、对象通信、重用, 建筑学、逻辑学中都有这样的概念。
                                                      
--Zealot


     《设计模式》中引用Christopher Alexander的话说:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。 
      它们帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。 
      目的是将面向对象的设计经验作为设计模式记录下来。 
      设计模式使人们更加简单方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。 
      大师们的解释已经足够明了了。


2. 运用设计模式的最高境界

 模式我觉得可以理解为软件设计的一个理论,学好理论很重要,但更重要的是如何运用理论,就像懂得了孙子兵法,不一定你就能打胜仗。
我觉得模式的最高境界就是你在编程中不知不觉地使用模式去解决问题。
                                                       
--dudu

most important, practice and think 
!
                                                       
--Samuel

是啊。如果单独学习设计模式的理论,却无法应用到实践上就没用了。
                                                       
-- wayfarer


      我觉得设计模式属于方法学的范畴。它的目的非常简单:帮助人们通过复用成功的解决方案或经验来解决实际问题。学习设计模式的有效途径之一就是在在实践中学习,在实践中理解,在实践中总结。我很认同dudu的观点,即:在编程中不知不觉地使用模式解决问题。这里的不知不觉有两种可能,一种是从未学习或接触过设计模式,但是在实际工作中却在不知不觉的使用它解决问题;另一种是对设计模式有深刻的了解,在思考和解决问题的时下意识的使用设计模式。我想最高境界里的“不知不觉”更倾向于后者,前者虽然在做着设计模式的事情,但还没有抽象到模式的层次,处于认识的混沌阶段。

3. 在程序中使用设计模式

 我覺得越是面向商業,我們所說的模式就用的越少。 
                                                          --RoyDeng

 关键是,我们是做项目,还是做产品。 
                                                          --wayfarer

 我觉得项目与产品开发真的不一样。
 项目最重要的是进度,质量可以放后考虑。 
                                                         --jeseeqing

 模式便于理解代码和维护,对一个需要维护的系统,不应用模式,吃亏的是程序员。 
                                                         --大坏蛋

 模式的引入没有阻碍我们公司的发展,其实用好了才是关键。 
                                                         --蝈蝈


      首先,我必须申明:我认为,在程序使用设计模式并不会降低开发效率,相反,很多情况下,这恰恰是提高开发效率的有效途径之一。因此,我的观点是不管是做项目,还是做产品,也不管公司是否要求使用设计模式,自己在写代码的时候都应该有意识的使用设计模式。 

      对于旧系统的升级,也应该考虑设计模式的使用。当然没有必要把旧的系统全部推倒,只要从需要修改的地方重构就可 以了。这样一步步的来,就像滴在水杯中的墨水一样,最终墨水会扩散到整个杯子。

4. 使用设计模式需要重构代码,而没有TDD的重构又是危险和麻烦的,那么是不是所有的模块都要TDD呢?

 其实TDD也是这样的,先写测试后来代码,保证所以的代码是因为有测试才出的。 
                                                         --蝈蝈

 但在设计过程中,我会在某些模块中应用TDD的方式。 
                                                         --wayfarer

    没有tdd,重构是很危险和麻烦的。
一些基础模块很需要tdd。 
                                                         -- idior

      wayfarer和idior的想法和我是一致的,那就是:不需要在所有的模块中都使用TDD,而是在某些模块,如基础类、业务类、数据访问类等模块使用TDD就可以了。

5. 设计模式在项目开发中对你们的帮助是怎样的?(wayfarer)

 好的维护性和可扩展性。 
                                                         --jeseeqing

 我觉得最大的好处就是省写很多代码。
 维护很容易,扩展容易。 
                                                        --蝈蝈

 提高我的生产力啊。
 还有那种写很少代码就能实现功能的虚荣感。 
                                                        --Zealot

 维护性和可扩展性,适应未来的变化。 
                                                        --idior

 提高了开发效率。 
                                                        --dudu



posted on 2004-12-23 22:55  zsi  阅读(1861)  评论(9编辑  收藏  举报