报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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

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

关注

评论

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

LED植物生长灯怎么做更有效?聚光和散热不能少!

电子信息发烧客

爱莫科技 ×英特尔®丨「虚拟店长」轻松提升消费者店消费体验

科技热闻

存在争议的低代码,真的能火吗?

代码生成器研究

轻量应用服务器首选华为云,为何说是中小企业的最佳选择?

轶天下事

高阶版本来袭!华为云这款轻量应用服务器“战斗力”更强了

轶天下事

走进低代码:不懂编程也能5分钟开发一个应用

互联网工科生

低代码 JNPF

程序员惶恐?GPTs大火,AI编程不会成为主流?

代码生成器研究

AI机器学习:突破传统,引领智能科技未来

不在线第一只蜗牛

人工智能 机器学习 AI

上海站 | RocketMQ Meetup 重磅来袭

Apache RocketMQ

开源 消息中间件 微服务、 消息列队

你怎么看低代码平台技术?

代码生成器研究

软件测试/人工智能|如何利用ChatGPT帮助我们编写测试用例

霍格沃兹测试开发学社

低代码平台有哪些优势?

代码生成器研究

低代码的能力边界在哪?

代码生成器研究

spring.factories文件作用详解,@SpringBootApplication启动过程与其关联

javaNice

Java springboot

一文全面了解低代码

树上有只程序猿

软件开发 低代码 JNPF

Amazon EC2 新手初探:为实例安装图形界面

王强

Amazon EC2 亚马逊云服务器

软件测试/测试开发/人工智能丨视觉与图像识别自动化测试

测试人

人工智能 软件测试

学python就能找到高薪工作吗?

代码生成器研究

Databend 开源周报第 120 期

Databend

低代码需要什么配置的电脑?

代码生成器研究

文心一言 VS 讯飞星火 VS chatgpt (139)-- 算法导论11.4 3题

福大大架构师每日一题

福大大架构师每日一题

镭速,克服UDP传输缺点的百倍提速传输软件工具

镭速

文件传输工具 大文件传输工具 UDP传输

当AI加上低代码,未来将如何颠覆我们的世界

代码生成器研究

Scrum敏捷开发培训敏捷开发团队必修课

顿顿顿

scrum敏捷工具 scrum培训 敏捷开发培训 敏捷研发管理工具 scrum研发工具

软件测试/人工智能|思维导图很难画,ChatGPT来帮你

霍格沃兹测试开发学社

软件测试/人工智能|测试数据很头疼,ChatGPT帮你造

霍格沃兹测试开发学社

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