写点什么

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

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

关注

评论

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

善盾SD币是什么?

飞亚科技

语音聊天室 anyHouse 使用手册

anyRTC开发者

ios android 音视频 WebRTC RTC

3w 字长文爆肝 Java 基础面试题!太顶了!!!

苹果看辽宁体育

Java 面试 后端

手把手教你写一个spring IOC容器

华为云开发者联盟

spring 容器 ioc spring框架

Spring IOC 特性有哪些,不会读不懂源码!

小傅哥

Java spring 小傅哥 控制反转IOC

区块链产业园区服务平台开发,搭建区块链园区运营平台

13828808769

区块链+ #区块链#

区块链农产品溯源平台,为农产品质量安全护航

13828808769

区块链 区块链+

Golang 字符串分组

一代咩神

Go 语言

马特量化交易机器人,炒币24小时不停歇

飞亚科技

盘点 15 个好用的 API 接口管理神器

Java小咖秀

工具 工具分享

区块链农产品质量安全溯源,保证农产品品质

13530558032

团队协作中,如何写出让同事赞不绝口的代码

有道技术团队

代码规范

火山引擎 Redis 云原生实践

火山引擎开发者社区

云原生 redis cluster

LeetCode题解:剑指 Offer 49. 丑数,二叉堆,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

空中交警:借你一双“慧眼”,让你看透这飞机的“黑色十分钟”

华为云开发者联盟

modelarts yolo 华为云ModelArts 模型开发 华为开发者大会2021

“区块链+电子处方”,医疗跟更健康

电微13828808271

Linux cat 命令

一个大红包

4月日更

EFT【阿凡提】等级规则、收益、排线方法与EFTalk十大关键点

币圈那点事

【LeetCode】寻找旋转排序数组中的最小值Java题解

Albert

算法 LeetCode 4月日更

重磅功能!博睿数据APM助企业从容应对云原生架构演进

博睿数据

应用性能监控产品 Bonree Server 博睿数据 bonree

手摸手教你阅读和调试大型开源项目 ZooKeeper

HelloGitHub

Java zookeeper 源码分析 ZooKeeper原理

智慧平安社区建设,创建“三零平安社区”

13530558032

SumSwap节点预售关注度飙升而Uniswap V3版本却备受争议

币圈资讯

多功能工具箱Quicker+笔记软件flomo,竟然还能擦出这样的火花?

彭宏豪95

效率 工具软件 笔记 工具分享 4月日更

区块链数据共享平台—追踪、溯源、可信

电微13828808271

区块链+

年薪百万是社会认同,更是自身价值体现

博文视点Broadview

区块链电子合同--助推合同数字化管理

13530558032

技术分享第二讲报名!

神策技术社区

大数据 活动 报名 神策

面试笔记(一)事务连环炮

U2647

分布式事务 事务隔离级别 事务 4月日更

python 调用 cmd 而不显示黑框的方法

一代咩神

Python cmd

初识Nginx(一)

书旅

nginx

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