什么是 Catalyst ?
引用作者所说的,这是基于 Maypole,并以创新的方式增加了各种 Ruby-on-Rails,Struts,Spring,Tomcat 等框架或应用的特性。似乎挺激动人心的。
作者 Sebastian Riedel 是 Maypole 的第二任维护者,由于对 Maypole 后续版本提出了若干修改意见,遭到了 Simon Cozens 和其他人的一些反对意见(Maypole 不应偏离原来的设计思想太多)而自立门户,开始了这个项目。
日前释出的 2.99_12 版本,真正体现了 MVC 的框架结构。在他的 cpan 站点上列出了众多相关的模块。绝对应该好好研究分析。期望他能够比 Rails 更为方便和强大。
心急好奇的我,参照 intro 文档,写了一篇短文:初见 Catalyst,发表在 wiki.perlchina.org 上,写得老眼昏花。
Published on January 29, 2005 2:46 pm.
Filed under: 东拉西扯 Tags: catalyst, maypole, perl
先是阅读 joe jiang 的 Blog,再次看到了 Ruby on Rails, 这篇文章篇幅虽然很长,不过大多是些插图,原本想拿来翻译一下的,不过忍不住边读边试了(机器上已经有了 ruby 环境)。非常简单,按部就班的跟着文章中的步骤做,就像在一层层拨开面纱一般,Rails 的功能和简便的特点渐渐的浮现出来,并深深为之震撼,在不断的点头,发出“哦…哦…”的过程中,领教了 Rails 这个绝对不可错过的 MVC 架构的 web 应用开发框架。
之前也看过 Perl 写的 Maypole, 我觉得他们有些异曲同工。不过 Maypole 做的没有 Rails 那么到位和全面。很多地方,他们都有着相似的概念。首先都是 MVC 架构。其次都有个很方便的数据库后端,可以直接将数据库表映射到类,然后每条表记录就是该类的不同实例。写程序的人用起来非常方便。不过 Perl 里面用的是 Class::DBI ,它本身还有许多扩展模块,所以安装配置比较麻烦。用起来还是有些接近的,Class::DBI 里面的 $obj->retrieve_all 到 Rails 里面就是 obj.find_all 。Rails 用 Ruby 写就,所以读写起来就好比在读写伪代码,书写上比 Perl 更为简洁。所以 Rails 官方网站上说,一个人用 10 个小时就可以完成一个普通应用站点的制作,并声称比起 Java 的开发要快上 10 倍。这一点都不夸张,Java 本来就够啰嗦的。Perl 还好些,不过要方便的使用对象数据存储器,而非 hash 引用对象数据,你就要应用 Class::Accessor 等模块。或者你要做设计模式方面的考虑,还有更多的,一大堆的 Class::* 等着你发掘和实践。所以学习和应用曲线比较高。Ruby 是后起之秀,自然明白孰优孰劣,所以写起来简单便是它的一大特点。
今天回到公司,下载了官方站点的一个 mov 演示,大体上和那篇文章的内容相当,我敢保证,看过之后一定会给你一个 shock 。其实,回过头来,这种用户的简单,是建立在 Rails 框架开发小组的繁复劳动的基础上的,所以,我们仅仅是有一次站在了巨人的肩膀上而已。
和 Maypole 一样,在我看来,这些介绍文章所谈到的内容,对于一个真正的,实践中需要的系统,还是有些距离的。客户的要求会很个性化,列出的清单,可能需要排序,和搜索,也需要分页,实际的系统还可能结合更多的 javascript 来做些控制,错误的处理,国际化的特点等等。表与表之间的连接关系可能极为复杂,每次删除或者什么操作,都可能需要做连带的处理,这可以通过数据库的存储过程来做,不过我更希望通过应用程序本身来做。Class::DBI 就可以定义一系列的 trigger 。Perl 里面还有个模块 Class::DBI::Loader::Relationship ,允许你使用一句普通的英文句子来定义表与表之间的映射关系,用起来非常方便(不必在A,B内各自定义,Rails 里面确实需要两者内部各自定义的,参见 mov 录像)。这也是我欣赏 Perl 的地方 — 它可以让人自由发挥 — 当然这种思路和语言无关,我想 Ruby 里面同样可以实现,只是目前 Rails 不是这样的,或者我还不知道罢了。
anyway, Rails 是样好东西,不管是学习也好,还是应用,都该好好研究一下。
Published on January 28, 2005 2:31 pm.
Filed under: 东拉西扯 Tags: maypole, rails, ruby
今天算是收获和业绩比较丰硕的。不但完成了昨天开始的《Phalanx 项目》一文的翻译,在论坛答应 joe jiang 之后,立即着手审校他翻译的《Perl Mongers: 如何成功运作 PM 用户组》一文。审校中作了较大的修改,自己感觉还是可以的,并隐隐约约的感觉一些经验相要总结归纳出来,以便和其他人分享。翻译也是一门艺术啊。
对于 wiki.perlchina.org 上的文章管理作了一些整理。体验了 pair review 所带来的信心和驱动力,有点意思。只是拿了老板的钱作了公益事业,心里面有些过意不去。加班吧。日进一寸,愚公移山,总可以完成繁杂的事项的。
好了,休息一下。
Published on January 26, 2005 7:14 pm.
Filed under: 东拉西扯 Tags: joejiang, perl, perlchina, translate