写点什么

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

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

关注

评论

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

🎉开发者的福音:TinyVue 组件库文档大优化!类型更详细,描述更清晰!

OpenTiny社区

开源 前端 UI组件库

奥特曼被指爱权力胜过金钱;人类才是「幻觉问题」根本原因丨 RTE 开发者日报 Vol.103

声网

龙智DevSecOps研讨会年终专场来了!龙智、Jama与清晖敏捷专家邀您共探如何打好DevOps基础、赋能创新

龙智—DevSecOps解决方案

软件测试/人工智能丨三目运算符

测试人

人工智能 软件测试

PAM案例——某云服务商

尚思卓越

网络安全 堡垒机 特权账号管理

GreatSQL登陆Arch Linux:成功的数据库安装之旅

GreatSQL

数据库 安装 greatsql

软件测试/人工智能丨运算符优先级

测试人

人工智能 软件测试

软件测试/人工智能丨字符串

测试人

人工智能 软件测试

Blast 凭什么可以自带收益?

币离海

Native Rawfile开发指导

HarmonyOS开发者

HarmonyOS

SD-WAN VS MPLS :怎么选择最合适的网络连接方案?

Ogcloud

网络 SD-WAN 组网 MPLS

E往无前 | 腾讯云大数据 ElasticSearch 高级功能:Cross Cluster Replication实战

腾讯云大数据

ES

期待2024年初以太坊的最新升级,降本增效,利好Layer2 !

币离海

怎样利用SD-WAN进行异地组网?

Ogcloud

网络 SD-WAN 组网

和鲸科技携手深圳数据交易所,“数据+数据开发者生态”赋能人工智能产业发展

ModelWhale

人工智能 数据要素 数据科学家 工业数字化 深圳数据交易所

GitHubMySQL升级8.0复盘【译】

FunTester

ONLYOFFICE协作空间2.0:文档协作更便捷

陈橘又青

协同办公 协同办公软件

如何用ChatGPT来提高独立站博客的生产力

九凌网络

新工具:CloudBees Pipeline Explorer改善日志查看体验,简化复杂Jenkins流水线故障排除

龙智—DevSecOps解决方案

pipeline

英特尔展示下一代晶体管微缩技术突破,将用于未来制程节点

E科讯

软件开发降本、增效、提质的产物——低代码平台

互联网工科生

软件开发 低代码开发 JNPF

精准捕捉异常时刻——从写好事件标题与内容开始

观测云

运维 监控告警

SD-WAN解决企业国际互联组网需求

Ogcloud

网络 SD-WAN 网络管理

性能提升30%,陌陌应用性能持续剖析产品化实践

童子龙

APM javaagent 应用性能监控产品

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