【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

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

关注

评论

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

会声会影2023全新功能介绍

茶色酒

会声会影 会声会影2023

超详细教程:在Blender中打造毛毡风格角色

Renderbus瑞云渲染农场

blender Renderbus瑞云渲染

太强了!阿里巴巴最新开源303页Spring全家桶高级笔记,深入瓦解源码

Geek_0c76c3

Java 开源 程序员 架构 开发

Go WEB进阶实战:基于GoFrame搭建的电商前后台API系统

王中阳Go

电商 Go web #go #开源 10月月更

imazing2023免费版iOS管理工具

茶色酒

imazing2023

EasyRecovery2023绿色版下载安装教程分享

茶色酒

EasyRecovery15 easyrecovery2023

OpenHarmony应用HAP包签名

OpenHarmony开发者

OpenHarmony

一步步实现React-Hooks核心原理

helloworld1024fd

JavaScript

easyrecovery15注册机非常强大的数据恢复软件

茶色酒

EasyRecovery Easyrecovery破解 EasyRecovery15

leetcode 220. Contains Duplicate III 存在重复元素 III(困难)

okokabcd

LeetCode 数据结构与算法

easyrecovery2023数据恢复软件功能介绍

茶色酒

EasyRecovery easyrecovery2023

CleanMyMac X2023苹果电脑必备下载软件

茶色酒

CleanMyMac X

自己手写一个redux

helloworld1024fd

JavaScript

开源浪潮下,Apache APISIX 如何成为全球最活跃 API 网关

API7.ai 技术团队

API网关 APISIX 网关 OpenSergo

划重点!2022面试必刷461道大厂架构面试真题汇总+面经+简历模板

Geek_0c76c3

Java 数据库 程序员 架构 面试

CDR2023最新版本有什么新功能?

茶色酒

优秀!阿里甩出GC面试小册,仅7天Github获赞96.9K

Geek_0c76c3

Java 数据库 程序员 JVM 规划

MathType2023软件安装word教程

茶色酒

MathType2023

一文带你理解@RefreshScope注解实现动态刷新原理

JAVA旭阳

Java spring 10月月更

JPEX推出竞猜世界杯冠军球队活动,质押平台通证赢奖金

股市老人

从零手写react-router

helloworld1024fd

JavaScript

mmmbsc互助系统开发3M智能合约技术

薇電13242772558

智能合约

OA是什么意思?

优秀

OA oa办公系统 OA是什么意思

面试官:你说说Vue中的组件和插件有什么区别?

CoderBin

vue.js 面试 前端 组件 10月月更

FL Studio水果软件最新21中文版编曲工具

茶色酒

flstudio FL STUDIO20.9 FL Studio 水果FL Studio

怎样徒手写一个React

helloworld1024fd

JavaScript

太神了!阿里p7大佬总结的Java面试心得,起始—进阶—突击,一应俱全!

Geek_0c76c3

Java 数据库 开源 程序员 架构

基础设施 NFTScan 正式发布 Avalanche 网络 NFT 浏览器

NFT Research

区块链 NFT web3 数据基础设施 Avalanche

后CNN探索,如何用RNN进行图像分类

华为云开发者联盟

人工智能 华为云 CNN 企业号十月PK榜

全新出品!Github总榜排行第七的SpringCloud生态全栈笔记我粉了

Geek_0c76c3

Java 数据库 程序员 架构 面经

两种方式修复谷歌翻译无法使用问题

echeverra

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