Hanami 3.0 正式发布:Ruby 框架的全新里程碑

稳定币与中央银行数字货币 加密交易所新闻
钱财 qian.cx
分享: Telegram X
Hanami 3.0 版本带来了全新的邮件处理、国际化支持和 Minitest 集成,同时大幅提升了性能和开发体验。本文深入解析这一版本的核心特性和改进,帮助开发者快速掌握 Hanami 3.0 的最新进展。

Hanami 3.0 版本带来了全新的邮件处理、国际化支持和 Minitest 集成,同时大幅提升了性能和开发体验。本文深入解析这一版本的核心特性和改进,帮助开发者快速掌握 Hanami 3.0 的最新进展。

Hanami 3.0 正式发布,标志着 Ruby 框架 Hanami 进入了全新的发展阶段。作为 Hanakai 组织下的核心项目之一,Hanami 3.0 在保持其清晰、模块化和可扩展的特性基础上,引入了多项重要功能,包括邮件处理、国际化支持和 Minitest 测试框架集成,同时在性能和开发体验上进行了全面优化。本文将详细介绍 Hanami 3.0 的主要特性和改进,帮助开发者快速了解这一版本的最新进展。Hanami 3.0 的核心特性之一是引入了全新的邮件处理功能。邮件处理模块现在与 Hanami 应用的其他组件(如 actions、views 和 operations)无缝集成,开发者可以轻松地定义邮件模板和发送逻辑。邮件处理模块支持多种发送方式,包括 SMTP 发送,并且在测试环境中可以方便地在内存中积累邮件以便检查。

此外,Hanami 3.0 还允许开发者自定义邮件发送方法,以适应不同的邮件服务提供商的特殊需求。邮件处理模块的设计也非常灵活,可以作为独立的 gem 使用,为 Ruby 应用提供强大的邮件处理能力。国际化支持是 Hanami 3.0 另一个重要的改进。Hanami 3.0 内置了国际化(i18n)功能,开发者只需引入 i18n gem 即可在应用中启用多语言支持。翻译文件存储在 config/i18n 目录下,开发者可以方便地管理不同语言的翻译内容。Hanami 3.0 提供了 translate 和 localize 辅助方法,使得在 actions 和 views 中使用国际化功能变得非常简单。

此外,Hanami 3.0 还支持本地化,可以根据当前语言环境格式化日期和时间,提供更好的用户体验。Hanami 3.0 还引入了 Minitest 测试框架的支持。开发者在创建新应用时可以选择使用 Minitest 作为测试框架,Hanami 3.0 会自动配置完整的 Minitest 环境,无需手动设置。虽然 RSpec 仍然是 Hanami 的默认测试框架,但 Minitest 的支持使得开发者可以根据个人偏好选择更适合的测试工具。Minitest 作为 Ruby 标准库的一部分,其性能和稳定性都得到了广泛认可,Hanami 3.0 的 Minitest 支持进一步增强了框架的灵活性。性能优化是 Hanami 3.0 的另一个亮点。

Hanami 3.0 在默认情况下对组件进行了缓存,使得每个组件在应用容器中只解析一次,然后被重复使用,从而显著提升了应用的性能。在测试环境中,Hanami 3.0 的请求处理速度提升了近三倍,内存分配也大幅减少。Hanami 3.0 还对框架的热点部分进行了优化,如 Hanami Action 和 Hanami View,使得最小化的 action 和 view 渲染速度分别提升了 3.7 倍和 2.9 倍。这些性能优化使得 Hanami 3.0 的应用在处理高并发请求时表现更加出色。Hanami 3.0 还对日志系统进行了改进。在开发环境中,日志现在默认以彩色显示,SQL 语句的格式与请求日志保持一致,并且在安装 rouge gem 时还支持语法高亮。

在生产环境中,SQL 语句的日志级别被降低到 debug 级别,以减少日志噪音。开发者可以通过配置 db.log_level 来调整 SQL 日志的级别。此外,Hanami 3.0 还提供了 HANAMI_LOG_LEVEL 环境变量,允许开发者在运行时动态设置日志级别。Hanami 3.0 的日志系统还提供了结构化日志和标记日志的功能,使得日志分析和调试变得更加方便。Hanami 3.0 对资产管理也进行了改进。hanami assets watch 现在可以更好地跟踪新增和删除的入口点,以及静态资产(如图片和字体)的变化。

在之前的版本中,这些变化需要重新启动 watcher,而 Hanami 3.0 可以自动适应这些变化,使得开发者可以更高效地进行开发。此外,Hanami 3.0 还发布了一个规范,允许任何资产打包工具清晰地集成到 Hanami 中。虽然 Hanami 自身的打包工具基于 esbuild,但开发者可以自由选择自己喜欢的打包工具,这进一步增强了 Hanami 的灵活性。Hanami 3.0 还将请求体解析功能从中间件移动到了 Hanami Action 中,使得请求体解析由 action 的 formats 配置驱动。开发者可以方便地配置 action 解析的格式,并且 Hanami 3.0 默认支持 multipart form 体和 JSON 解析。如果需要其他格式的解析,开发者可以自定义解析器。

这种改进使得请求体解析更加灵活和可控。Hanami 3.0 还简化了视图处理。在 Hanami 3.0 中,视图暴露的数据默认不再装饰,开发者可以直接在模板中使用暴露的数据。如果需要装饰数据,Hanami 3.0 提供了 .decorate 方法,使得装饰数据的代码更加清晰。开发者也可以通过配置 config.decorate_exposures = true 来恢复旧版本的行为。这种改进使得视图处理更加简单和直观。

Hanami 3.0 还进行了多项基础设施优化。hanami-controller 现在更名为 hanami-action,与框架中使用的类名保持一致。hanami-validations gem 已被废弃,Hanami Action 现在直接使用 dry-validation 进行参数和合同的验证,减少了中间 gem 的数量。Hanami 3.0 还要求 Ruby 3.3 或更高版本,确保框架在最新的 Ruby 环境中运行。这些改进使得 Hanami 3.0 的代码库更加简洁和易于维护。Hanami 3.0 还引入了多项小的改进和修复。

例如,新增了 hanami generate provider 和 hanami generate mailer 生成器,提供了 --force 选项允许覆盖现有文件,提供了 --name 选项允许设置应用命名空间,提供了 --gem-source=gem.coop 选项允许从 gem.coop 命名空间安装 gem,生成的应用现在默认使用 Puma 7.1,并且移除了 config/puma.rb 中的 app 预加载样板代码。此外,Hanami 3.0 还提供了 --template-engine 选项允许选择模板引擎(erb、haml 或 slim),提供了 explicit redirect helpers 在路由器中,提供了 Hanami::Settings::CompositeStore 允许链式查找多个设置存储,提供了 Hanami::Slice.with_slices 返回切片及其所有嵌套切片,提供了 Hanami View 暴露当前渲染模板的名称,提供了当切片作为 Rack 应用调用时没有可用路由时的有用错误提示,以及各种修复,如 multipart 上传到路由器、带数组变量的 URL 生成、生成 action 时的重复路由等。Hanami 3.0 的发布标志着 Ruby 框架 Hanami 进入了全新的发展阶段。Hanami 3.0 在保持其清晰、模块化和可扩展的特性基础上,引入了多项重要功能和改进,使得开发者可以更高效地构建高性能的 Ruby 应用。Hanami 3.0 的邮件处理、国际化支持和 Minitest 测试框架集成,使得开发者可以更轻松地处理邮件、支持多语言应用和选择更适合的测试工具。Hanami 3.0 的性能优化和日志改进,使得应用在处理高并发请求时表现更加出色,并且日志分析和调试变得更加方便。

Hanami 3.0 的资产管理改进和请求体解析改进,使得开发者可以更高效地管理资产和处理请求体。Hanami 3.0 的视图处理简化和基础设施优化,使得代码库更加简洁和易于维护。Hanami 3.0 的多项小的改进和修复,使得开发者可以更轻松地使用 Hanami 框架。Hanami 3.0 的发布得益于社区的广泛支持和贡献。Hanami 3.0 的开发团队对所有贡献者表示衷心的感谢。Hanami 3.0 的发布也得益于多个赞助商的支持,包括 Sidekiq、Brandon Weaver、Honeybadger、FastRuby.io、AppSignal 和 SerpApi。

Hanami 3.0 的开发团队对所有赞助商表示衷心的感谢。Hanami 3.0 的开发团队希望开发者可以尝试 Hanami 3.0,并加入 Hanami 社区,共同推动 Hanami 框架的发展。Hanami 3.0 的开发团队也希望开发者可以成为 Hanami 的赞助商,支持 Hanami 框架的持续发展。Hanami 3.0 的发布标志着 Ruby 框架 Hanami 进入了全新的发展阶段。Hanami 3.0 在保持其清晰、模块化和可扩展的特性基础上,引入了多项重要功能和改进,使得开发者可以更高效地构建高性能的 Ruby 应用。Hanami 3.0 的邮件处理、国际化支持和 Minitest 测试框架集成,使得开发者可以更轻松地处理邮件、支持多语言应用和选择更适合的测试工具。

Hanami 3.0 的性能优化和日志改进,使得应用在处理高并发请求时表现更加出色,并且日志分析和调试变得更加方便。Hanami 3.0 的资产管理改进和请求体解析改进,使得开发者可以更高效地管理资产和处理请求体。Hanami 3.0 的视图处理简化和基础设施优化,使得代码库更加简洁和易于维护。Hanami 3.0 的多项小的改进和修复,使得开发者可以更轻松地使用 Hanami 框架。Hanami 3.0 的发布得益于社区的广泛支持和贡献,以及多个赞助商的支持。Hanami 3.0 的开发团队希望开发者可以尝试 Hanami 3.0,并加入 Hanami 社区,共同推动 Hanami 框架的发展。

Hanami 3.0 的开发团队也希望开发者可以成为 Hanami 的赞助商,支持 Hanami 框架的持续发展。 。

精选推荐 数字资产常用交易与安全工具
下一步
探讨greit0n/malwarebazaar-downloader工具如何高效获取MalwareBazaar恶意样本,并构建安全隔离实验室进行威胁分析,助力企业提升网络安全防护能力
2026年07月02号 05点51分31秒 深入解析MalwareBazaar样本下载工具:构建安全隔离实验室的关键利器

探讨greit0n/malwarebazaar-downloader工具如何高效获取MalwareBazaar恶意样本,并构建安全隔离实验室进行威胁分析,助力企业提升网络安全防护能力

本文详细分析了SeaweedFS 4.30版本前存在的反射型参数注入漏洞CVE-2026-58371,探讨其攻击原理、影响范围及安全防护措施,帮助企业和开发者提升系统安全性。
2026年07月02号 05点52分31秒 深度解析CVE-2026-58371:SeaweedFS 4.30版本前反射型参数注入漏洞及安全防护指南

本文详细分析了SeaweedFS 4.30版本前存在的反射型参数注入漏洞CVE-2026-58371,探讨其攻击原理、影响范围及安全防护措施,帮助企业和开发者提升系统安全性。

本文详细分析了GLib中发现的CVE-2026-58014漏洞,探讨其技术细节、潜在风险以及企业级系统的防护措施,为开发者和安全专家提供实用指南。
2026年07月02号 05点52分52秒 深度解析GLib漏洞CVE-2026-58014:Off-by-One错误的安全影响与修复策略

本文详细分析了GLib中发现的CVE-2026-58014漏洞,探讨其技术细节、潜在风险以及企业级系统的防护措施,为开发者和安全专家提供实用指南。

详细分析ColdFusion 2025.9及更早版本存在的输入验证漏洞CVE-2026-48277,探讨其影响范围、攻击方式及企业应对策略,帮助用户提升系统安全防护能力。
2026年07月02号 05点53分13秒 深度解析CVE-2026-48277漏洞:ColdFusion输入验证缺陷及安全防护指南

详细分析ColdFusion 2025.9及更早版本存在的输入验证漏洞CVE-2026-48277,探讨其影响范围、攻击方式及企业应对策略,帮助用户提升系统安全防护能力。

详细分析Vibe-Trading 0.1.10之前版本存在的DNS绑定重定向认证绕过漏洞,探讨其攻击机制、影响范围及企业级安全防护策略,助力用户构建更安全的交易环境。
2026年07月02号 05点53分36秒 深度解析CVE-2026-58169:Vibe-Trading DNS绑定重定向漏洞及安全防护指南

详细分析Vibe-Trading 0.1.10之前版本存在的DNS绑定重定向认证绕过漏洞,探讨其攻击机制、影响范围及企业级安全防护策略,助力用户构建更安全的交易环境。

本文详细分析了Foreman-MCP-Server中发现的CVE-2026-12112会话管理漏洞,探讨其技术细节、潜在影响及企业应对策略,帮助IT管理者和安全专家全面了解该漏洞并采取有效防护措施。
2026年07月02号 05点53分58秒 深度解析CVE-2026-12112:Foreman-MCP-Server会话管理漏洞及安全防护指南

本文详细分析了Foreman-MCP-Server中发现的CVE-2026-12112会话管理漏洞,探讨其技术细节、潜在影响及企业应对策略,帮助IT管理者和安全专家全面了解该漏洞并采取有效防护措施。

本文详细分析了GLib中发现的CVE-2026-58015漏洞,探讨其技术细节、潜在影响及企业级应对方案,帮助开发者和安全团队全面理解并有效防御此类安全威胁。
2026年07月02号 05点54分22秒 深度解析GLib漏洞CVE-2026-58015:D-Bus客户端实现中的安全风险与应对策略

本文详细分析了GLib中发现的CVE-2026-58015漏洞,探讨其技术细节、潜在影响及企业级应对方案,帮助开发者和安全团队全面理解并有效防御此类安全威胁。