写点什么

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

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

关注

评论

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

从天而降的AI“青云梯”,开发者们准备好了吗?

白洞计划

MySQL基础之二:SQL语句介绍与使用

打工人!

MySQL sql查询 6月日更

机器通用运行框架抽象

型火🔥

架构 微服务 抽象 中间件 机器

权限与认证:JWT实践

程序员架构进阶

源码分析 JWT 认证授权 28天写作 6月日更

XCH奇亚系统开发流程丨XCH奇亚源码案例开发

系统开发咨询1357O98O718

架构实战营模块5作业

Vic

架构实战营

奇亚Chia算力挖矿系统开发(案例源码)

系统开发咨询1357O98O718

这个暑假,狂暴输出炫酷的游戏视频,就靠Camtasia 2021啦!

淋雨

Camtasia 录屏 专业录屏

【Flutter 专题】112 图解自定义 ACEPieWidget 饼状图 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

贪心算法之 活动安排(Java代码实现)

若尘

算法 贪心算法 6月日更

职场人弯道超车的秘籍,利用Camtasia可以轻松实现!

淋雨

Camtasia 专业录屏

没想到你是这样的EasyRecovery

淋雨

数据恢复 EasyRecovery 文件恢复

数字中国的视觉进阶:ISP的来处与归途

脑极体

【译】JavaScript 代码整洁之道-注释篇

KooFE

JavaScript 大前端 代码注释 6月日更 整洁代码

浅析「扣减库存」的方案设计

悟空聊架构

分布式 秒杀 电商 6月日更 库存

k8s部署手册

Damon

k8s 6月日更

Chia奇亚挖矿系统开发技术方案丨Chia奇亚挖矿源码模式

系统开发咨询1357O98O718

区块链作为“信任的机器”,将改变社会价值的传递方式

CECBC

模块五- 课后作业

Presley

架构实战营 #架构实战营

区块链技术为版权保护与运营提供科技支撑

CECBC

区块链—重构新商业体系和全新商业生态环境

CECBC

你有没有 996 ?你要不要 955 ?

escray

学习 极客时间 朱赟的技术管理课 6月日更

Chia奇亚(XCH)系统开发案例解析丨Chia奇亚(XCH)现成源码

系统开发咨询1357O98O718

无损放大美好回忆  让容颜无惧时光!

淋雨

PhotoZoom 无损放大 图片无损放大

python——格式化输入输出与截取字符串

在即

6月日更

“微博评论”高性能高可用计算架构

白发青年

架构实战营

react源码解析6.legacy和concurrent模式入口函数

全栈潇晨

react源码

网络攻防学习笔记 Day35

穿过生命散发芬芳

网络攻防 6月日更

Kubernetes手记(1)- Kubernetes概述

雪雷

k8s 6月日更

一致性Hash算法与虚拟节点

Kareza

6月日更

【Vue2.x 源码学习】第四篇 - 对象的深层劫持

Brave

源码 vue2 6月日更

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