写点什么

在 Ruby on Rails 中实现 Seaside?

  • 2007-04-12
  • 本文字数:715 字

    阅读完需:约 2 分钟

Ruby on Rails 为什么成为最炙手可热的 Web 框架?到底是因为它引入了许多全新的革命性理念?或者仅仅是因为它为早已众所周知的设计实践带来更为优秀的实现?这正是 Giles Bowkett 所问的第一个问题。他通过比较了 Rails 的视图 / 控制器模式和 Seaside 的组件及渲染方法,向大家阐述了自己的想法。将 Rails 的视图 / 控制器替换成与 Seaside 更为相似的方式,是否值得呢?

Giles 着重指出这种架构的优点(如集中管理)和缺点(如毫无意义的 URL):

难道你不能模拟 Seaside 的组件化模式么?你可以把 Rails 的控制器和视图替换成包含带内建渲染方法(built-in render methods)对象的 Builder 模板,而那些内建的渲染方法可以调用其它 Builder 模板。这当然行得通,事实上,你基本能实现除了 Continuations 之外的所有东西。但问题是,如果你没有 Seaside 的 Session 管理,这样做是否值得?而且在除了 Smalltalk 之外的语言中 Session 管理会不会变成一场噩梦?这里的观点是,Rails 的模板系统是一个又大又臃肿又臭气熏人的大洋葱。最后,事实上我们为 Seaside 风格的开发提出了一个可能比 Rails 更好的设计方案,而且保留所有 Ruby 强于 Squeak 的优点——更简便的 DB/Unix 集成,更多开发人员,等等。

文章收到不少评论,其中 Assaf Arkin 友善地指出如何使用 Rails 中的 capture() 方法来实现无模板的解决方案。而 Bram 法则(Bram’s Law)表示担心:如果一个软件越容易编写,那么实际上它会被实现得越糟糕。

……这正是我一直以来担心在 Rails 上发生的:在五年或者十年以后,你能找到的最差的工作将会是 Rails 的工作——你在维护一些非程序员写的代码,这些人发现 Rails 使得编程变得如此之简单,以至于他们根本不用知道他们在做些什么。

2007-04-12 20:30897
用户头像

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

关注

评论

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

2 期架构师训练营 - 第八周作业与总结

云飞扬

架构师训练营第2期

阅读笔记:Python A-Z 技巧

小匚

Python 读书笔记 日常思考

第四章学习总结

Kalman

产品经理 产品经理训练

Linux Lab 进阶: Rootfs 文件系统 &Linux 与 Uboot 调试

贾献华

Linux Linux Kenel rootfs uboot usb

5G花式过年指南

脑极体

浪潮云洲:从工业互联网实践想开去

工业互联网

2 期架构师训练营 - 第四周作业与总结

云飞扬

架构师训练营第2期

Java函数式编程Stream.collect()为什么这么受欢迎?

李尚智

Java 架构 函数式编程

《未来呼啸而来》- 技术改变生活

石云升

2月春节不断更 技术改变生活 未来呼啸而来

驱动力读书笔记之五

张老蔫

28天写作

最新版gradle安装使用简介

程序那些事

Gradle 程序那些事 构建工具 build 打包工具

【LeetCode】盒子中小球的最大数量

Albert

算法 LeetCode 2月春节不断更

【Python】给PDF添加水印

AXYZdong

Python 2月春节不断更

第十一周 安全稳定 作业 「架构师训练营 3 期」

胡云飞

架构师训练营 4 期 第6周

引花眠

架构师训练营 4 期

第四章作业

Kalman

产品经理 产品经理训练营

日记 2021年2月7日(周日)

Changing Lin

个人感悟 2月春节不断更

尝试从用户的角度思考(PO的姿势)

Bruce Talk

Scrum 敏捷开发 Agile Product Owner

白话Mysql的锁和事务隔离级别!死锁、间隙锁你都知道吗?

Java鱼仔

MySQL 高可用

2 期架构师训练营 - 第十周作业与总结

云飞扬

架构师训练营第2期

2 期架构师训练营 - 第六周作业与总结

云飞扬

架构师训练营第2期

容器 & 服务:Jenkins本地及docker安装部署

程序员架构进阶

容器 jenkins 七日更 28天写作 2月春节不断更

图文详解网络基础知识

物流系统抢单简单设计

DL

产品经理训练营--第四周作业

月亮 😝

大作业(二)-知识点

hunk

架构师训练营第2期

sql注入竟然把我们的系统搞挂了,怎么办?

苏三说技术

java安全

2 期架构师训练营 - 第九周作业与总结

云飞扬

架构师训练营第2期

OpenCV--平移与旋转

IT蜗壳-Tango

七日更 2月春节不断更

协会组织如何实现数字化落地应用?

boshi

数字化转型 七日更

2 期架构师训练营 - 第七周作业与总结

云飞扬

架构师训练营第2期

在Ruby on Rails中实现Seaside?_Ruby_Alexis Midon_InfoQ精选文章