icon Rails 的相关感想

RESTful Ruby on Rails -- 美丽与复杂

在写《基础Ruby on Rails》的底稿的时候,我烦恼于把 Rails 1.2 的核心 REST 放在什么位置。

如果 Rails 真的向着 REST 发展的话,那么在这篇文章里不是也应该把 REST 放在前面着重突出吗?

结果在最后的第九章里补上 REST,把九章以前一点一点生成的示例程序一口气用 REST 进行了改写。

虽然也知道第九章自始至终都在机械地讲程序的改写有一点无聊,但是至今我也不认为这是错误的决定。

对于长时间进行 Web 开发的各位来说,可能理解 MVC 架构是得心应手的事情,但对于初学者来说这却是相当难的。用一句话来说就是太抽象。如果再加一个REST,就变得更抽象难解了。

那么,就可能会有这样的疑问,为什么使用 Ruby on Rails 会令人如此愉悦?

在 CGI 程序和 PHP 脚本的情况下,URL (除去参数后部分)和服务器端的程序大概是1对1的。基本上 URL 是指向服务器文件系统上的特定的路径。

然而,Rails 的 MVC 架构里存在着“路由”,从 URL 模式开始,“动作”便被指定并运行。CGI 程序和 PHP 脚本的情况下能够清晰想象的“处理HTTP 请求的场所”则变得难以理解。

尽管如此,在到 Rails 1.1 为止的非 REST 世界中,URL 中还包含着动作的概念。删除 ID=99 会员的 URL 是 /members/destroy/99 。但是,在 RESTful 的世界里变成了 /members/99。对这个 URL,是通过 HTTP 的 DELETE 方法请求的。这已从 URL 中排除了动作的概念。

这是简单而美丽的世界,但是为了享受这种美好,必须具有一定的素养和经验。

此外,要充分展示 REST 世界的美丽和实用性的话,即使是对于进行说明的一方也需要好好准备。

至少当时我是没有准备好的。
--
黒田努

(2008/04/23)