写点什么

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

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

关注

评论

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

7. 简单生成器函数,Pool 实现多进程程序,异常管理,浏览器版本帮助手册

梦想橡皮擦

10月月更

924清退在即,你的币转入数字货币钱包了吗?

CECBC

中国法定数字货币(DCEP)全面启航!全国普及势在必行

CECBC

浅谈人工智能的历史

Nydia

AI驱动!7款开发者必备生产力工具

Jackpop

数据库:B/B+树

正向成长

B+树 B树

(实战篇)漫游语音识别技术—带你走进语音识别技术的世界

攻城先森

深度学习 音视频 nlp 语音识别

linux之history使用技巧

入门小站

Linux

JavaScript 脚本优化的 10 个技巧

devpoint

JavaScript 性能优化 10月月更

自我提升:高效能人士的7个习惯学习笔记

程序员架构进阶

自我管理 自我提升 10月月更

在线HTTP请求/响应头转JSON工具

入门小站

工具

(mode4)千万级学生管理系统考试试卷存储方案

消失的子弹

架构 云原生

Vue3 + TypeScript 开发实践总结

程序员海军

大前端 Vue3 引航计划

引航计划|AI|优质合集手把手带你玩转AI

Nydia

AI 引航计划

后端的另一种打开方式-路由还能这么玩~

Bob

微服务 后端 网络 服务 引航计划

电商秒杀系统

feitian

架构实战营 模块九 作业

脉醉

架构实战营

从头开始(概率)学HMM:精讲第一课-隐马尔可夫模型定义

herosunly

AI 引航计划 内容合集

从头开始(概率)学HMM:精讲第二课-学习问题(BW算法)

herosunly

AI 引航计划 内容合集

推荐2个网站,牛x就完事了!

Jackpop

如何评估一个软件的项目费用?

石云升

项目管理 管理 引航计划 内容合集 10月月更

手把手带你做好团队管理|引航计划|管理

石云升

团队管理 管理 引航计划 技术专题合集

模块九作业

VE

架构实战营

原创万字总结人工智能技术栈与学习路线 下集 进阶篇

cv君

AI 引航计划

手把手带你做好项目管理|引航计划|管理

石云升

项目管理 管理 引航计划 技术专题合集

设计电商秒杀系统

gawaine

架构训练营

uni-app 在mac电脑连接安卓手机进行真机调试

达摩

uni-app app调试

为什么赛博朋克里总少不了日本元素?

脑极体

如虎添翼!6款备受欢迎的Edge浏览器插件

Jackpop

安全逆向分析实战

网络安全学海

Linux 网络安全 信息安全 WEB安全 漏洞分析

原创万字总结人工智能技术栈与学习路线 上集 基础篇

cv君

AI 引航计划

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