写点什么

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

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

关注

评论

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

为何建议大家升级到Kafka2.5.x?

Kafka中文社区

API治理技术实践-上

中原银行

中原银行 API治理

阿里云李飞飞:国内首部云原生数据库教材《云原生数据库:原理与实践》

博文视点Broadview

Amazon Redshift ML现已正式推出——使用SQL创建机器学习模型并通过您的数据进行预测

亚马逊云科技 (Amazon Web Services)

分析

dart系列之:和null说再见,null使用最佳实践

程序那些事

flutter dart 程序那些事

低代码实现探索(八)后台模型api

零道云-混合式低代码平台

这18个网站能让你的页面背景炫酷起来

德育处主任

前端 视觉化 样式 前端特效 css特效

模块七作业:王者荣耀商城异地多活架构

危险游戏

架构实战营

焱融科技与趋动科技携手解决一站式存算难

焱融科技

云计算 分布式 云原生 高性能 文件存储

synchronized的使用及优化

Ayue、

synchronized

一个支持断点续传的大文件分片上传的小模块

为自己带盐

dotnet 28天写作 文件上传 12月日更

【MongoDB学习笔记】手把手教你配置Python操作MongoDB

恒生LIGHT云社区

数据库 mongodb #python

2021 InfoQ 写作平台年度优质企业号评选名单公布!

InfoQ写作社区官方

2021年度评选 热门活动

云小课|云小课带你快速掌握云数据迁移CDM

华为云开发者联盟

EI智能体 数据湖治理中心 云数据迁移 CDM

Java 中接口和抽象类的 7 大区别!

王磊

语音信号处理6:语音信号的线性产生模型

轻口味

28天写作 12月日更

推出Amazon Kinesis Data Analytics Studio —— 与流数据快速交互

亚马逊云科技 (Amazon Web Services)

分析

【CSS 学习总结】第三篇 - CSS 选择器的权重和优先级

Brave

CSS 12月日更

又双叒叕获奖了!OceanBase 荣获2021年度技术卓越奖&年度最佳创新企业奖

OceanBase 数据库

新闻动态 OceanBase 开源 获奖 IT168

Springboot如何使用Aspect来实现切面日志

@零度

Java springboot aspect

前端开发之多环境下react的配置

@零度

前端开发 React

能源互联,激荡十年

钛禾产业观察

能源互联网 新能源

《Nacos架构与原理》官方电子书发布啦!

捉虫大师

nacos

如何在 K8s 集群中使用 Nocalhost 开发 APISIX Ingress

API7.ai 技术团队

Kubernetes 网关 Nocalhost Apache APISIX Ingress Controller

盘点 2021|前端女程序员普通的一年

小月

盘点2021

给弟弟的信第21封|遇事不决问搜索引擎

大菠萝

28天写作

Gitee Premium完成与OceanBase开源数据库适配

OceanBase 数据库

OceanBase 开源 开源中国 自主研发

百度智能云实战——静态文件CDN加速

百度Geek说

后端 H5 移动开发

Linux之head命令

入门小站

Linux

通用数据保护条例的监管下,你的数据湖“断舍离”了吗?

亚马逊云科技 (Amazon Web Services)

分析

Kafka的Topic和Partition是不是有个数限制?

Kafka中文社区

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