AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

简单的深邃: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:483378
用户头像

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

关注

评论

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

AI与低代码结合:中小企业的技术弯道超车之道

天津汇柏科技有限公司

AI 低代码

利用TencentOS 在企业私有化场景中快速部署DeepSeek

TencentOS

Linux 操作系统 DeepSeek TencentOS

越“挖”越有料,天翼云“息壤”助攻DeepSeek变身万能搭子!

天翼云开发者社区

人工智能 算力 AI应用 DeepSeek

Svelte 最新中文文档教程(12)—— 样式

冴羽

vue.js 前端 React Svelte SvelteKit

澜舟智搭×DeepSeek:企业智能体平台全面升级,打造AI Agent应用新范式

澜舟孟子开源社区

人工智能 DeepSeek DeepSeek v3 DeepSeek-R1

苹果虚拟机软件VMware Fusion Pro 13 密钥,VM虚拟机下载安装

Rose

想在M1上运行安装iOS软件怎们办?

Rose

AI工作流程开发框架

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI流程

终于搞懂MES和WMS系统的区别了

积木链小链

数字化转型 制造业 wms mes

《Operating System Concepts》阅读笔记:p41-p49

codists

操作系统

解读TaurusDB二级分区,如何提高查询性能和管理效率

华为云开发者联盟

MySQL 数据库 TaurusDB 分区表

龙伯透镜天线 --- 空间变化介电材料【CST仿真案例】

思茂信息

cst cst电磁仿真 CST软件

Autodesk AutoCAD 2021(cad 2021)中文序列号分享

Rose

【GreatSQL优化器-14】直方图应用

GreatSQL

优化器 直方图

ONES 接入 DeepSeek,研发管理效率与体验双升级

万事ONES

ONES 研发管理平台 DeepSeek

Navicat Premium 15中文版:创建、管理和维护数据库

Rose

安森美芯片·声得乐助听器:重新定义听觉体验

极客天地

DeepSeek:探索AI辅助创作的无限可能

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

测试

AI 聊天机器人开发框架及其特点

北京木奇移动技术有限公司

软件外包公司 AI机器人 AI聊天

等保三级测评流程解析以及相关问题解答

行云管家

等保 等保测评 等保三级

零信任供应侧稳步发展并持续创新

芯盾时代

身份安全 零信任 统一身份管理平台

告别混乱!浩辰CAD看图王让项目管理井井有条

在路上

cad cad看图 CAD看图王

macOS Big Sur 11(macOS11系统)v11.7.10正式版

Rose

基于条件的访问控制——RBAC

运维有小邓

rbac 身份管理平台 IT 运维

CAD神器来了!让你的CAD标注效率翻倍

在路上

cad cad看图 CAD看图王

用户的声音 | 文档结构化信息提取方案测评:LLM、开源模型部署与云端API,谁是合适选择?

合合技术团队

#大模型 文档解析 #数据

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