10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

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

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

关注

评论

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

数据库|PostGreSql 和 MySql 的优劣对比

谐云

用友签约一级央企中国一重!

用友BIP

资产管理

桌面云一体机什么品牌最好?

青椒云云电脑

桌面云 一体机 桌面云一体机

Gartner发布2024年十大战略技术趋势

谐云

缺客户、缺钱、缺时间——实业经营的真挑战,中国企业分别突破

B Impact

手机是数字世界的另一个你,你的隐私还安全吗?

最新动态

技术、前沿、未来、AI:Stack Overflow 2023 年度报告重磅发布

谐云

第22期 | GPTSecurity周报

云起无垠

陌生链接可能是诈骗网址,谁来保护我们的上网安全?

最新动态

低代码可视化逻辑编排工具

树上有只程序猿

低代码 可视化编排 JNPF

【PyTorch 卷积】实战自定义的图片归类

北桥苏

卷积神经网络 CNN PyTorch

一座 “数智桥梁”,华为助力“天堑变通途”

脑极体

AI

企业如何开展数据管理体系建设,激活数据价值?

用友BIP

数据 数据价值

第23期 | GPTSecurity周报

云起无垠

华为Mate 60必备,这几个保护隐私的设置太实用了

最新动态

Java while 和do while 循环

HoneyMoose

Rust中non_exhaustive的enum

胡译胡说

rust

Ping和ARP流程解析

王玉川

router Switch ping ICMP ARP

对话在行人|浙纺服职院:数智赋能教育高质量发展

用友BIP

2023全球商业创新大会 对话在行人

单模光纤与多模光纤是什么呢?

小齐写代码

影视企业有哪些方式将视频文件快速海外跨国传输国内?

镭速

跨国文件传输

Python JSON 使用指南:解析和转换数据

小万哥

Python 程序员 软件 后端 开发

陈奕迅全新专辑《CHIN UP!》上线华为音乐,五年后心血之作强势来袭

最新动态

还得是PHP

谐云

Serverless,无服务器时代的创新之旅开启了吗

谐云

以云原生应用构建现代化架构的企业业务系统

谐云

火山引擎ByteHouse:如何用OLAP引擎提升数字营销效果?

字节跳动数据平台

数据库 大数据 云原生 数仓 企业号11月PK榜

客服发送一条消息背后的技术和思考

得物技术

体验 IM 客服

跨国文件传输为什么要用专业的大文件传输软件?

镭速

跨国文件传输

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