Railshöck

Am Donnerstag, 11. Mai 2023 fand bei Puzzle ITC in Zürich der Railshöck statt. Mehr als 20 Ruby Enthusiast*innen lauschten am Ruby on Rails Meetup Schweiz spannenden Talks zu Memory- und Testoptimierungen, API Dokumentation sowie App-Setup Möglichkeiten. Im folgenden Blogpost erhältst du einen Einblick in die Talks.

Ruby Performance Optimizations by Robin Steiner and Pascal Zumkehr

Ein Kostentreiber beim Betrieb von Applikationen in der Cloud ist der Memoryverbrauch. Fordert die Applikation mehr Speicher als zur Verfügung steht, kann dies zu einem Ausfall führen. Daher liegt es auf der Hand, auch trotz fast unendlichen Ressourcen, Optimierungen anzugehen.

Im ersten Teil machte Robin eine Exkursion in Ruby-Memory-Management und Fragmentierung, bei welcher die wichtigsten Infos aus diesem Blogpost kommen. Danach erzählte uns Robin, wie er die RAM Nutzung seiner Applikation mit der Hilfe von Jemalloc um 80% reduziert hat und was potenzielle Schattenseiten dieses Ansatzes sind.

Nur eine lauffähige und häufig verwendete Testsuite hilft, den Code lauffähig zu halten. Durch einige Tricks und guter Analyse können die Test markant schneller werden und die Developer Happiness steigern.

Hier kommt das Ruby Gem Test Prof zum Einsatz. Einerseits bietet es mit den Methoden before_all/let_it_be die Möglichkeit, aufwändig zu erzeugende Daten über mehrere Testfälle wiederzuverwenden. Andererseits erleichtert es die Performance Analyse von Testläufen. So konnte in einer Applikation die Startzeit für die Testsuite von über 4 Sekunden auf 0.5 Sekunden reduziert werden. Ein grosser Teil macht dabei der Umstand aus, dass Test Fixtures nicht für jeden Lauf neu geladen werden. Diese Option wurde auch bereits als Erweiterung für Ruby on Rails eingegeben.

 

From Spec to Spec with rswag by Simon Huber

Die Anforderungen an eine API steigen, da Geschäftsprozesse oft über mehrere Applikationen hinweg gehen. Deshalb muss eine API dokumentiert, aktuell und testbar sein, insbesondere wenn die Applikation stetig agil weiterentwickelt wird.

Mit rswag wird die API gleichzeitig getestet und nach der OpenAPI Spezifikation dokumentiert. Damit wird sichergestellt, dass die Dokumentation auch der Implementation entspricht. Simon ging auch auf die verschiedenen Herausforderungen ein, welche dabei auftreten können, und wie sie überwunden werden können.

thoughtbot Defaults with suspenders by Dimiter Petrov

Ein Grundsatz von Ruby on Rails ist “Don’t repeat yourself”. Wird häufig eine neue Applikation erstellt, ist es sinnvoll, diesen Schritt so weit wie möglich zu automatisieren. Dies steigert nicht nur die Effizienz beim Setup, sondern bringt auch eine definierte Umgebung mit sich, was wiederum die Vereinheitlichung mehrerer Applikationen erleichtert.

Das Projekt, das ursprünglich als Repository zum Klonen gestartet war, ist heute ein vollumfängliches Gem, welches «vernünftige Standards» beim Setup einer Rails Applikation generiert.

Die darauf folgende Diskussion, was denn nun «vernünftige Standards» sind, war mindestens so spannend wie der Talk selber.

Willst du das nächste Meetup nicht verpassen? Melde dich für unseren Newsletter an oder tritt der Meetup Gruppe bei.

Kommentare sind geschlossen.