当前位置: 首页 > news >正文

Hanami 3.0全面绽放:新增三大特性,默认速度快3倍,还有更多改进!

1. 一流的邮件发送器

Hanami应用现在集成了邮件发送器,与操作、视图和业务逻辑完美融合。邮件发送器类可描述发送邮件所需信息,作为独立对象可通过Deps混入注入并在任何需要处使用。调用.deliver方法,它会准备邮件头并渲染邮件正文模板。邮件发送器支持多种发送方式,SMTP发送方式开箱即用,测试环境中邮件会存储在内存中。若有特殊需求,可编写自己的发送方式。Hanami Mailer可独立使用,借助成熟的mail gem处理底层邮件操作。

2. 内置国际化支持

现在Hanami内置了i18n支持,安装i18n gem后,会在应用和每个切片中设置独立的翻译后端,并提供translate和localize辅助方法。翻译文件存放在应用或切片的config/i18n/目录下,i18n辅助方法在操作和视图中可用。还提供了本地化支持,localize方法可根据当前语言环境格式化日期和时间。i18n设计为开箱即用,有很多配置选项。

3. 支持Minitest

Hanami一直默认提供RSpec测试环境,现在全新支持Minitest。创建应用时可选择测试框架,选择Minitest后将获得完整测试环境。

4. 默认速度更快

Hanami 3.0速度显著提升,在测试应用中,相同请求在HTTP协议下响应速度几乎快了3倍,内存分配大幅减少。Hanami默认对组件进行缓存,以解析九个组件图并渲染视图的应用操作为例,3.0版本中每个请求内存分配减少了14倍,HTTP吞吐量几乎提高了3倍,尾部延迟大幅下降。还提升了框架关键部分性能,Hanami Action和Hanami View内存分配减少,速度提高。

5. 日志更清晰、更实用

3.0版本对日志进行了优化,开发环境中日志默认彩色显示,SQL语句格式与请求日志匹配,安装rouge gem时会语法高亮显示。SQL语句以:debug级别记录,可通过config.db.log_level调整。可通过HANAMI_LOG_LEVEL环境变量设置日志级别,Hanami保证日志记录器有一致接口,支持结构化日志和标签日志。

6. 资产监控更流畅

hanami assets watch现在能检测新添加和删除的入口点,对静态资产更改做出响应,无需重启监控器。还发布了规范,说明资产打包工具如何与Hanami无缝集成。

7. Hanami Action支持请求体解析

Hanami的请求体解析功能从中间件移至Hanami Action,由formats配置驱动。多部分表单和JSON的解析器开箱即用,可注册自己的解析器。

8. 无装饰暴露的简单视图

视图暴露现在默认不进行装饰,模板直接接收暴露的数据。需要装饰时,新的.decorate方法会让暴露的数据更突出,也可通过config.decorate_exposures = true恢复旧行为。

9. 更简洁的基础架构

hanami - controller更名为hanami - action,hanami - validations已停用,Hanami Action直接使用dry - validation处理操作参数和契约。Hanami 3.0要求使用Ruby 3.3或更高版本,这些改变使框架组件更少,gem名称更清晰,更容易上手。

10. 还有更多改进!

3.0版本进行了许多小改进,如新增生成器、支持更多选项、路由器新增重定向辅助方法等,还有全新的欢迎界面。

11. 立即试用

只需几个命令即可创建新的Hanami 3.0应用,欢迎在论坛或聊天群中交流使用体验。

12. 从2.3版本升级

若已使用2.3版本,可参考3.0升级说明完成升级。

13. 感谢贡献者!

感谢所有为这个版本做出贡献的人,包括Aaron Allen、Adam Lassek等。

14. 感谢赞助商!

这个版本的进步离不开赞助商的支持,感谢企业赞助商Sidekiq、Brandon Weaver等,也感谢通过GitHub Sponsors和Open Collective支持Hanakai的个人。欢迎成为赞助商。

http://www.jsqmd.com/news/1116992/

相关文章:

  • Meta 智能眼镜“对话聚焦”设时长限制,每月 20 美元解锁更多使用时间!
  • EEVDF取代CFS?Linux内核调度器这30年到底在卷什么
  • 【HarmonyOS 7开发者前瞻】01 HarmonyOS 7 开发者适配路线图:从 API 26 Beta 到 Skill、Agent 与 AI 工具链
  • 5分钟掌握华硕笔记本性能控制:GHelper轻量级工具完整使用指南
  • 百考通10分钟搞定导师点头的版本
  • 模型路由与提示预处理:控制大语言模型成本、提升令牌使用效果的新方法!
  • Bifrost:三星固件下载的终极解决方案,跨平台免费工具全攻略
  • 保障用电安全,电能质量监测该用在何处?
  • 英伟达RTX Spark超级芯片深度解析:AI PC如何重塑个人计算与工作流
  • 选安全净水器,顾家是答案
  • # XLua WinForm桌面环境部署与运行说明本次完成了原生XLua在VS2022 WinForm桌面程序的完整部署与功能验证,全程解决编译、库加载、类型兼容三类核心问题。首先通过CMake编译
  • SnapLogic 推出 MCP Builder:无需代码,加速企业 AI 应用落地!
  • Prompt Engineering在AI Agent中的高级技巧:从Chain-of-Thought到Tree-of-Thought
  • GPT工程能力全景图谱:场景映射、标准化工作流与落地实战指南
  • RoPE 与 ALiBi:位置编码的两种革命性范式
  • 3步实战:如何让《艾尔登法环》在高端硬件上释放全部潜能
  • 佳能G6080报错5b00维修历程,开始把打印机抱到维修店,维修师傅说修好大概180元,我觉得实在太贵了就没有必要维修了,买一台新的算了,准备买新的时候朋友推荐用佳能V6.200佳能清零软件,最终修好
  • 第17章:Dify 分层架构与 DDD 设计深度解析
  • Mac视频预览终极解决方案:让Finder直接播放MKV、AVI等所有格式视频
  • 华硕笔记本性能调优终极指南:如何用GHelper取代臃肿的Armoury Crate
  • 解决Turbo Intruder插件兼容性问题:升级Burp Suite实战指南
  • 中国顶尖AI大模型的四大硬核判断标准
  • gsplat安装与使用指南:高效实现3D高斯溅射渲染
  • OpenClaw移动端安装部署实战:local-first架构实测与Cursor云端方案全对比
  • 零基础 Vibe Coding 教程 MCP 服务介绍 50
  • 高并发实战:C#工控机实现100+设备Modbus TCP并发采集,性能优化到毫秒级响应
  • 户外LED广告牌防雷设计:接地方案与SPD安装
  • 第16章:【基础篇综合实战】搭建企业级智能客服系统
  • 壁炉科普|冬季壁炉偶尔倒烟、冒烟?原因和一次性解决方法
  • SpringBoot全局XSS防御实战:5分钟集成过滤器实现请求参数净化