还不快进入Design Pattern的世界?
上周,Design&Pattern团队举行了主题为“设计模式在软件开发的应用”的讨论会。我是通过蝈蝈的Design&Pattern团队《设计模式在软件开发的应用》讨论会议记录和idior的Design&Pattern团队《设计模式在软件开发的应用》精华版才知道的。讨论的内容非常精彩,可惜我给错过了。
不过没关系,我还可以做些亡羊补牢式的温习和思考,千万要记得,下次不要错过了。
1. 什么是设计模式
首先,我必须申明:我认为,在程序使用设计模式并不会降低开发效率,相反,很多情况下,这恰恰是提高开发效率的有效途径之一。因此,我的观点是不管是做项目,还是做产品,也不管公司是否要求使用设计模式,自己在写代码的时候都应该有意识的使用设计模式。
对于旧系统的升级,也应该考虑设计模式的使用。当然没有必要把旧的系统全部推倒,只要从需要修改的地方重构就可 以了。这样一步步的来,就像滴在水杯中的墨水一样,最终墨水会扩散到整个杯子。
4. 使用设计模式需要重构代码,而没有TDD的重构又是危险和麻烦的,那么是不是所有的模块都要TDD呢?
wayfarer和idior的想法和我是一致的,那就是:不需要在所有的模块中都使用TDD,而是在某些模块,如基础类、业务类、数据访问类等模块使用TDD就可以了。
5. 设计模式在项目开发中对你们的帮助是怎样的?(wayfarer)
不过没关系,我还可以做些亡羊补牢式的温习和思考,千万要记得,下次不要错过了。
1. 什么是设计模式
《设计模式》中引用Christopher Alexander的话说:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。
它们帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。
目的是将面向对象的设计经验作为设计模式记录下来。
设计模式使人们更加简单方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。
大师们的解释已经足够明了了。
2. 运用设计模式的最高境界
我觉得设计模式属于方法学的范畴。它的目的非常简单:帮助人们通过复用成功的解决方案或经验来解决实际问题。学习设计模式的有效途径之一就是在在实践中学习,在实践中理解,在实践中总结。我很认同dudu的观点,即:在编程中不知不觉地使用模式解决问题。这里的不知不觉有两种可能,一种是从未学习或接触过设计模式,但是在实际工作中却在不知不觉的使用它解决问题;另一种是对设计模式有深刻的了解,在思考和解决问题的时下意识的使用设计模式。我想最高境界里的“不知不觉”更倾向于后者,前者虽然在做着设计模式的事情,但还没有抽象到模式的层次,处于认识的混沌阶段。
3. 在程序中使用设计模式
首先,我必须申明:我认为,在程序使用设计模式并不会降低开发效率,相反,很多情况下,这恰恰是提高开发效率的有效途径之一。因此,我的观点是不管是做项目,还是做产品,也不管公司是否要求使用设计模式,自己在写代码的时候都应该有意识的使用设计模式。
对于旧系统的升级,也应该考虑设计模式的使用。当然没有必要把旧的系统全部推倒,只要从需要修改的地方重构就可 以了。这样一步步的来,就像滴在水杯中的墨水一样,最终墨水会扩散到整个杯子。
4. 使用设计模式需要重构代码,而没有TDD的重构又是危险和麻烦的,那么是不是所有的模块都要TDD呢?
wayfarer和idior的想法和我是一致的,那就是:不需要在所有的模块中都使用TDD,而是在某些模块,如基础类、业务类、数据访问类等模块使用TDD就可以了。
5. 设计模式在项目开发中对你们的帮助是怎样的?(wayfarer)