`

关于平台与框架,我的一点看法

阅读更多
部门最近的一个产品,想基于另一个平台开发。所以最近做了一下平台选型,顺便思考了点关于“平台”和“框架”的问题,在这里记录一下

一、“平台”与“规范”

一提平台,首先会想到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平台的产品开发,就是进行各种配置,在必要的时候做一点二次开发,我觉得这个就可以算是一个“平台产品”

四、总结

总的来说,我认为框架和平台可能没有非常明确的界线。在框架的基础上,增加运行时的某些服务,就算一个平台

目前的理解就这么多,以后想到再补充
分享到:
评论

相关推荐

    个人对hibernate的看法,应该会对大家有一

    标题与描述概述的是个人对Hibernate框架的理解与观点,这一部分提到了Hibernate在处理数据库操作时的一些关键特性,如事务管理、对象持久化以及查询优化等。以下是对这些知识点的详细阐述: ### Hibernate框架简介 ...

    学生的对比分析 看法.pdf

    3. **跨平台能力**:随着 .NET Core 的发布,C# 的跨平台能力得到了极大提升,能够在多个操作系统上运行。 4. **面向对象设计**:C# 设计之初就充分考虑了面向对象的原则,这有助于开发者构建结构化和模块化的应用...

    开源项目-dotnet-cli.zip

    不过,这里我们可以推断出一点信息:VSCode是一个流行的、跨平台的代码编辑器,尤其在.NET开发社区中被广泛使用,尽管在某些情况下可能不是开发者个人的首选。 标签“开源项目”强调了这个压缩包包含的代码是开放...

    66个求职应聘技巧性问答

    我更关注找到一个能够发挥自己能力并成长的工作平台。” #### 6. 五年的职业规划 - **回答思路**: - 明确表达职业发展方向,比如技术专家或管理层。 - 如果不确定具体方向,可以提到希望在某个领域取得显著成绩...

    2021关于教育教学读书心得篇.docx

    这一点与我在教育实践中观察到的现象不谋而合。在传统教学模式中,确实存在着对不同学生个性化需求的忽视,导致一部分具有特殊才能的孩子被误解,甚至是被埋没。 比利的故事就是这种现象的一个生动例子。比利热爱...

    10位顶级大师的开发原则

    **使用PHP框架提高开发效率 - Josh Sharp的看法** Josh Sharp是一位专注于PHP框架的开发者,他强调使用合适的PHP框架可以极大地提高开发效率。在现代Web开发中,PHP框架已经成为不可或缺的一部分。常见的PHP框架有...

    智能机器人如何拥抱物联网时代.docx

    据现场工作人员介绍,“爱乐优”早教智能机器人集成多传感器信息耦合、蓝牙对接、语音控制、远程监控和跨平台通讯整合功能,能够实现与婴幼儿互动以及一种完全不同的早教体验。 除了亲子,服务老年人也是智能机器人...

    08-09嵌入式从业人员调查报告

    了解这一点有助于评估工作与生活之间的平衡问题。 **6、工作带来的成就感** 工作成就感是衡量一份工作是否值得投入的重要指标之一。 **7、未来职业人生的规划** 这部分内容关注工程师对于自己未来职业路径的规划,...

    个人博客系统-仅供学习,参考

    【个人博客系统】是开发者为学习和参考目的创建的一个简易平台。这个系统允许用户发布、管理和分享他们的思想和见解,通常包含文章管理、用户登录、评论互动等功能。在这个特定的【个人博客系统-仅供学习,参考】中,...

    大学生创新创业教育的内涵及提出背景实用.pdf

    此外,高校应当建立完善的创新创业教育体系,包括加强师资队伍建设,建立系统的理论框架,营造鼓励创新的文化氛围,以及提供广泛的实践平台,确保创新创业教育的全面实施。 总之,大学生创新创业教育是我国高等教育...

    ArticleRevSys:一个发布和评价科学文章评论的网站

    描述中的 "ArticleRevSys" 重复强调了这一点,暗示这是一个专门针对科学文章评论的在线系统。 **Java标签** "Java" 这个标签表明ArticleRevSys是用Java语言开发的。Java是一种广泛应用的面向对象编程语言,以其跨...

    传智播客大数据教程

    - 例如,通过分析微博、微信等社交平台上的评论和帖子,品牌可以了解公众对其产品的看法。 ### 五、学习资源推荐 根据描述中提到的“声音清楚”,这里推荐几个学习大数据的好去处: 1. **传智播客官网**:提供了...

    人际关系测量精选.doc

    以问题1为例,询问被测试者对人群的看法,通过选择不同的答案选项,测试者可以获得相应的分值,帮助评估其在社交中的适应性和受欢迎程度。答案a代表乐观,分数较高表示社交能力强;答案c代表悲观,低分则意味着社交...

    足球比赛体育竞技网站模板

    随着互联网技术的不断发展,越来越多的体育爱好者和专业组织开始关注线上平台,希望通过互联网分享和获取体育赛事信息。为了满足这一市场需求,出现了众多足球比赛体育竞技网站模板,其中【足球比赛体育竞技网站模板...

Global site tag (gtag.js) - Google Analytics