技术相关:银弹规则在技术选型时的运用

技术相关:银弹规则在技术选型时的运用
----王珏原创

银弹规则
    现在从 Google查询“银弹”多半是指到了图灵大奖获得者布鲁克斯的“没有银弹”( 没有银弹- 维基百科),其意思可以理解为复杂的软件工程问题无法靠简单的答案来解决。
    银弹的本意是指:古老相传,只有 银弹(silver bullet )才能杀死巫士,巨人,有魔力的动物,譬如狼人什么的。一般是指威力无穷或者 效率超高的武器/技术,或者 万灵药
    那么银弹的引申含义就是:大约就是指在N多方案中,如果某一种方案如果具有足够优势。它就会使得其他方案失去存在的理由,我们就可以称这种具有足够优势的方案叫“银弹”。反之,如果某领域内有大量可供选择的方案,则说明此领域内不存在银弹。下面举例说明:
  1. 碗为什么是圆的?圆碗对于用筷子扒饭的中国人来说比其他形状的碗有足够的优势。圆碗相对于其他形状的碗就是银弹。
  2. 近视手术能不能做?去看看比尔盖茨是否带眼镜,就知道近视手术不是、也不应该随便做。
  3. Oracle的自动段空间管理ASM和手动段空间管理,由于Oracle已经明确说明ASM是最好的,在创建表空间时候没有任何理由使用手动段空间管理);那么ASM相对于手动段空间管理来说就是银弹。
  4. J2EE是不是银弹呢?显然不是,因为有一大堆可能的替换方案,如Hibernate。
  5. 关系型数据库、网状数据库以及树状数据库里面存在银弹吗?显然自打关系型数据库面世以来,网状数据库和树状数据库就乖乖的退出了市场。
  6. 从市场也可以反映出这个问题:Oracle收购Bea(WebLogic的主人)说明了RDBMS强于中间件。Sybase就再不行,还能挺着。
 
    银弹规则在我们讨论或者思考问题的时候有什么用途呢?我认为主要有以下两点:
  1. 向 “银弹”靠拢。举例:到底应该数据库独立,还是应用服务器独立?。我常常看到很多“架构师”在设计“数据库”独立的应用系统架构,比方说,整个软件架构在 中间件应用服务器JBoss上面,然后此JBoss可以连接多种RDBMS。比如为了所谓的通用性,客户可以任意选择 Sybase,Oracle,MySQL或者PostgreSQL等数据库(我几乎没有见过某个架构师设计所谓应用服务器独立的架构--这可不一定是好 事)。现在根据银弹规则的判定方法是:
    1. 数据库技术和应用服务器技术谁变化更频繁?根据银弹规则,变化越频繁,就越不可能是“银弹”。RDBMS技术差不多20-30年来在理论上就没啥变化,在实践上变化也不多。而应用服务器今天AOP,明天IoC,概念多到让你搞不懂。
    2. 对 于RDBMS来说Sybase,Oracle,DB2,MySQL,PostgreSQL谁跟具有压倒性优势?对于应用服务器来说WebLogic, WebSphere, JBoss, GlassFish谁更具有压倒性优势?我想相对于混乱的应用服务器市场来说,RDBMS市场相对要简单的多。优先选择RDBMS是明智的选择
  2. 对“非银弹”采取怀疑态度。有一种说法:如果有人给你介绍一种新技术,而你无法理解,你无需为此而烦恼,因为别人也看不懂,它也无法成为一项重要的技术。如果某项技术存在替换方案的则它就不是银弹,它不是银弹,你也不必对他迷信。

    因此我非常赞同 asktom的 主人Tomas Kyte的看法:以数据库为核心来设计架构。这比以所谓的“数据库独立的应用服务器”为核心来设计架构要可靠的多,原因很简单,RDBMS比任何应用服务 器更像“银弹”。(其实Tomas Kyte作为Oracle的高级副总裁,当然是以Oracle为核心来设计架构。在我看来无论是DB2,Sybase,甚至是PostgreSQL都是可 行的方案)

    总结:银弹的思考方式有两种:
1、根据现有的情况反推:当下是否存在多种“方案”,如果是则不存在银弹;如果否则这就是银弹。
2、如果没有备选方案可选:就请大家高度重视这个“银弹”,不仅仅要注意它在这个领域内的银弹位置,还要注意它在其他领域中的作用。


Link URL: http://blog.sina.com.cn/s/blog_592060b50100dzoa.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/91771/viewspace-609555/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/91771/viewspace-609555/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值