AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

Flex 技术创业公司推动新语言学习

  • 2008-04-24
  • 本文字数:1783 字

    阅读完需:约 6 分钟

近来,对于很多新兴创业型公司来说,选用 RIA 技术来实现他们的创意和服务已经不是什么新鲜的事情了。正处于起步阶段的基于 Adobe Flex 技术的 Babbel 就是其中一个例子。为了让读者能够对如何设计和实现一个应用 Flex 技术的新起步应用的构架有一个深刻的了解,InfoQ 就此采访了 Babbel 背后运营公司 Lesson Nine GmbH 的 CTO-Thomas Holl。

Holl 首先这样描述 Babbel:

Babbel 是一个基于社区的在线语言学习工具。Babbel.com 提供德语、英语、法语、意大利语及西班牙语课程,将社交网络的乐趣融入到有趣并有效的词汇扩充和句型构造的工具中。

而后,他回答了创建 Babbel 的初衷:

2006 年年末时,我们曾试图寻找一个现代的在线语言学习工具,让我们感到惊讶的是,当时还没有一个像 Babbel 这样的工具。现在的形势看上去已经在慢慢开始转变。但那个时候,能找到的词汇练习都极为基础,界面也不是非常友好。另外,你能买到的 CD-ROM 或 DVD 上的多媒体应用不仅昂贵,而且无论是在技术还是内容上都很陈旧。通过控制台进行的教学游戏是 Babbel 概念的角色模型-这些简单的应用使用起来很有趣并且获得了大众的喜爱。

在 Flex 与 AJAX 的比较上,他解释说:

从一开始就很明显,我们的站点应该使用流行的多媒体选项,比如播放音频、动画以及在后台缓存数据使得之对请求的回应更快。去年在我们着手开发的时候,除了 Flex 框架以外,再没有什么技术更能符合我们对 Babbel 定下的愿景了。我们也许可以通过 AJAX 来做很多事情,但那样就不得不处理繁多的 JavaScript 库,另外,用户体验也还是无法匹及 Flash 应用。

在众所关注的 Babble 开发所使用的技术上,Holl 和大家分享道:

我们有 4 个开发人员参与了 Babbel 的开发,其中 2 个关注 Flex 客户端,另外 2 个则开发了运行在 Amazon EC2 实例上的基于 Ruby On Rails 的后端。2007 年 5 月,我们一切从零开始,直到 2008 年 1 月发布第一个版本,整个开发历时 8 个月。

服务器端的实现包括了 12000 的 Ruby 代码,Flex 客户端的实现大概有 50000 行代码(包括 7000 行自动生成的集成代码)。

我们一直遵循一个循环的开发流程,并发现以一周为循环周期对我们来说最适用。除此以外,我们还使用了最实用的工具和流程,例如,使用 Subversion 来管理版本;采用 Trac 来跟踪事件(defect tracking)、文档编制(documentation)及交互(communication);通过 Ant / Capistrano 自动构建/部署(automated builds/deployment )等等。

Holl 也谈到了在 Babbel 的开发过程中所遇到的挑战:

为了实现从客户端对后端服务的访问,我们开始采用简单的定义语言(考虑过 WSDL,但基于 JSON 来的更为简单)来描述这些服务,然后,我们的生成器(generator)将这些定义转化为 ActionScript 方法,这样一来,客户端可以通过静态类型值对象(类也是自动生成的)来访问从服务器返回的数据(通过 HTTP 协议以 JSON 类型返回)。然而,对于某些功能(比如“people search”)将数据以这样的方式封送处理似乎不是很合适,通过编写代码来动态的创建 GUI 元素纯粹是浪费。我们想充分利用 Rails 的力量来生成 HTML 代码,但由于 Flex 所支持的 HTML 元素和风格有限,在 Flex 上显示 HTML 受到了严重的束缚,而现在,我们通过 Rails 来生成 MXML 然后在客户端显示。通过这个方法,服务器同样可以在客户端激发一些动作(比如,收到新信息的时候,需要在客户端显示一个提示)。

关于 RIA 相关技术和构架,Holl 回想道:

另外一个时不时就冒出来的问题是客户究竟可以并且应该拥有多少个不同的状态。这个问题的提出,促使我们进行了几轮优化和测试来寻找对于 Babbel 来说最好的平衡点。客户在服务器端的相关变化,服务器会在回应下一个客户请求的时候通知客户(这就不再需要 push 构架),客户收到通知以后再由其本身决定是否要与客户端同步。

什么技术可以推动 Bebbel 将来的发展?

我们会将我们的语言教学工具努力推向类似游戏的用户体验。下一个大的目标之一是集成语音和视频聊天功能,通过 Adobe 系列技术,这个功能是极有可能实现的,我们目前正在对其进行评估。之后,我们想在网络和社团特性方面添加大量的功能。另外,团队对于网站内容的管理、以及用户对网站的贡献的可能都需要得到巨大的扩展。我们还想将 Babbel 带入移动世界,这也意味着会涉及到 J2ME、Symbian 或 iPhone 的开发。

查看英文原文: Flex Startup Helps Learning New Languages

2008-04-24 10:29940
用户头像

发布了 71 篇内容, 共 21.6 次阅读, 收获喜欢 3 次。

关注

评论

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

观测云对接 OpenTelemetry 最佳实践

观测云

OpenTelemetry

OpenTiny CCF开源创新大赛赛事指南来啦,助力你赢取10W赛事奖金

华为云开发者联盟

开源 低代码 OpenTiny 企业号 8 月 PK 榜 2024企业号8月pk

99元做自己网站的管理员

coxi_vv

开源 建站 halo 1Panel 飞致云

5 大场景上手通义灵码企业知识库 RAG

阿里巴巴云原生

阿里云 云原生 通义灵码

SaaS应用加速问题怎么解决?

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商 SaaS应用加速 SaaS加速

晨曦抵校,夜幕归家:边缘AI守护,全程体验无忧

E科讯

事业-最佳实践-个人-高强度调节

南山

高强度调节 调整

Vue Vine:带给你全新的 Vue 书写体验!

OpenTiny社区

开源 Vue 前端 TinyVue

天下拍-为您提供拍卖业务的一揽子解决方案

至存网络

竞价实例 拍卖 国有企业增资

EZ先享官海外溯源之旅让马粉再一次为马自达着迷

极客天地

京东商品详情API:解锁数据分析与决策支持的新商业价值

代码忍者

爱在七夕,巧手编织浪漫云端 —— 用1Panel为她的世界添一抹不凡

coxi_vv

七夕 建站 halo 1Panel 恋爱代码

【YashanDB数据库】YAS-02024 lock wait timeout, wait time 0 milliseconds

YashanDB

yashandb 崖山数据库

流程图框架 - LogicFlow 2.0 发布啦 🎉🎉🎉

R0ger_OuO

开源软件 BPMN 可视化数据 流程图绘制 LogicFlow

【YashanDB数据库】YAS-02032 column type is incompatible with referenced column type

YashanDB

yashandb 崖山数据库 崖山DB

Web3 游戏周报(8.04 - 8.10)

Footprint Analytics

链游

一文带您了解如何降低对象存储成本

天翼云开发者社区

对象存储 天翼云

事业-最佳实践-个人-心态调整

南山

【YashanDB数据库】YAS-02079 archive log mode must be enabled when database is in replication mode

YashanDB

yashandb 崖山数据库

云高性能计算平台 CHPC 让企业的传统 HPC 玩出新花样

Baidu AICLOUD

HPC 高性能计算

5 大场景上手通义灵码企业知识库 RAG

阿里云云效

阿里云 云原生 通义灵码

支持S3协议的S3cmd工具简单使用

天翼云开发者社区

云计算 S3 cmd

解析静态IP的应用场景与优势

IPIDEA全球HTTP

静态IP

中小企业异地组网方案优化——SD-WAN的应用

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商 异地组网 SDWAN

在 Django 上实现定时任务的指南

我再BUG界嘎嘎乱杀

Python django 编程 爬虫 后端

事业-最佳实践-个人-人际关系维护

南山

人际关系 维护关系

Flex技术创业公司推动新语言学习_Java_Moxie Zhang_InfoQ精选文章