软件开发中可以排第一的模式

很多人谈设计模式,但就我观察和软件相关的模式中最牛的一个却被忽略了或者说重视的不太够。

这个模式不一定能用GoF的那类表述方式来描述,但却几乎可以在大多的成功产品中看到影子。

 

它可以表述成:软件的架构要支持开放数据,并提供API让别人可以编程定制或扩展你的程序。

 

有人可能一听后说:这不就是插件么?但把这个等同于插件是把它看小了,插件只是它的一个子集。

 

那么那些足够牛的产品中用过这个模式?

 

真不好一一列举,立刻能想到的是PC时代的AutoCAD和Excel这种,我有时候甚至怀疑Becky!这邮件客户端之所以能活得很好和大量的插件可能有很大的关系。往当下想就是微信这种。

 

当然如果非往这个上扯的话,那各大平台乃至操作系统事实上是这一模式的最大用户,Linux在很多地方能够干翻Unix和VxWorks这样的操作系统和它的外围工具不断成熟应该有很大关系,而之所以它的外围工具能够不断成熟则与其开放精神有着本质关联。

 

那为什么这个模式如此有价值?

 

说起来故事也简单,假设说需求是不断变化的而不同人的需求也不同,那么就世界上就不存在能够足够满足需求的产品。

 

那对于一个产品而言这部分无法满足的需求究竟应该怎么办?

 

你要么不理它任由别人抱怨,这类产品注定成不了成功的产品。要么就得把开放精神体现在产品里,让别人来满足五花八门的需求。所以说这个模式是很多优秀产品的一种必然选择。浏览器这样,微信也这样---只要你的产品还需要面对比较复杂的需求环境,没认识到并且没有为此做出应对的,基本上会处在纠结和痛苦中,并为之付出代价。

 

近来眼见有些在做的东西被需求变化折磨的焦头烂额,一下子就想到了常说的设计模式,也就进一步想到了上边这事,泛泛的讲这也是一种模式,虽然看着和常说的那种设计模式不一样,但在应对需求的时候它应该挺关键的。

 

 

posted on 2014-01-23 21:32  理想流  阅读(2376)  评论(4编辑  收藏  举报