写点什么

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

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

关注

评论

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

【架构师训练营】模块二作业

樰巳-堕~Horry

架构实战营 「架构实战营」

低代码助推生物制药企业CDMO的“数字化转型”之路

优秀

低代码 制药企业CDMO

电脑安全小知识

喀拉峻

黑客 网络安全 安全 计算机基础

架构模块二作业

Vincent

「架构实战营」

2021的科技卦象·震·到元宇宙玩“躲猫猫”

脑极体

Holos: 我来了,我是个大块头。

mtfelix

28天写作

云原生新边缘:火山引擎边缘计算最佳实践

火山引擎边缘云

云计算 云原生 边缘计算

46 K8S之集群高可用

穿过生命散发芬芳

k8s 28天写作 12月日更

工业机器视觉系统的构成与开发过程(理论篇—1)

不脱发的程序猿

计算机视觉 机器视觉 图像处理 LabVIEW 工业自动化

帮你积累音视频知识,Agora 开发者漫游指南正式启航

声网

人工智能 音视频

从 “香农熵” 到 “告警降噪” ,如何提升告警精度?

阿里巴巴云原生

阿里云 云原生 告警 可观测 信息熵

重磅|火山引擎边缘计算节点服务正式发布!

火山引擎边缘云

边缘计算 网络 云计算,

设计模式的提出

卢卡多多

28天写作 12月日更

Hystrix Dashboard

李子捌

微服务 28天写作 12月日更

读《思辨与立场》-04自我理解

wood

28天写作 批判性思维 思辨与立场

5分钟认识802.11标准,言简意赅!

Ethereal

网络技术 无线技术 网络技术联盟站 802.11

Hoo虎符研究院 | 币海寻珠——近期公链事件(2021.12.16)

区块链前沿News

Hoo虎符 虎符交易所

分析一下微信朋友圈的高性能复杂度

Sindorei

「架构实战营」

增长方法论:五步验证法

石云升

产品经理 28天写作 产品增长 12月日更

链路分析 K.O “五大经典问题”

阿里巴巴云原生

负载均衡 阿里云 云原生 流量 链路分析

东数西算,风起中原

脑极体

LabVIEW软件、驱动安装及编程方法(理论篇—2)

不脱发的程序猿

机器视觉 LabVIEW 工业自动化

架构实战营 4 期 - 第2周作业

周念

「架构实战营」

CSS之选择器(八):+ 和 ~

Augus

CSS 12月日更

阿里云分布式容器平台即将全面启动公测!

阿里巴巴云原生

阿里云 容器 分布式 云原生

15.  《重学JAVA》--Lambda表达式

杨鹏Geek

Java 25 周年 28天写作 12月日更

【Redis核心原理专题】(1)「技术提升系列」分析探究如何实现LFU的热点key发现机制以及内部的Scan扫描技术的原理

码界西柚

redis 12月日更 Redis Scan Redis 热点key Redis服务

实现macOS热门功能,我只用了60行代码!

Jackpop

解决问题

Nydia

2021年11月券商App行情刷新及交易体验评测报告

博睿数据

请回答,轻巧又见效的数字化转型,企业该如何做?

ToB行业头条

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