在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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:374317
用户头像

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

关注

评论

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

阿里云ECS后台CPU占用100%,top却找不到

Jeremy Lai

cpu 100% 阿里云;

小程序正式版报错600002 url not in domain list

Jeremy Lai

小程序

瓴羊Quick BI带给企业新发展,企业数字营销和运营变得格外简单

对不起该用户已成仙‖

Java递归实现评论多级回复

Jeremy Lai

递归 解决方案

SpringBoot整合RabbitMQ实现六种工作模式

Jeremy Lai

spring-boot Rabbit MQ

详解ConCurrentHashMap源码(jdk1.8)

Jeremy Lai

ConcurrentHashMap 源码阅读

详解MySQL隔离级别

Jeremy Lai

隔离级别

MySQL更新锁表超时 Lock wait timeout exceeded

Jeremy Lai

事务隔离 Mysql死锁

应用瓴羊Quick BI数据分析,实时掌控企业运营数据

对不起该用户已成仙‖

Spring Cloud 整合 nacos 实现动态配置中心

Jeremy Lai

nacos 动态配置

手把手教你用Java获取IP归属地

Jeremy Lai

IP地址

React 之 createElement 源码解读

冴羽

JavaScript 前端 前端框架 React react源码

SpringBoot快速整合通用Mapper

Jeremy Lai

通用Mapper spring-boot

Centos7安装Nginx教程,一步安装http和https

Jeremy Lai

nginx Linux安装

深入理解Redis 数据结构—字典

Jeremy Lai

字典 redis 底层原理

刷新AI作图速度,最快开源Stable Diffusion出炉

OneFlow

人工智能 深度学习 前沿技术

模拟HashMap冲突

Jeremy Lai

hashmap 哈希冲突

Java通过反射注解赋值

Jeremy Lai

解决问题 java注解

字节一面:说说TCP的三次握手

Jeremy Lai

三次握手 TCP协议

后端程序员实现一个IP归属地的小程序

Jeremy Lai

SAP MM 使用两个STO实现免关税跨国公司间转储(II)

SAP虾客

SAP MM PO输出 NACE

【JVM故障问题排查心得】「内存诊断系列」JVM内存与Kubernetes中pod的内存、容器的内存不一致所引发的OOMKilled问题总结(上)

码界西柚

Docker Kubernetes 容器 JVM 12月日更

零售品牌如何挑选达人KOL?火山引擎VeDI有妙招!

字节跳动数据平台

大数据 营销 营销数字化 12 月 PK 榜

详解HashMap源码解析(上)

Jeremy Lai

HashMap底层原理

详解HashMap源码解析(下)

Jeremy Lai

HashMap底层原理

【JVM故障问题排查心得】「内存诊断系列」JVM内存与Kubernetes中pod的内存、容器的内存不一致所引发的OOMKilled问题总结(下)

码界西柚

JVM 12月日更 堆外内存 内存干扰

五种方式实现 Java 单例模式

Jeremy Lai

设计模式 单例模式

Seata 环境搭建

Jeremy Lai

分布式事务 seata

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