写点什么

如何选择最合适的 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:043353
用户头像

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

关注

评论

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

KaiwuDB 连续三年荣获开源中国“优秀开源技术团队”

KaiwuDB

KaiwuDB 优秀开源技术团队

项目实战接口开发SpringBoot

不在线第一只蜗牛

springboot 项目开发 区块链项目开发

华为云CodeArts Pipeline常见问答汇总

华为云PaaS服务小智

华为云

凝心聚力 共赢计算新时代 ——2023计算产业生态大会在京圆满举办

彭飞

宣布推出适用于 Amazon DynamoDB 的增量导出到 S3

亚马逊云科技 (Amazon Web Services)

S3 API 云存储服务 Amazon DynamoDB

理解Mysql索引原理及特性

快乐非自愿限量之名

MySQL 开发 检索 检索引擎

诚邀报名|聚焦项目管理和社区协作,解读开源治理前沿见解和最佳实践

开放原子开源基金会

Java 开源 程序员 开发者 算法

软通咨询彭智勇(上):探索供应链金融创新路径,驱动产业破局

软通咨询

数字化转型 供应链金融 数字化咨询 管理咨询

5种容器内指定特定域名解析结果的方式

华为云开发者联盟

容器 云原生 华为云 域名解析 华为云开发者联盟

【教程】源代码加密、防泄密软件

雪奈椰子

华为云CodeArts Repo常见问答汇总

华为云PaaS服务小智

华为云

AI浪潮下,大模型如何在音视频领域运用与实践?

不在线第一只蜗牛

人工智能 AI 音视频 大模型

小红书可观测 Metrics 架构演进,如何实现数十倍性能提升?

小红书技术REDtech

云原生 可观测性

亮相CCF中国软件大会,天翼云助力千行百业搭上“数字快车”

天翼云开发者社区

人工智能 CCF

点燃数字引擎,天翼云助力汽车行业云上加速跑!

天翼云开发者社区

人工智能 数字化转型 汽车

这就是univer

梦数技术团队

typescript 前端 React Hydrate Vue3 Typescript

低代码平台浅析:引迈JNPF

互联网工科生

低代码 JNPF 引迈

最佳 Mock 工具排行榜: 顶级5个必知选择

Liam

前端 前端开发 Mock Mock 服务 Mock.js

技术写作者所需的关键技能和知识

小万哥

技术 程序人生 写作 软件开发 作者

华为云CodeArts Deploy常见问答汇总

华为云PaaS服务小智

华为云

行业唯一!百度上榜“2023年度中国数据管理十大名牌企业”

百度安全

管理 Kubernetes 集群这3年,我踩过的十个坑

高端章鱼哥

Kubernetes 计算机

Axie Infinity 之后,Ronin 的潜力何在?

Footprint Analytics

区块链 以太坊 Web3 游戏 Ronin

luchysheet升级版univer产品介绍会

梦数技术团队

typescript 前端 Vue3 Typescript

介绍一款低代码数据可视化平台

秃头小帅oi

低代码 数据可视化

19家游戏伙伴参加鸿蒙原生游戏合作仪式,与华为游戏中心一起推动产业自主创新和高质量发展

新消费日报

【案例分享】 小鹅通|渐进式拥抱 DevOps

CODING DevOps

DevOps

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