BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Wee:基于Continuation的Ruby Web框架

| 作者 Mirko Stocker 关注 0 他的粉丝 ,译者 李明(nasi) 关注 0 他的粉丝 发布于 2009年3月29日. 估计阅读时间: 2 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

Wee(Web Engineering Easy的简称)是一个类似Seaside的Web框架,它使用Continuation,这使得开发者可以“轻松漂亮地完成任务”,Wee的作者Michael Neumann如此形容到。Wee也提供可复用组件,这种组件“和GUI中的Widgets类似,开发一次,就可以随处使用”,它的目标是让HTML的GUI应用可以组建化,而不是让其REST化。即将发布的2.0版本也将完全基于Rack。

Neumann在一篇关于Wee的博文中示例说明了使用Continuation的代码在可读性上有多么明显的优势。使用Continuation,简单的序列流就可以写成这样:

 callcc page1
 callcc page2
 callcc page3

还有另一种连续传递风格(Continuation Passing Style)的写法:

 call page1 do
   call page2 do
     call page3
   end
 end

如果Continuation这么有用,那为什么不是所有框架都采用Continuation呢?没有出现更多基于Continuation的Ruby Web框架,其中一个原因就在于:Ruby 1.8存在内存泄露。虽然Brent Roman的MBARI补丁已经修复了这个问题,但是还没有引入到官方的Ruby 1.8中(一旦Engine Yard开始接管Ruby的维护工作,应该就会引入这个补丁)。Ruby 1.9.1b不再存在内存泄露的问题,Wee也得益于这一点

Ruby 1.9.1中10000个请求(1个线程中)需要花费16秒,内存占用为12MB,而同样的请求在Ruby 1.8.7中会占用多达329MB的内存,时间上也长达56秒。

看来Wee是人们选择升级到Ruby 1.9的一个有力理由,而由于Merb也将合并到Rails 3.0之中,所以Wee很可能成为取代Rails的最佳选择。

查看英文原文:Wee: Continuation Based Ruby Web Framework

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT