Rails mit SQLite: Ein zweischneidiges Schwert

2025-09-12

André Arko, langjähriger Mitwirkender an Open-Source-Ruby-Projekten, teilt seine Erfahrungen beim Erstellen einer Rails-Anwendung mit SQLite. Während SQLite die Bereitstellung vereinfacht und die Kosten aufgrund seiner integrierten Natur senkt, bringt es auch einzigartige Herausforderungen mit sich. Der Artikel beschreibt diese Herausforderungen, darunter Datenpersistenz, Concurrency Control und Hochverfügbarkeit, und bietet Lösungen wie persistenter Speicher, WAL-Modus, mehrere Datenbankdateien und Tools wie Litestream und LiteFS. Arko folgert, dass SQLite spannende Möglichkeiten für die Erstellung effizienter und einfacher Rails-Anwendungen bietet, aber seine Einschränkungen sorgfältig berücksichtigt werden müssen.

Mehr lesen
Entwicklung

Es ist Zeit, einige Tests zu löschen

2025-08-30

Jahrzehntelang wurde die Bedeutung von Tests betont, doch Entwickler haben den falschen Glauben entwickelt, dass „das Löschen von Tests ein Sakrileg ist“. Dieser Artikel argumentiert, dass der Zweck von Tests darin besteht, das Vertrauen zu stärken, aber fehlerhafte, redundante, langsame oder veraltete Tests verringern tatsächlich das Vertrauen. Fehleranfällige Tests verschwenden Zeit, während zu viele Tests die Effizienz reduzieren. Der Autor schlägt vor, dass Tests, die das Vertrauen verringern anstatt es zu stärken, gelöscht werden sollten, um die Effizienz und das Vertrauen zu verbessern, und neue Tests sollten für neue Anforderungen geschrieben werden.

Mehr lesen
Entwicklung

rv: Ein revolutionärer Ruby-Sprachmanager

2025-08-27

Nach zehn Jahren Arbeit an Bundler hat der Autor endlich rv geschaffen, eine neue Art von Ruby-Verwaltungstool. rv verwaltet nicht nur Gem-Abhängigkeiten, sondern auch Ruby-Versionen und installiert vorkompilierte Rubies, um lange Kompilierzeiten zu vermeiden. Wichtiger noch: rv macht die Ausführung beliebiger Ruby-Skripte oder -Tools trivial, selbst wenn diese eine andere Ruby-Version benötigen. Inspiriert von uv (einem ähnlichen Tool für Python), cargo und npm, bietet rv Geschwindigkeit, Zuverlässigkeit und innovative Funktionen wie `rv tool run` und `rv tool install`, wodurch die Verwaltung von Ruby-Umgebungen vereinfacht und die Entwicklerproduktivität erheblich gesteigert wird.

Mehr lesen
Entwicklung

Rust In-Memory-Dateisystem-Performance: Überraschenderweise spielt es keine Rolle

2025-08-25

Bei der Entwicklung eines CLI-Tools in Rust versuchte der Autor, ein In-Memory-Dateisystem für schnellere Dateiverwaltungstests zu verwenden. Nach der Erkundung von Crates wie `vfs` und `rsfs` war die überraschende Schlussfolgerung, dass moderne SSDs und der OS-Dateisystem-Cache so effizient sind, dass die Verwendung eines In-Memory-Dateisystems praktisch keinen Performance-Gewinn bringt. Benchmarks zeigten durchweg etwa 45 ms für Tests mit In-Memory-Dateisystemen, regulären Dateisystemen und sogar einem Ramdisk – ein krasser Gegensatz zu den Erwartungen. Der Autor fordert die Leser auf, Beispiele zu teilen, bei denen die Verwendung eines In-Memory-Dateisystems spürbare Performance-Unterschiede liefert.

Mehr lesen