浏览 4489 次
锁定老帖子 主题:关于平台与框架,我的一点看法
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-05-14
一、“平台”与“规范” 一提平台,首先会想到JAVA EE平台,然后就会想到JAVA EE平台规范,“平台”和“规范”常常会混淆,所以先澄清一下这2个概念 “规范”大概是提出一种标准,与“规范”对应的概念是“实现”,也就是specification和implementation。一般规范都会对应多种实现,开发者如果遵循规范设计的接口进行开发,就可以避免与实现的耦合,就可以在多种实现中任意切换,不需要修改代码 比如大家都开发过web应用,如果只用到Servlet规范中的接口,那么应用就可以部署在任意Servlet实现的容器里,比如Tomcat、JBoss、WAS都没问题。但是一旦应用依赖了具体实现的接口或者类,那么就和容器绑定了,不能随便切换 所以“规范”和“平台”是完全不同的概念,没有太大的关系 二、“平台”与“框架” 下面说说我认为的“平台”和“框架”的区别 举一个例子,比如Struts2,一般认为是一个框架。框架的目的是为了解决一个特定领域的问题,提供了: 1、一系列API 2、一组编程的约束 大致上,框架是静态的,倾向于开发阶段的概念。在开发的时候,调用框架的API,遵循框架的设计约束,来实现一个功能 “平台”除了具备框架的这2点以外,我认为还有一层“动态”的含义,即在运行时也提供了某种“服务” 比如JAVA EE平台,不但提供了一大堆API,各种约束,也为应用程序提供了很多服务,比如JNDI、JMS等等,都是某种服务 所以我认为,平台具备以下特征: 1、提供一组API 2、引入编程约束 3、在运行时提供服务 三、实际中的例子 我以前做过一个“开发基础框架”,其实就是对常用的开源框架的整合和封装,然后形态上就是一个普通的WEB工程,可以发布为一个普通的.war包,部署到容器里 这个.war单独跑起来,只有一个UI的框架,没有实际的业务页面。但是后续的各种开发,基于这个框架,可以减少一定的代码量 但是这个不能算是一个平台,只是一个框架。如果加上一些用户权限管理、SSO、页面生成机制,我觉得就可以算是一个“开发平台”了 另外一个例子,BMC公司做的流程平台产品REMEDY,里面有很多组件服务,比如在Server端有它自己的DSL,另外有一个单独的组件,会读取DSL,动态生成WEB页面。基于REMEDY平台的产品开发,就是进行各种配置,在必要的时候做一点二次开发,我觉得这个就可以算是一个“平台产品” 四、总结 总的来说,我认为框架和平台可能没有非常明确的界线。在框架的基础上,增加运行时的某些服务,就算一个平台 目前的理解就这么多,以后想到再补充 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2013-05-15
很有道理,赞!
|
|
返回顶楼 | |
发表时间:2013-05-16
有道理,解惑了
|
|
返回顶楼 | |
发表时间:2013-05-17
有道理,但不管要实现哪个,想做好了,得到认可都是不易的事
|
|
返回顶楼 | |