- 浏览: 849762 次
- 性别:
- 来自: lanzhou
文章分类
最新评论
-
liu346435400:
楼主讲了实话啊,中国程序员的现状,也是只见中国程序员拼死拼活的 ...
中国的程序员为什么这么辛苦 -
qw8226718:
国内ASP.NET下功能比较完善,优化比较好的Spacebui ...
国内外开源sns源码大全 -
dotjar:
敢问兰州的大哥,Prism 现在在12.04LTS上可用么?我 ...
最佳 Ubuntu 下 WebQQ 聊天体验 -
coralsea:
兄弟,卫星通信不是这么简单的,单向接收卫星广播信号不需要太大的 ...
Google 上网 -
txin0814:
我成功安装chrome frame后 在IE地址栏前加上cf: ...
IE中使用Google Chrome Frame运行HTML 5
cells "brings the benefits of component-oriented development to the Ruby on Rails web application platform", letting you create independent and reusable components that are self contained and can be combined and reused with other cells in your applications.
Building on top of Cells, Apotomo enhances Cells into fully stateful components that offer the same level of abstraction as the well known GUI widgets, meaning that "Apotomo extends Rails with event-driven widgets that know when and how to update themselves". So the developer using Apotomo can take advantage of existing JavaScript UI libraries like YUI without the need to write JavaScript or caring about the underlying AJAX calls. Apotomo widgets can be chained together with events, making the widgets independent of each other and easier to reuse.
InfoQ already covered Cells over a year ago, in the meantime, Cells 1.0 has been released and the work on Apotomo has continued.
InfoQ chatted with Nick Sutterer, the main developer of Cells. What changes have you made to Cells in the past year since our last interview?
A bunch of! As Cells grew with Rails from 1.2.3 to version 2.3, I learned Ruby! My better understanding of the language and various forks to steal from resulted in a cleaner and more structured Cells code.
Beside readable code we introduced a simple caching similar to the fragment caching found in Rails views. It allows Cell views to be cached until an attached versioning method decides to expire it, without loosing the object-oriented features of a Cell instance. A great help was Michał Łomnicki, who came up with patches and real test cases in his project.
From a user's perspective Cells became even faster. I recently increased view lookup speed by 99% with a stupid memoize pattern. Behind the scenes more things are going on. After spending my daytime for a project in an uncomfortable, loud office, I kept working on Apotomo, which is based on Cells and brings stateful components to Rails. That night-time coding was like a salvation from my tiresome project.
You said the last time that there's a "noteable interest" in the Rails community. How is the situation today?
I wouldn't talk about statistics here, would I? Well, when I started Cells, a handful of programmers shared the problem with Rails' lack of components with me, now there's a real «scene» of widget freaks.
Looking at the github watchers for Cells speaks for itself. We currently got something around 150 coders who want to get informed instantaniously about changes to Cells. That's cool, and I love the fact people are interested in this project. We had about 6 successful merges of forks back to the Cells mainline.
Suddenly there were blog posts popping up in the net, discussing Cells and alternatives like partials with presenters, it's exciting to read about ideas from other people.
Another indicator for «interest» is the #cells IRC channel. Everytime I join already 4-8 people are lurking around there, from all over the world. New people keep coming and ask for support or help. I think the channel is the most important support medium for the project, and it's fun to meet people there.
Since Cells was born a dozen of companies contacted me telling me about their usage of Cells in real projects, so there are people using it. Hey, even IBM kicked in, but I'm still desperately waiting for donations. Thanks to the MIT license.
A highlight for the project was the talk together with my bro Mike Pence at the RubyConf 2008 in Orlando, Florida. We had a great time hanging out in Sarasota, preparing the talk ,drinking beer and then, showtime! There were real people, sitting in the audience and listening to our talk. We had some intense discussions after the talk, and even at the pool party at night I couldn't stop babbling about components with Kirk.
Soon after my US trip we released Cells for Rails 2.3, the official announcement on the Apotomo blog got tweeted by DHH himself and brought up to 500 readers per day. That was an interesting experience and really demonstrated David's range. Wow.
David once contacted us but we never came up with a solution on how to integrate Cells into Rails. We all like it better as a plugin. Plugins are a good thing.
I'm peeking at the Rails 3 code every once in a while. I'm a great fan of Yehuda's refactorings and I really hope the new internal API will open the way for something like Cells. Everybody needs components. So right now, I either have to wait till the Rails 3 API gets solid, or I could dive into the new code. Right now, I'm concentrating on writing tutorials, articles and improving Apotomo, we will see if the core guys come up with a Cells replacement in Rails 3.
Do we really need stateful components?
No. If you prefer the "brutal linear controlflow" where you either render the complete page at every request, or have some cluttered AJAX-logic in controller, view and maybe even in the model layer of your MVC-stack, then you don't need components. Same thing, if you like to establish the complete process environment at every request, you won't need statefulness.
Let me quote Mike. "It's time to have better toys, the cool kids have it already, so why not take Rails to a further level?". Smalltalkers love Seaside, GUI developers hate the web. Why not take the best from both worlds and put it on Rails?
I mean, it's up to the programmer how much Apotomo he wants in his app, and as soon as he experiences the real power of stateful widgets, he will never return to his fat controllers.
It's not only the reusability of his components, it's the better encapsulation, strong test scenarios for small parts of the apps, it's the event-driven approach, less code and a better development workflow that will convince him that stateful, living widgets are... cool.
To find out more about Cells, visit the Cells website on RubyForge.
发表评论
-
Rails 3 Beta版本月将出 Merb融合带来选择
2010-01-11 09:48 1419Rails 3,目前流行Web开发框架Rails的一个升级版 ... -
MerbAdmin:Merb数据管理好帮手
2010-01-11 09:43 907Merb中要加入类似Django的Admin功能早有传闻,如今 ... -
rails cms
2009-12-28 20:29 1669Rails CMS alternatives ======= ... -
Generating Thousands of PDFs on EC2 with Ruby
2009-12-24 18:01 1038The Problem For about two mont ... -
Shrink your JavaScript with the Google Compiler Rails Plugin
2009-11-16 11:27 933Like it or not, JavaScript has ... -
Thank you, Rails
2009-11-06 18:21 567It’s fashionable, or perhaps in ... -
Top 50 Ruby on Rails Websites
2009-10-31 15:18 944We’re big fans of Ruby on Rails ... -
Let a human test your app, not (just) unit tests
2009-10-31 09:26 853I’m a big believer in unit test ... -
Heroku Gets Add-Ons: Serious Ruby Webapp Hosting Made Easy
2009-10-30 07:37 913Heroku is a Ruby webapp hosti ... -
Rails + Google Analytics = easy goal tracking
2009-10-29 20:38 892Google Analytics is an indis ... -
Integrating Flickr into your rails website
2009-10-29 20:37 1067In this post I’m going to show ... -
Ruby on Rails Roadshow in Austin Thursday
2009-10-29 14:25 809Justin Britten founded Prefine ... -
Ruby on Rails and the importance of being stupid
2009-10-21 08:13 806A tale of two servers… Server ... -
How a 1-Engineer Rails Site Scaled to 10 Million Requests Per Day
2009-10-20 14:49 775Ravelry is an online knitting ... -
Installing Rails on CentOS 5
2009-10-20 14:24 1191Note: Since this post origina ... -
CentOS配置lighttpd和rails
2009-10-20 14:22 1123lighttpd版本:1.4.18 fastcgi版本: ... -
Cells:将组件开发带入Ruby2.3
2009-10-20 09:17 1118cells "将使得面向组 ... -
High Quality Ruby on Rails Example Applications
2009-10-15 16:34 1461Sometimes to best way to get ... -
Install Passenger on Ubuntu
2009-10-07 10:17 806Phusion Passenger is one of the ... -
Installing Ruby on Rails with Apache on Ubuntu 9.04 (Jaunty)
2009-10-07 10:00 1015Installing Passenger and Depe ...
相关推荐
所有必需的信息都可以在Wiki上找到: 如有疑问,请使用i18_routing谷歌论坛: 适用于Rails 2.3、3.0、3.1和3.2下一个版本的TODO(写于2010年6月9日) 处理同一资源名称的多个翻译(例如:嵌套和非嵌套资源) 处理...
rails 2.3 chm文档 官方最新版
Railsbrain是一个专注于Rails框架的在线资源平台,而这个“railsbrain网站的rails2.3文档(bug修复版)”显然是一份针对Rails 2.3版本的更新文档,旨在修复用户在浏览和交互过程中遇到的问题。Rails是Ruby编程语言的...
Web开发:Ruby on Rails.pdf
Ruby on Rails Guide:是rails官方教程,本人为了大家学习查阅的方便,制成chm格式。就如同java doc的chm格式一样方便。
Rails是一个基于Ruby语言的开源Web应用程序框架,它遵循模型-视图-控制器(MVC)架构模式,旨在提高开发效率和代码的可读性。 在这个API文档中,你可以找到关于以下关键知识点的详细信息: 1. **Ruby语法基础**:...
EpicEditor for Rails EpicEditor为Rails -是一个Ruby on Rails的版本 “可嵌入JavaScript降价编辑器”,准备向右拖放到你的Rails应用4。 注意: EpicEditor for Rails版本0.2.2.1只是将EpicEditor添加到资产管道。 ...
Rails 3.2 API 是一个重要的开发资源,主要用于Ruby on Rails框架的开发。Rails是基于Ruby语言的一个开源Web应用程序框架,遵循MVC(Model-View-Controller)架构模式,广泛应用于构建动态网站和Web应用程序。Rails ...
Rails提供了诸如`remote_link_to`和`remote_form_for`等便利的助手方法,使得开发者可以轻松创建Ajax驱动的交互。这种集成使得开发富互联网应用(RIA)变得更加高效,无需深入理解底层的JavaScript和XML通信细节。 ...
Kube for Rails 4资产管道对于开发人员来说, 是一个最小CSS框架。 该项目将其集成到Rails 4 Asset Pipeline中。安装宝石在Gemfile中包含 ,以从安装它; gem "kube-rails" 然后从命令行运行bundle install 。使用...
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。
描述中的 "ruby and rails 的框架rails-2.3.3.zip" 提到的是 Rails 的另一个版本 2.3.3,尽管与标题中的版本号不完全匹配,但我们可以推断这是关于 Rails 2.3.x 系列的讨论。这个压缩包很可能包含了 Rails 框架的源...
ember-rails使在Rails 4.2+中开发应用程序变得更加容易。 此gem包含以下功能: 在构建资产管道时预编译车把模板。 包括Ember, 和的开发和生产副本。 包含以与Ember Data集成。 您可以在查看如何使用gem的示例...
Ruby on Rails是一个突然流行起来的框架,充当着Ruby编程语言的催化剂。随着Ruby的经验不断成功,开发人员开始寻求把他们的Ruby应用程序与用其他语言编写的应用程序集成。Rails对Web服务提供了优秀的支持。本文介绍...
费CMS for Rails。 真的。 与许多Rails CMS引擎一样,Fae提供了使您快速启动并运行的所有基础知识:身份验证,授权,时尚的UI,表单助手,图像处理和工作流。 但是与其他引擎不同,Fae生成的模型,控制器和视图是...
基于 PgQ Skytools for PostgreSQL 的 AR/Rails 队列系统,如 Resque on Redis。 Rails 2.3 和 3 兼容。 关于 PgQ 安装 安装天空工具:Ubuntu 11.10: # apt-get install postgresql-server postgresql-client #...
本资源"For-Rails-Beginners"显然是为那些希望入门Ruby on Rails的初学者设计的,特别是对于台湾地区和使用传统中文的用户。 在Rails框架中,以下是一些核心概念和知识点: 1. **Ruby语言基础**:在学习Rails之前...
本书《Aptana RadRails: An IDE for Rails Development》由 Javier Ramírez 编写,于 2008 年由 Packt Publishing 出版。 - **主要功能**:RadRails 提供了诸如代码补全、调试支持、项目管理、版本控制集成等功能,...
health_check宝石 ... gem版本〜> 1.6.1 for Rails 2.3或开发分支; 边缘开发分支; 注意:如果使用开发分支(有时会中断测试),则最好将其固定到特定的提交。 health_check提供了各种监视URI,例如: curl