Bundler之争:社区与商标的较量

2025-09-25

十五年来,作者一直维护着Ruby的依赖管理工具Bundler。从最初参与到如今为维护Bundler而创立Ruby Together,再到与Ruby Central的合并风波,作者最终注册了Bundler商标,以保护社区的权益。他承诺将商标转移给一个对维护者和社区负责的组织,以确保Bundler真正属于Ruby社区。

阅读更多
开发

SQLite赋能Rails:高效部署的利与弊

2025-09-12

本文探讨了在Rails应用中使用SQLite数据库的经验,作者André Arko分享了他使用SQLite构建Feed Your Email服务的经历。SQLite的嵌入式特性简化了部署,降低了成本,但同时也带来了新的挑战,例如数据持久化、并发控制和高可用性。文章详细分析了这些问题,并提出了相应的解决方案,包括使用持久化存储、WAL模式、多数据库文件策略以及Litestream和LiteFS等工具。最终,作者认为SQLite为构建高效、简单的Rails应用提供了新的可能性,但需要仔细权衡其利弊。

阅读更多
开发

是时候删掉一些测试了

2025-08-30

几十年来,测试的重要性一直被强调,但开发者们却形成了一种“删除测试是亵渎”的错误观念。本文指出,测试的目的是提升信心,但失效、冗余、耗时或测试错误内容的测试反而会降低信心。例如,易出错的测试会浪费大量时间,冗余的测试则会降低效率。作者建议,为了提高效率和信心,应该删除那些降低信心而非提升信心的测试,并针对新的需求编写新的测试。

阅读更多
开发

rv: Ruby 的全新语言管理器,告别繁琐的依赖管理

2025-08-27

Bundler 作者历经十年,终于开发出 rv——一款全新的 Ruby 管理工具。rv 不仅能管理 gem 依赖,还能管理 Ruby 版本,并能快速安装预编译的 Ruby,避免冗长的编译过程。更重要的是,rv 简化了运行任何 Ruby 脚本或工具的过程,即使这些脚本或工具需要不同的 Ruby 版本。rv 借鉴了 uv (Python 的类似工具) 和 cargo、npm 等优秀工具的设计理念,实现了快速、可靠的功能,包括 rv tool run 和 rv tool install 等,能让开发者更轻松地管理 Ruby 环境和依赖,极大提高开发效率。

阅读更多
开发

Rust内存文件系统性能测试:出乎意料的结果

2025-08-25

作者在Rust中开发CLI工具时,尝试使用内存文件系统来提升文件管理测试速度。尝试了vfs和rsfs两个crate,但最终发现,现代SSD和操作系统文件系统缓存的效率极高,以至于使用内存文件系统几乎没有性能提升。测试结果显示,使用内存文件系统、普通文件系统和ramdisk的测试时间都在45ms左右,这与作者的预期大相径庭。作者呼吁读者分享使用内存文件系统的性能差异案例。

阅读更多