写点什么

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

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

关注

评论

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

OpenHarmony外设生态春笋行动 在2024开放原子开源生态大会上开启

最新动态

TiDB 助力东南亚领先电商 Shopee 业务升级

TiDB 社区干货传送门

获取淘宝商品详情API返回值的技术实现方案

技术冰糖葫芦

API Gateway API Explorer API 接口 API 测试 pinduoduo API

海外直播软件 Bigo 的 TiDB 4.0 线上实践

TiDB 社区干货传送门

目前东莞等保测评机构有哪些?电话多少?

行云管家

等保测评 过等保 东莞

快速实现AI搜索!Fivetran 支持 Milvus 作为数据迁移目标

Zilliz

Milvus Zilliz 向量数据库 rag AI搜索

给Java同仁单点的AI"开胃菜"--搭建一个自己的本地问答系统

京东科技开发者

Kubernetes存储新动力:CSD3000与Portworx的协同效应

ScaleFlux

Kubernetes Serverless 云原生容器 应用容器化

Spark SQL分析层优化

数新网络官方账号

AI与大数据的结合:如何从海量数据中提取价值

天津汇柏科技有限公司

大数据‘’ AI 人工智能

打造未来社交:区块链社交DAO的颠覆性开发之路

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 代币开发

防御性编程:让系统坚不可摧

京东科技开发者

构建未来电商体验:深度解析京东商品详情API的核心价值与应用

代码忍者

API 测试 pinduoduo API

国产化新标杆:TiDB 助力广发银行新一代总账系统投产上线

TiDB 社区干货传送门

TiSplit 切分csv文件

TiDB 社区干货传送门

迁移 实践案例 管理与运维

DDD建模 vs 传统开发

Bruce Talk

DDD 领域驱动设计DDD

数字货币交易所开发与智能合约交易系统

区块链软件开发推广运营

交易所开发 链游开发 NFT开发 公链开发 代币开发

百度ARM云全栈自研方案全新升级,普惠智算助力行业数智化转型

科技大数据

TiDB多业务合并新玩法

TiDB 社区干货传送门

8.x 实践

使用TiDB企业版Lightning导入ORC文件到TiDB

TiDB 社区干货传送门

迁移 7.x 实践

TiDB 性能测试的几个优化点

TiDB 社区干货传送门

性能调优

黄东旭:“向量数据库”还是“向量搜索插件 + SQL 数据库”?

TiDB 社区干货传送门

Flink CDC:新一代实时数据集成框架

Apache Flink

大数据 flink 数据集成 Flink CDC 实时处理

人人都能手写的chrome插件,帮我省了1000多块钱

京东科技开发者

昆仑万维 X TiDB|从 MySQL Cluster 到 TiDB 的升级之路

TiDB 社区干货传送门

TiDB 在线打标签实现副本调度应用实践

TiDB 社区干货传送门

实践案例 7.x 实践

获取淘宝商品详情API返回值的技术实现方案

代码忍者

API 测试 pinduoduo API

环保行业怎么定义?需要用到堡垒机吗?

行云管家

等保 堡垒机 环保

云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展

阿里云大数据AI技术

大数据 阿里云 Serverless 云栖大会 EMR

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