写点什么

Wee:基于 Continuation 的 Ruby Web 框架

2009 年 3 月 28 日

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

2009 年 3 月 28 日 21:373320
用户头像

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

关注

评论

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

MyBatis支持的jdbcType 枚举类型

Kevin Liao

谁能让你安稳

Neco.W

工作 稳定性 努力工作

产品周刊 | 第 15 期(20200517)

Herbert

产品 设计 产品经理 产品设计

设计模式前传——为什么要学设计模式

海星

Java 面试 设计模式

中小型城市商业银行数字化转型实践(三)数据中台建设思路和路径

泡菜小仙

数据中台 数字化转型 数据架构

linux文件系统-inode学习整理

戈坞昂

Linux inode

重新强调完成的定义

Bob Jiang

Scrum 完成的定义 DoD definition of done

部门最漂亮的妹子离职了

无箭的丘比特

团队管理 生涯规划 企业文化 职场

Spring Security 中的授权操作原来这么简单

江南一点雨

Java spring Spring Boot spring security

给苹果提醒APP配个助手

BabyKing

提醒助手 TODO 奇妙清单 Reminders Helper

ZooKeeper,到底如何选主?

奈学教育

单核小鸡上的Minikube实践(一)

摩登土狗

Docker Linux DevOps k8s minikube

npm下载electron缓慢的问题

玏佾

npm Electron

看得懂的区块链及智能合约概念

石君

区块链 智能合约

Vue+SpringBoot+SpreadJS 实现的在线文档

Geek_Willie

Spring Boot Vue SpreadJS

项目提升服务过程与总结稿

Geek_bc0aff

中小型城市商业银行数字化转型实践(二)集成关系ESB APIGateway ServiceMesh

泡菜小仙

架构设计 集成架构 ESB

我的读书笔记-樊登读书法

lmymirror

学习 读书笔记 方法论 读书方式

游戏夜读 | Two Sum问题的八个解

game1night

东哥和刘亦菲的故事

张利东

R

在Gitlab-ce的Docker中使用自定义端口

天飞

Docker gitlab

生活就是这么讽刺,有时候你嘲笑他,有时候你想成为他......

代码诗人

中年危机 文艺 短片小说

中小型城市商业银行数字化转型实践(一)整体技术架构转型(双态IT)

泡菜小仙

数字化转型 架构设计 技术架构

DDD 实践手册(番外篇: 事件风暴-概念)

Joshua

领域驱动设计 DDD 事件风暴 事件驱动 Event Storming

NIO看破也说破(四)—— Java的NIO

小眼睛聊技术

Java 学习 开源 架构 后端

识别代码中的坏味道(三)

Page

敏捷开发 面向对象 重构 代码质量 代码坏味道

MacOS 下使用VSCode进行GoLang Test报错

北纬32°

golang macos vscode Unit Test debug

Kafka系列第7篇:你必须要知道集群内部工作原理的一些事!

z小赵

大数据 kafka 实时计算

JAVA主流锁

颇风

Java 多线程

如何更自信的写作

七镜花园-董一凡

写作

换脸新潮流:BIGO风靡全球的人脸风格迁移技术

DT极客

Wee:基于Continuation的Ruby Web框架-InfoQ