basemate.io hat das von ihnen entwickelte Projekt Matestack vorgestellt: Mit reinem Ruby können nahezu alle Vorzüge einer single-page app erreicht werden — ganz ohne JavaScript direkt zu implementieren. Bislang wurde Performance bei Matestack etwas vernachlässigt, aber der Code wirkt deutlich sauberer als bei anderen JavaScript-basierten Frameworks. Wir sind gespannt, wie es bei diesem Projekt weitergeht!
Robuste API-Abhängigkeiten sind herausfordernd, besonders bei schlechter Dokumentation. Der Vortragende von eBaymag hat demonstriert, welche Probleme auftreten können, wenn API-Responses nicht konsistent sind. Mit viel Arbeit und Refactoring haben sie ein abstraktes Interface geschaffen, das die Kommunikation mit APIs von DHL und UPS stabilisiert.
Iulia Costea betonte in “Why Soft Skills Matter in Software Development”, dass Soft Skills für Entwickler weiterhin unterschätzt werden. Hervorgehoben wurden diese vier teilweise erlernbaren Fertigkeiten:
- Adaptability — “Be stubborn about your goals but flexible on your means”
- Empathy — sowohl den Kollegen als auch den Kunden gegenüber.
- Teamwork — “95 % of projects fail because of lack of effective teamwork.” und
- Inspirierendes Führen.
Ruby 2.6 wird langsam functional programming ready.
Funktionale Programmierung kann Kontrolle von Seiteneffekten, größere Thread-Sicherheit, das schnelle Testen von reinen Funktionen und Lesbarkeit durch Pattern Matching verbessern. Seit Ruby 2.6 existiert Currying als Funktion. Pattern Matching ist in einem experimentellen Status. Es wurde eingewendet, dass Ruby von seiner Konzeption her nicht zu 100% funktional eingesetzt werden kann.
Auch am Sonntag ging es interessant weiter:
Rust wurde in “Rust for Rubyists (and Rubyists for Rust)!” vorgestellt: Die Sprache hat das ehrgeizige Ziel, nach Jahrzehnten der Dominanz von C und C++ diese beiden Sprachen allmählich als System- und Highperformance-Sprachen zu ersetzen. Rust sei sowohl effizient als auch memory-safe — und zwar ohne Garbage Collector. Auch Thread-Safety sei ein Design-Ziel: Rust ist so entworfen, dass Data Races unmöglich seien. Derzeit gibt es noch erheblich weniger Libraries als in Ruby und die Sprache befindet sich noch im Reifungsprozess. Wir werden allerdings gespannt verfolgen, wie es mit “Rust” weitergeht.
In dem Vortrag “Attacking own APIs to find security bugs” hat ein Python-Entwickler vorgestellt, wie er Traffic auf seiner Website simuliert und mit verschiedenen Listen problematische und gefährliche Strings als Eingaben testet.
Family Photo – Foto mit freundlicher Genehmigung der RubyUnconf
Bei “Rails Slim, An Introduction” wurden Wege verglichen, HTML mit Ruby anzureichern: ERB, Haml und Slim. Die Rednerin warb für Slim, denn Slim ist schneller als Haml, und Slim ist wegen des fehlenden „%“ vor allem flüssiger zu tippen und zu lesen.
Ein Entwickler von Redhead hat einen Remote Desktop als Web App entwickelt — mittels vnc-Protokoll, wobei insgesamt fünf Protokolle unterstützt werden. Er zeigte in seinem Vortrag “How to hijack, proxy and smuggle sockets with Rack/Ruby”, wie man mit seinem Gem namens “purr” Traffic mittels Websockets über port 80/443 routen kann.
Es wurde ein Ansatz vorgestellt, eine Rails app zu modularisieren: Man organisiert seine Controller logisch in Namespaces, um sie dann pro Namespace jeweils in eine eigene Engine mit eigenen Routes auszulagern.
Der zweite Tag schloss mit tollen “Lightning Talks”. Wie schon im letzten Jahr besteht die Möglichkeit, die Vorträge später auf der Internetseite der RubyUnconf noch einmal anzuschauen. Unser Entwicklungsteam empfiehlt besonders den Keynote-Vortrag und “How to hijack, proxy and smuggle sockets with Rack/Ruby”.
Wir bedanken uns für die tolle Veranstaltung, die wir gerne als Sponsor unterstützt haben, und sind stolz, einen kleinen Teil an die Ruby-Community damit zurückgeben zu können. Bis zum nächsten Jahr, auf der RubyUnconf 2020 — Wir freuen uns drauf!