写点什么

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

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

关注

评论

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

科学智能:全球顶尖学者共聚复旦,共探科研范式变革新引擎

ModelWhale

科学智能 AI4S

龙蜥衍生技术助力清华登顶TPC物联网数据性能榜首 | 干货推荐

OpenAnolis小助手

操作系统 龙蜥社区 龙蜥操作系统 tpc

HarmonyOS 组件复用 @ReusableV2 装饰器的基本使用 2

万少

harmoyos

YashanDB数据库运维自动化工具及流程介绍

数据库砖家

WebGL 软件外包开发流程

北京木奇移动技术有限公司

区块链开发 软件外包公司 RWA开发

YashanDB数据库自动化备份脚本编写教程

数据库砖家

YashanDB数据库自动扩容功能详解

数据库砖家

龙蜥Confidential AI:开源机密计算AI解决方案,让云端模型安全运行

OpenAnolis小助手

AI 操作系统 机密计算 Confidential AI 龙蜥开源

多端一体化教育解决方案

微擎应用市场

YashanDB的API文档获取与使用

数据库砖家

观测云产品更新 | 外部数据源、日志、监控、事件、基础设施等

观测云

多行业活动管理

微擎应用市场

领跑 AI 基础设施存储赛道!焱融科技实力登榜「AI Cloud 100 China」

焱融科技

文件存储 大模型 AI基础设施 2025 AI Cloud 100 China

大模型成今年高考志愿神器,超千万用户使用百度AI志愿助手、高考大数据服务

科技大数据

卓正医疗如何用 NocoBase 搭建“家庭医生式”服务体系?

NocoBase

开源 低代码 数字化转型 零代码 医疗行业

多行业线下服务订单数字化解决方案

微擎应用市场

YashanDB数据库自动化运维方案设计与实现

数据库砖家

YashanDB的安全特性:如何确保你的数据安全无忧?

数据库砖家

YashanDB的安全特性如何保护您的数据资产

数据库砖家

鸿蒙+星闪:一场“1+1>2”的音频蝶变

脑极体

AI

开源能源管理系统(EMS)深度解析:安全自主可控与实践应用

开源能源管理系统

YashanDB数据库运维自动化工具介绍

数据库砖家

YashanDB数据库自动化监控与告警配置指南

数据库砖家

YashanDB数据库自动扩展功能,助力企业弹性业务需求

数据库砖家

Cursor 如何保障「代码索引」的安全、高效

Baihai IDP

程序员 AI 智能体 cursor AI 编程

如何使用龙蜥衍生版KOS,2步实现大模型训练环境部署

OpenAnolis小助手

AI 操作系统 龙蜥大讲堂

这款AI生成播客工具,必须收藏!

Immerse

20~30K * 15薪,可惜挂了

王中阳Go

Java 面试

国资委深化“AI+”专项行动 AI法务工具AlphaGPT赋能业务升级

科技汇

YashanDB数据库运维常见问题及解决方案

数据库砖家

MES与ERP深度融合:数据报表、可视化大屏及系统集成技术详解

万界星空科技

制造业 mes ERP系统 万界星空科技mes AI低代码MES

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