写点什么

如何选择最合适的 Ajax 框架?

  • 2009-01-18
  • 本文字数:1228 字

    阅读完需:约 4 分钟

与早些年相比,如今开发者面临的选择可谓是极其丰富。各类框架层出不穷、百花齐放。在选择不断丰富的同时,随之而来的烦恼则是“该挑哪个?”。从某种意义上来说,有时“挑得眼都乱了”比起“无框架可选”还要“折磨”人。

最近,Appfuse 的缔造者 Matt Raible 在其博客发表了他们选择 Ajax 框架的过程,并向社区征求意见。在文章的开始 Matt 说明了他们的决策过程:

  1. 确定准备用来搭建原型的框架简表。
  2. 用每个框架创建一个应用原型。
  3. 记录调查情况,并创建一个包含重要标准的矩阵。
  4. 为记录文档创建概括性的幻灯片。
  5. 交付文档、幻灯片(含示例)和推荐。

随后 Matt 对每一步进行了详细描述,并给出了他们的文档模板和选择标准列表。其中文档模板是:

复制代码
介绍
Ajax 框架候选
(介绍和说明选择原因)
项目信息
(历史)
(许可证 / 花费)
(提交者人数)
(支持情况)
(邮件列表的流量(11 月 /122008))
矩阵和注释
结论

文档中引用的矩阵如下(其中 Dojo、YUI、GWT 和 Ext JS 是 Matt 这次选择的候选):

权重 标准 Dojo YUI GWT Ext JS 注释 # 对客户来说重要的标准 0…1 0…1 0…1 0…1 关于评定的注释说明

Matt 说明了他们填表的策略:

  • 客户调整每个标准的权重(必要时移除 / 增加),所有权重合计为 1。
  • 我们将每个框架分成 0、0.5 或 1,其中 0 = 不满足标准,0.5 = 部分满足,1 = 满足。

Matt 在文末列出了客户向他们提供的标准列表:

  • 文档 / 教程 / 帮助的质量
  • 对浏览器的支持情况(最重要的浏览器 / 版本,以 Web 统计为准)
  • 可测试性(尤其是 Selenium 的兼容性)
  • 许可证
  • 项目健康 / 采用情况
  • 性能
  • 伸缩性
  • 灵活性 / 可扩展性
  • 生产力(应用开发,Web 开发)
  • 部件 / 组件库的丰富程度
  • 图表功能
  • 创建新部件的能力
  • 与现有 Java 团队技能的匹配情况
  • 易部署性(针对操作人员、QA 和用户而言)
  • 一般的风险程度
  • 与现有站点(它包含了 Prototype)集成的能力
  • 使用 CSS 来进行风格定义的简单程度
  • 验证(尤其是标记表单元素无效)
  • 组件的主题 / 装饰
  • CDN 的可用性(即 Google 的 Ajax 库 API 或 Ext CDN)

遗憾的是,对于 Matt 的帖子,回复虽然不少,但人们的兴趣明显不在于这个选择过程。人们似乎对 Matt 的选择结果和他们决定的候选名单更感冒,并有不少人纷纷建议这 4 种选择之外的其他选择,其中以 JQuery 居多。

单就选择 Ajax 框架来说,这篇帖子罗列了类似的考虑:

  • 服务器独立或相关?
  • 是否有结构化 JavaScript 的增强机制?
  • 你书写组件的重用性?
  • 框架当前的文档化程度?
  • 是否有你需要的特性?
  • 项目持续的时间有多长?
  • 项目的支持类型是什么?社区或商业?
  • 框架的学习曲线有多陡峭?
  • 谁将访问你的站点?

虽然 Matt 帖子反映了 Ajax 框架的选择过程,但是就其过程来说对于其他框架的选择也不乏参考价值。根据实际情况更换候选列表和选择标准,很快就可以将这个过程复制到其他类型的框架上。InfoQ 中文站的读者,请问你是否有这样一个类似的过程来确定框架?如果有,它是一个什么样的过程?对于 Matt 的过程,你还有什么要补充的?

阅读更多 Ajax 内容,请浏览: InfoQ 中文站 Ajax 专题

2009-01-18 21:043568
用户头像

发布了 255 篇内容, 共 63.1 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

GaussDB(DWS)运维:导致SQL执行不下推的改写方案

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

Git客户端工具:SourceTree中文激活版

真大的脸盆

git Mac Mac 软件 Git客户端

面试被怼:技术更新这么快,你还不懂响应式微服务就out了

Java spring 微服务 响应式

腾讯大神耗时三年,立足实际开发的巅峰之作,详解高并发程序设计

Java 程序设计 高并发

软件工程高效学 | 软件的内涵与危机

TiAmo

软件工程 软件开发

镜舟数据库荣获 CSDN 年度创新产品与解决方案!

镜舟科技

数据库

【分享】为什么我设计的PCB很少出错?

华秋PCB

工具 测试 电路 PCB PCB设计

2022 OpenHarmony年度运营报告

OpenHarmony开发者

OpenHarmony

pytest学习和使用3-对比unittest和pytest脚本在pycharm中运行的方式

Python 自动化测试 pytest

ByteHouse:基于ClickHouse 的实时计算能力升级

字节跳动数据平台

大数据 云原生 flink 消费 kafka Clickhouse 企业号 3 月 PK 榜

使用流水线插件实现持续集成、持续部署

北京好雨科技有限公司

Kubernetes CI/CD rainbond

跟着字节AB工具DataTester,5步开启一个实验

字节跳动数据平台

大数据 云服务 AB testing实战 ab测试 企业号 3 月 PK 榜

2023中国儿童防敏市场发展洞察

易观分析

医疗 防敏 儿童

中国全屋智能市场将达万亿级,仅3.5%住宅渗透率拥有巨大潜力

极客天地

镜舟:打造行业顶级国产OLAP数据库

镜舟科技

面试官:try-catch放在循环体内还是循环体外,哪种效率更高?

CloudCanal 落地 StarRocks 数据迁移同步的实践与思考

StarRocks

数据库

镜舟数据库与 DataBuilder 完成兼容性认证,助力企业开展“极速统一”数据分析

镜舟科技

数据库

NFTScan 与 DeBox 达成合作,双方在 NFT 社交数据层面展开合作

NFT Research

NFT

百度CTO王海峰:全栈AI技术加持,打造新一代大语言模型文心一言

飞桨PaddlePaddle

测试人社区技术沙龙——计算机视觉在App兼容性测试中的实践

测试人

软件测试 测试开发 测试开发自动化测试

好用的Java开发工具:IntelliJ IDEA 2022v2022.3.3汉化激活版

真大的脸盆

Java Mac Mac 软件 Java 开发

adobe安装提示错误“Error:SyntaxError:JSON Parse error:Unexpected EOF”

互联网搬砖工作者

好家伙!阿里最新SpringBoot进阶笔记涵盖了SpringBoot所有骚操作

Java你猿哥

Java Spring Boot 面经 SSM框架

不可错过!Arm 、Intel 及阿里云等资深技术专家现场解读系统安全

OpenAnolis小助手

系统安全 Meetup 龙蜥社区 sig 机密计算

初学后端,如何做好表结构设计?

王中阳Go

Go golang 数据库 表结构 golang 面试

龙蜥自动化平台 SysOM 2.1 热补丁中心介绍 | 第 74 期

OpenAnolis小助手

直播 系统运维 龙蜥大讲堂 SysOM 补丁

pytest学习和使用4-pytest和Unittest中setup、teardown等方法详解和使用(最全)

Python 自动化测试 unittest 测试框架 pytest

如何选择最合适的Ajax框架?_Java_胡键_InfoQ精选文章