写点什么

Rails Cells:让 Rails 支持面向组件的开发

  • 2008-05-18
  • 本文字数:1231 字

    阅读完需:约 4 分钟

Rails Cells 的目标是“把面向组建开发的优势带进 Ruby on Rails 网络应用程序平台”。单元(cell)就像是一个轻量级的控制器以及与其相关的可以嵌入网站的视图(类似于 Smalltalk 的网络应用程序框架 Seaside )。

那么 Rails 现在的功能有什么问题呢? Mike Pence 的博客里是这么说的:

很多 Rails 项目通常用 before_filters 和子视图(partials)来填补空缺,但是这种方法本身有些问题。共享的子视图有许多初始化代码,这使 application_helper 变 得肿胀不堪。由于他们能看到所有先前的控制器方法的实例变量——我觉得这是个不幸的设计——它们会非常依赖于最初引发它们的控制器、最初包含它们的视图, 还有它们所依靠的辅助器(helper)。从我的经验来看,很少见到大量的子视图能够容易地共享,而不需要人们通过相当痛苦地调试把它们从自己编织的依赖 网中解救出来。

与控制器和其视图之间的关系不同,控制器的实例变量并不会自动地分享给 cell,而必须要明确地传递。这就使得 Cells 能够独立于某个特定的控制器,从而既可以重用也可用共享了。

我们访问了 Cells 的开发者之一 Nick Sutterer,谈了关于 Cells 项目开发的情况:

我们正在写 Cells 的增强版,可是日常工作还是很忙的(开源开发者的经典理由)。幸运的是,社区上有 人已经提交了一些补丁,并帮助做了些文档——特别是 Mike Pence。在 1.0 发布时,我们希望这个插件是好用、著名的,其 API 应是稳定可靠的,并且将来不应有大的改动。
下一个版本将会完全兼容 Rails 2.0。现在辅助器(helper)还有一些问题。另外一个问题就是 Cells 的引擎(Engines 插件用来增强 Rails 自身的插件框架,使得更容易 在插件中共享控制器、辅助器和模块等)支持。我们其实很喜欢引擎。干得漂亮,James。然而人们好像都害怕它,因此我们只好把它变成用户可选的。我非常 喜欢把 cells 注入引擎的想法,这有助于把我的应用程序在最大程度上实现模块化。与 AJAX 结合时,cells 中的冒名保护(forgery protection)仍有一些问题。由于 cells 非常合适于 AJAX 来使用,我们将十分关注这点,并在下一个版本中解决这个问题。我保证。

我们还有兴趣听听,到目前为止,Cells 在 Rails 社区中被接纳的如何了:

Rails 社区对 cells 非常感兴趣。人们来到我们的聊天室或者使用邮件列表来询问怎样把 cells 集成到他们的项目中。Cells 把面向组件带进了 rails——然而要让开发者都了解到它的能量并且在大项目中使用它还需要一段时间。我的合作开发者 Peter Bex 已经开始使用 cells 了。他把 cells 集成到了一个叫做 formbuilder 的项目中。我现在忙于即将发布的基于 cells 的 Apotomo 插件。它用来把状态(stateful)组件引入 Rails,现在很热门。我敢肯定会有越来越多的好项目使用 cells 的。也许我应该在 cells 主页上开一个“成功故事”博客吧?

要详细了解 Cells,请参看 Cells 网站,或者看一看 Cells 文档

你使用过 Cells 吗?有没有关于 Cells 的成功故事呢?

查看原文: Rails Cells: Component-Oriented Development for Rails

2008-05-18 08:591600
用户头像

发布了 33 篇内容, 共 63272 次阅读, 收获喜欢 0 次。

关注

评论

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

AI 应用走向成功之路

柯杰

agent

「数」论|工业大模型黄金三角及新一代工业数据底座

麦杰科技

区块链ETF软件的功能分解

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链ETF

万界星空科技QMS质量管理系统几大核心功能详解

万界星空科技

万界星空科技 QMS 质量管理系统 生产质量管理 产品质量管理

如何在 Unity3D 导入 Spine 动画

北桥苏

Unity3D Spine

iVX 组件化赋能后端开发新生态

代码制造者

组件化 后端开发 图形化编排

我的赛博朋克家族成员

玄兴梦影

键盘 NAS 电子产品 赛博朋克 设备

基于DeepSeek的故障定位大揭秘

乘云数字DataBuff

可观测性 故障定位 运维监控 大模型 DeepSeek

发件箱模式:打造微服务可靠消息传输

俞凡

架构 最佳实践 设计模式

开放注册!RootTalk Sandbox沙盒系统正式上线

乘云数字DataBuff

可观测性 故障定位 Demo 运维监控

数智报告:一键合并精准高效

用友智能财务

用友 财务 数智化 智能财务 数智报告

藏数于仓 聚势东方 电科金仓赋能第八届数字中国建设峰会

科技热闻

首个云超算国标正式发布!百度智能云CHPC首批通过并获最高评级

科技热闻

京东商品详情API接口使用攻略

tbapi

京东商品详情接口 京东API 京东商品详情API 京东数据采集

如何用豆包做PPT?PPT自动生成全攻略!

职场工具箱

人工智能 PPT AIGC AI生成PPT 豆包

全开源、私有化部署!轻量级用户行为分析系统-ClkLog

ClkLog

开源 数据分析 埋点 用户行为分析 用户画像

非凸科技受邀出席AI SPARK活动,共探生成式AI驱动金融新生态

非凸科技

YashanDB|磁盘被 archivelog 写满?教你快速排查与应对!

数据库砖家

数据库

为了管理我那混乱的提示词,我开发了梦精灵提示词管理器,一个浏览器插件

龙正哲

【等保知多少】企业过等保要点看这里!

行云管家

网络安全 等保 等保测评

征程 6 | 逆向自证hbm与bc一致性

地平线开发者

自动驾驶; 算法工具链 地平线征程6

中关村科学城工业软件创新暨开源峰会在海淀成功举办

极客天地

25年甘肃省等保测评机构名单汇总

行云管家

等保 等级保护 等保测评

ElatoAI:开源 ESP32 AI 语音 AI 玩具方案;凯叔推出 AI 故事玩偶「鸡飞飞」丨日报

声网

影响LED显示屏价格的三大因素

Dylan

产品 LED LED display LED显示屏 LED屏幕

《Operating System Concepts》读后感

codists

操作系统

《Operating System Concepts》阅读笔记:p821-p897

codists

操作系统

京东商品列表 API 接口使用指南

tbapi

京东API接口 京东API 京东商品列表接口 京东商品采集

HarmonyOS运动开发:如何监听用户运动步数数据

王二蛋和他的张大花

鸿蒙 运动健康

eBPF开发者大会上,乘云技术专家分享eBPF在故障定位场景中的应用

乘云数字DataBuff

可观测性 故障定位 运维监控 eBPF 技术 eBPF开发者大会

CRaC 技术深度解析

mazhen

Java Linux Serverless Cloud Native crac

Rails Cells:让Rails支持面向组件的开发_Ruby_Mirko Stocker_InfoQ精选文章