OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

简单的深邃:Sinatra 1.0 将至

  • 2010-04-27
  • 本文字数:1670 字

    阅读完需:约 5 分钟

自 2007 年末发布以来,轻量级的 Web 框架 Sinatra 便吸引了众多开发者的目光。现在,在 Google 中搜索关键字“Sinatra”,第一位便是 Sinatra Web 框架,比 Frank Nancy 还要多。InfoQ 采访了 Sinatra 项目的创始人 Blake Mizerany ,来了解更多关于 Sinatra 的信息和 1.0 版本的发布日期。

Mizerany 指出:1.0 版本的价值,并不是因为新功能的增加,而是由于旧功能的移除:

现在我们使用的是 Tilt 模板,这个工具能够快速地生成大部分的代码。扩展 API 已经确定,在 0.9 版中决定废弃的 API 也已经全部移除了。

否则代码就和之前的发布版本很相似了。

和 Rails 不同的是,Sinatra 并不是一个 MVC 框架;相反地,人们将其描述为“一种使用 Ruby 创建 Web 应用的领域专用语言”。它提供了一种简单的方式,来帮助开发者使用 REST 范式去响应 HTTP 请求:

Sinatra 是直接映射到 HTTP 的。它并非隐藏了复杂性,而是将简单性展示出来。HTTP 并不难,HTML 也并不难,没有必要去否定它们。直到亲自去尝试一下,人们才会发现看上去很“基础”的东西其实并不那么简单,很难继续深入下去。

Sinatra 程序小到可以放到一个文件中,每个 route 定义由一个 HTTP 方法和一个 URL 模式组成。例如,Sinatra 的“Hello world”看起来应该是这样的:

复制代码
require 'rubygems'<br></br>
require 'sinatra'<br></br>
get '/hi' do<br></br>
  "Hello World!"<br></br>
end<br></br>

在各种各样的模板系统中(例如 Erb、Erubis 和 HAML),都可以使用 Sinatra。但是,它没有一些 MVC 框架所应该拥有的功能,例如表单构造器和数据库连接层。这种简单性使得它能够在多种 Ruby 实现上运行,例如 Ruby 1.8.x 和 1.9、JRuby 以及 MacRuby 等等。

Sinatra in the Wild 页面按时间顺序记录了 Sinatra 的使用者,列出了大量使用此框架的 Web 应用和站点。包括 GitHub 和 Gemcutter,还有 Heroku、Engine Yard 以及 ENTP 这些公司。最近 NewRelic 也宣布在其RPM Ruby Agent 性能监视工具中采用Sinatra

Sinatra 1.0 也引入了一些新的功能。Sinatra 在模板渲染中采用的是 Tilt 框架,从而可以支持模板缓存、一致性模板堆叠和新的模板引擎。Erb、Erubis 和 HAML 模板现在只是在第一次使用的时候才编译,因此在渲染性能上有 5 到 10 倍的提升。不仅如此,还可以通过一个新的标志来控制每次请求时模板文件是否从磁盘上重新读取并重新编译。

用户在升级的时候可能会遇到一些小问题,需要注意如下问题,参见 FAQ

如果你一直跟随着官方文档的脚步,并且废弃掉了文档中提及需要废弃的功能,你的程序在 Sinatra 1.0 下将会工作的很好。但是最新发布的 Sinatra 0.9.x 版中一些功能在 1.0 版中会警告已经废弃。 […] 在 Sinatra 0.9.x 版中也修正了一些安全隐患以及缺陷,但是没有加入新的特性。

Sinatra 1.0 版的开发进度缓慢的原因,是其采用了语义版本模型

所有的 1.x 版都会向后兼容最初的 1.0 版。我们在很长一段时间内不会修改 1.0 的特性,所以我们不需要对接口的变化情况进行监控和检查。

当谈及到将来的时候,Mizerany 预测 Sinatra 将会持续地受到关注:

Sinatra 的简单性能够让开发者去做想做的事情。我们想继续保持简单,而且也非常好奇这样发展下去到底会怎样。我们不会通过秘密的 IRC 或者 Campfire 聊天室来决定 Sinatra 的下一步计划,所有的计划都是公开的。

Mizerany 尤其称赞了 Sinatra 对扩展的支持,他说:“没有特定的标准库或者初始脚本,它们仅仅是一些程序库而已,可以作为第三方库或者像 gems 一样去使用。” 大量可用的 Sinatra 扩展能够完成诸如通过 ActiveRecord 和数据库交互、 Sequel ORM 验证以及异步任务等功能。

Sinatra 的思想也为众多其他相似的框架带来灵感,包括 Javascript 的 Sammy 、Clojure 的 Compojure ,以及 Scala、PHP、.NET 和其他语言的框架。Heroku 也是 Sinatra 开发的支持者:

Sinatra 的成功源自社区。Heroku 给我时间来支持 Sinatra,并且一直在鼓励我前进。社区应该占 99.9999% 的功劳。每次我在 maillist 中看到问题的时候,都已经有热心人热情地解答了它。

查看英文原文: Deceptive Simplicity: Sinatra Turns 1.0

2010-04-27 21:483027
用户头像

发布了 90 篇内容, 共 32.8 次阅读, 收获喜欢 5 次。

关注

评论

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

量化交易系统开发技术阐述丨量化交易源码开发

西安链酷科技

量化交易

Flink 简述

木南曌

flink 实时计算

聚道云连接器助力航信费控与用友U8无缝对接,赋能供应链管理

聚道云软件连接器

案例分享

华为云开年采购季云上云下一体化安全解决方案,打造高效、安全管理平台

轶天下事

区块链项目宣发、媒体推广、项目孵化,一站式服务

西安链酷科技

项目推广 媒体包装

1688API接口推荐:1688按图搜索拍立淘数据接口

tbapi

1688 1688API接口 1688商品数据接口 阿里巴巴商品列表数据

百度智能云加速「低代码+大模型」融合,爱速搭位居 2023 年 IDC 低代码/无代码领导者象限

Baidu AICLOUD

低代码平台 大模型 爱速搭 AIGC 企业级开发

SpaceX 星舰发射「成功一半」;首位具身 AI 机器人面世丨 RTE 开发者日报 Vol.166

声网

云计算与低代码:重塑软件开发的新范式

快乐非自愿限量之名

云计算 低代码

朋友,代码库的“健身方案”要不要了解一下?

极狐GitLab

区块链项目媒体发稿:海外宣发是企业宣传的长远布局

西安链酷科技

项目推广 项目宣发 媒体包装

华为携手伙伴再出发,引领空间智能新潮流,创造无限可能

HarmonyOS开发者

从API到Agent:万字长文洞悉LangChain工程化设计

TuGraphAnalytics

graph agent #LangChain

量化交易系统开发技术实现方案及源码

西安链酷科技

量化交易系统

CCR智能量化机器人系统开发详解方案

西安链酷科技

量化交易

安全的企业办公即时通讯软件怎么选择?

WorkPlus

挖矿系统开发技术详解丨挖矿APP开发源码案例

西安链酷科技

BCI矿机搭建

科技创新引领零售商品部降本增效的未来

第七在线

Flink 数据目录体系:深入理解 Catalog、Database 及 Table 概念

木南曌

flink 实时计算

海外媒体广告投放到底难不难

西安链酷科技

媒体服务

智能合约系统开发原理介绍丨智能合约开发源码详情

西安链酷科技

合约系统开发

区块链项目包装攻略,区块链项目包装运营

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

从基础到代码实战,带你进阶正则表达式的全方位应用

快乐非自愿限量之名

php 正则表达式 代码

Python中的机器翻译技术与应用

技术冰糖葫芦

API API 接口

赛博威获颁“华南区数字营销优秀案例”奖及“广东省名优高新技术产品”证书,领先的数字营销能力获双重认可!

赛博威科技

Flink 流处理框架核心性能

木南曌

flink 实时计算

企业即时通讯工具,企业内部即时通讯系统推荐

WorkPlus

一文详解前端发展趋势

不在线第一只蜗牛

前端 前端开发 前端框架

全栈开发与自动化测试高薪私教班,带你从0到1拿到高薪Offer

测吧(北京)科技有限公司

测试

Kyligence 亮相 Gartner 数据与分析峰会,生成式 AI 落地赋能业务

Kyligence

企业需要企业IM(即时通讯)具备系统集成功能吗?

WorkPlus

简单的深邃:Sinatra 1.0将至_Ruby_Paul Blair_InfoQ精选文章