写点什么

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

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

关注

评论

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

5分钟搞懂Kubernetes:轻松理解所有组件

快乐非自愿限量之名

云原生 项目开发 kubernetes 运维

百度搜索展现服务重构:进步与优化

百度Geek说

重构 企业号12月PK榜 百度搜索展现

测试用例设计方法六脉神剑——第四剑:石破天惊,功能图法攻阵| 京东物流技术团队

京东科技开发者

JDBC ResulSet资源释放和Statement并发调用源码分析

FunTester

Amazon CodeWhisperer:AI 编程助手

亚马逊云科技 (Amazon Web Services)

人工智能 Amazon Lambda 云上探索实验室 Amazon CodeWhisperer Amazon Cloud9

DataSpell for Mac:数据分析的得力助手

iMac小白

大数据时代的数据治理!

用友BIP

数据治理

网心科技出席2023(第二十一届)中国企业领袖年会,共话长期主义

网心科技

网心科技

微店商品详情数据接口(micro.item_get)|微店API接口

tbapi

微店商品详情数据接口 微店商品API接口 微店API接口

速卖通商品API接口的使用指南与示例

Noah

关于C#反射概念,附带案例!

不在线第一只蜗牛

C# 后端 项目开发

语音数据集:AI语音技术的灵魂

来自四九城儿

mac电脑版spss专业统计分析推荐:IBM SPSS Statistics 激活中文

mac大玩家j

Mac软件 统计分析软件 统计分析

语音数据集在智能语音助手中的应用与挑战

来自四九城儿

下一站 GenAI @你!站稳扶好,“码”上发车

亚马逊云科技 (Amazon Web Services)

re:Invent 生成式人工智能 Amazon SageMaker Amazon CodeWhisperer

如何通过京东工业商品API接口获取商品详情

Noah

语音数据集在人工智能中的应用与挑战

来自四九城儿

面试官:如何实现链式调用?

王磊

Java 面试题

每日一题:LeetCode-64. 最小路径和

Geek_4z9ami

面试 算法 矩阵 LeetCode 动态规划

数字化转型对中小企业来说值得吗?

天津汇柏科技有限公司

数字化转型

玩转 K8s 权限控制:RBAC + kubeconfig 搞定 kubectl 权限管理那些事

EquatorCoco

云原生 rbac kurbernetes

特权账号管理误区

尚思卓越

网络安全 运维安全 特权账号管理

一小时快速搭建网站:掌握SDK的秘诀

TinTinLand

区块链 编程 技术

Dynamic Wallpaper for Mac:让你的桌面更加生动有趣

iMac小白

企业应用开发中.NET EF常用哪种模式?

EquatorCoco

.net 开发 企业开发

TFTP服务器 Transfer免激活最新版

胖墩儿不胖y

Mac 软件 ftp传输

年底换机的实力派选择:华为畅享70性能出色,体验超便捷

Geek_2d6073

引迈信息-JNPF平台怎么样?值得入手吗?

互联网工科生

低代码 开发平台 JNPF

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