写点什么

Wee:基于 Continuation 的 Ruby Web 框架

  • 2009-03-28
  • 本文字数:669 字

    阅读完需:约 2 分钟

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-03-28 21:373923
用户头像

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

关注

评论

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

css 学习笔记【二】-背景,渐变,链接文档的MIME类,id选择器和类选择器的区别

恒山其若陋兮

5月月更

互联网公司目标管理OKR实践落地与反思

laofo

互联网 OKR 研发效能 绩效管理 快手

场景实践 | 如何使用融云超级群构建游戏社区

融云 RongCloud

设施资产管理系统解决方案

低代码小观

资产管理 CRM CRM系统 企业设备管理 设备巡检管理系统

员工考勤打卡时,如何避免非本人代替打卡?

华为云开发者联盟

人脸识别 打卡 华为云FRS 华为云FunctionGraph 华为云APIG

Reactor百万连接的并发

C++后台开发

reactor 高并发 epoll Linux服务器开发 C++后台开发

开启分布式应用性能观测(APM)

观测云

可观测性 可观测

敏捷已死

方云AI研发绩效

互联网研发效能专家怎么找?

laofo

python实现连接两个数据库

YUKI0506

Tapdata Cloud 2.1.5来啦:新增支持Amazon RDS数据库,错误日志查询更便捷,Agent部署细节再优化

tapdata

SaaS 数据同步 polarDB Amazon RDS

万字长文:手把手教你实现一套高效的IM长连接自适应心跳保活机制

JackJiang

TCP 网络编程 即时通讯 im开发 心跳保活

TDengine在弘源泰平量化投资中的实践

TDengine

数据库 tdengine 开源 时序数据库

为什么说 MongoDB 和 HBase 不适用于汽车行业的时序数据处理?

TDengine

数据库 tdengine 开源 时序数据库

互联网大厂研发效能团队的需求管理

laofo

互联网 DevOps cicd 研发效能 CI/CD

面试突击49:说一下 JUC 中的 Exchange 交换器?

王磊

Java java面试

私有化的IM即时通讯平台,企业首选的沟通工具

BeeWorks

微信业务架构,学生管理系统架构设计

泋清

#架构实战营

Tapdata x 轻流,为用户打造实时接入轻流的数据高速通道

tapdata

SaaS 数据同步 实时数据 轻流

架构实战营|模块1

KDA

#架构实战营

ShardingSphere 在东南亚|与科技保险公司 Fuse 的技术融合

SphereEx

Apache 开源 ShardingSphere SphereEx 数据库·

直播预约|数据指标体系如何搭建才最有效,从0到1带你快速入门

袋鼠云数栈

大数据 数据中台

通过 Amazon API Gateway 和 Amazon Lambda 实现基于 Restful API 的 CloudFront Distribution 复制/克隆功能

亚马逊云科技 (Amazon Web Services)

Lambda Gateway

B站S11破亿直播在线稳定性保障秘籍——演讲实录

TakinTalks稳定性社区

混沌工程 系统稳定性 全链路压测 安全生产

netty系列之:在netty中实现线程和CPU绑定

程序那些事

Java Netty 程序那些事 5月月更

互联网公司目标管理OKR和绩效考核误区

laofo

OKR 研发效能 互联网公司 快手 绩效考核 GRAD

学生管理系统架构设计图

Justin1024

架构7期模块1作业

Elvis FAN

架构实战营

时序数据库的集群方案?

TDengine

数据库 tdengine 开源

时间序列化数据库选型?时序数据库的选择?

TDengine

数据库 tdengine

携手 TDengine,释普科技升级实验室仪器、监控智能方案

TDengine

数据库 tdengine 开源 物联网

Wee:基于Continuation的Ruby Web框架_Ruby_Mirko Stocker_InfoQ精选文章