锁定老帖子 主题:技术框架上的皮之不存,毛将焉附
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-20
技术框架上的皮之不存,毛将焉附
关于技术,语言上的是是非非,实在不是一两句话能够说清楚的事情. 前两天在和朋友的交流中,忽然想到这样一句话:皮之不存,毛将焉附,以此来形容很多技术的兴衰,真是非常贴切. 所有的技术,语言也好,框架也好,其实都有一个基本的假设,在讨论问题的时候,往往是在这个隐函的前提下来讨论才得出的结论,一旦经过认真考虑,把这个假设推翻了,那么整个技术的大厦也就轰然倒塌了. 以下举例说明. 譬如J2EE架构,在早期推出的时候,强调EJB这一组件的功能,其实隐含了一个假设:所有的应用都需要分布式支持,所以才提出EJB这样一个分布式的技术方案.后来在实践中终于发现,绝大部分应用都不真正需要分布式支持,于是乎EJB就变成了J2EE中著名的鸡肋产品.甚至基于这个观点,推除了J2EE without ejb这样的概念出来.此其例一. 譬如JSP技术,按其本名,Java Server Page,就是利用Java语言在后台服务器上,动态生成一个Page的意思.这里其实有两个隐含的假设,其一,页面是动态生成,而且是用Java动态生成;其二,页面是在服务器上生成,而不是在客户端生成.在技术发展的早期,这一概念确实风靡一时.但在目前的技术生态中,增加了Ajax和RIA的概念,在RIA的概念中,页面完全是可以由客户端来动态生成的,这种情况下,就把JSP存在的基本假设推翻了,长此下去,JSP技术的立足点就不复存在了. 再譬如Jsp的tag技术,它的基本假设是采用JSP技术来做页面展示,一旦上面第二条中谈到的假设 被推翻了,jsp的tag技术也就没有立足之地了. 譬如Hibernate技术,它的隐含假设,就是对于数据库的操作,必须通过对象方式来实现,不能直接编写SQL语句,一旦这一假设不存在了,Hibernate的用处也就不存在了. 譬如Spring技术,它的隐含假设,就是所有业务逻辑及数据处理等等,都集中在服务器上进行,而且这些组件还是经常要改变的,所以为了管理方便,给你搞一套IOC的玩艺儿来试图简化它. 但如果这些假设都不存在了,要Spring干啥用呢? 这样的例子简直举不胜举. 大家在疯狂的讨论技术的种种优势和缺点,但是在讨论这些问题之前,请先明确一下,所有这些讨论,它的假设是什么,它的前提是什么. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-04-20
顶
技术背后的隐含假设很关键 比如大家提倡的DSL,想法很好,但是隐含假设是客户的充分配合,同一套方法在企业应用解决方案中大放异彩,带来成本的下降;换到政府官僚机构项目下实施,你建立一套同一语言用来精确表达和挖掘潜在抽象模型,得到的结果很可能是惨烈的,会被政府的办事性质蹂躏致死. 另外企业级应用中,尤其是政府项目,项目的建设方案应当是严谨的,应当是能表达成数学符号般精确的分析过程.然而,政府有政府的采购策略,公司有公司的营销策略,政府受人忽悠买了weblogic,公司为了赚钱卖了自己的平台,那设计人员干吗吃的,用什么技术\用什么平台\用什么服务器都是要严谨考证的,这把敲钉子的锤子也未免太大点了,开发设计人员被挤在中间,企业及应用的设计精髓消失殆尽.如同你的病了,发烧,你母亲把你送到医院,然后你母亲规定医生至少给你开阿司匹林,你规定医生至少给你打针青霉素,然后剩下的工作交给医生,你觉得你能很痛快的治好病? |
|
返回顶楼 | |
发表时间:2009-04-20
可是话又说回来,很多人推崇某个技术,可能是因为他刚好处于某个环境之中,这个环境满足了这个技术的存在假设.
另一部分人反对这个技术,也可能是他所在的环境并没有满足这个技术的假设. 那么就需要站出来,结合环境,理性的分析一下当前技术的特征,比写一篇推崇技术的技术实现配置文章或者抱怨文章更有意义.当然有时候抱怨也是一种策略,这样就会有很多人以批判的目的络绎不绝得像你展示这个技术的优势,从反馈中会有很多收获. |
|
返回顶楼 | |
发表时间:2009-04-20
假设在只有馒头一种食物的情况下,人吃馒头,他的隐含假设是:人只有吃馒头才能活下去,但是现实的情况是,我们如果不吃馒头还可以吃米饭,所以之前的假设被推翻了,所以馒头也就没有立足之地了。
|
|
返回顶楼 | |
发表时间:2009-04-20
支持楼主。
很多技术都是在某个假设、或者在某个环境下,解决某个问题的。 呵呵,所以,我们在运用技术的时候,需要对症下药。而不是乱吃药。呵呵 |
|
返回顶楼 | |
发表时间:2009-04-20
什么情况下选用适当的东西`` 一直是这么认为的
|
|
返回顶楼 | |
发表时间:2009-04-20
嗯,讲的很有道理,所以在技术选型的时候,一定要考虑好,究竟自己的前提事什么?
|
|
返回顶楼 | |
发表时间:2009-04-21
是这样,发现这些潜规则是架构师的责任,如果盲从或膜拜某个技术,只是不成熟的表现。
|
|
返回顶楼 | |
发表时间:2009-04-21
unsid 写道 可是话又说回来,很多人推崇某个技术,可能是因为他刚好处于某个环境之中,这个环境满足了这个技术的存在假设
支持您的看法。我想做几个补充,呵呵: 1,有的时候,有些半推半就的味道。满足了部分,又有部分没有满足。 2,找不到合适技术来满足,然后呢,又想到,这样还是可以让企业在开发上面节约一些工作量; 于是,选择了不完全合适的技术。 因此,我有一下几个想法: 1,选型之前,要明确重点和难点,以效率利润为先; 2,开源产品,可以事先将路线图公布于社区,让选用该产品、技术的人,有个大致了解; 3,因为,各个企业也有自己的路线图,如果开源产品对当前有一定作用,但对于该公司下一版本作用不大,那么下一版本又得重新选技术。这造出巨大浪费。 个人开发。欢迎交流,拍砖。(非常欣赏楼主这篇文章) |
|
返回顶楼 | |
发表时间:2009-04-21
楼主到底想说明一个什么中心思想?实在没看出来。
|
|
返回顶楼 | |