Ruby on Rails-Training für Ihr Team
Beginnen Sie Ihr maßgeschneidertes Ruby on Rails-Training – für Einsteiger, Mid-Level und Seniors.
Ziel des Trainings
Ruby on Rails ist ein beliebtes Webentwicklungs-Framework auf Basis der Programmiersprache Ruby. Es ermöglicht die schnelle und effiziente Entwicklung von Webanwendungen, die schnell, skalierbar und sicher sind. In unserem maßgeschneiderten Training lernt Ihr Team moderne Webanwendungen mit Ruby on Rails zu erstellen, eine bestehende Anwendung zu verbessern oder auf Wunsch vieles über automatisierte Tests, Debugging, CI/CD, UI/UX-Umsetzung und mehr. Sie sagen, wo der Schuh drückt und wir heben ihr Team auf das nächste Level.
Über makandra
makandra entwickelt seit 2009 ausschließlich mit Ruby on Rails. Wir haben in unseren Projekten unterschiedlichste Anforderungen und Herausforderungen gesehen.
Dazu gehören Anwendungen mit Traffic im Bereich von hunderten bis tausenden Requests pro Sekunde, Datenmengen im Terabyte-Bereich aber auch Legacy-Anwendungen mit der Anforderung eines sicheren Weiterbetriebs trotz veralteter Technologie. Wir wissen, wie es ist, auf der grünen Wiese zu starten, haben aber auch Anwendungen übernommen ohne Tests und schlechter Architektur.
Darüber hinaus bilden wir seit 15 Jahren Entwickler*innen aus, führen sie durch ein Curriculum von 8 Monaten und bilden das gesamte Team kontinuierlich fort.
Das bieten wir an
Wir haben nicht eine Lösung für alle Probleme. Doch zusammen finden wir Wege, Ihren Herausforderungen zu begegnen. Zu den folgenden Themen haben wir viel Erfahrung in der Vermittlung der Inhalte, kennen die Fallstricke und können auch über das Training hinaus weiterführende Ressourcen bereitstellen.
Kursinhalte Themen zur Auswahl
Unsere Trainings sind für Sie maßgeschneidert. Das bedeutet, dass Sie mitbestimmen können, welche Inhalte Ihr Team bearbeiten soll. Sie können aus den hier aufgezählten Modulen und Themen das rauspicken, was Sie benötigen und woran Sie Interesse haben. Wir beraten Sie dabei und stellen Ihnen eine individuelle Schulung zusammen.
Ihr möchtet euer Grundverständnis vom Rails Web-Stack schärfen oder gemeinsam eure Code-Basis beleuchten? Wir geben gerne Tipps zu den Basics:
- Gutes Software Design durch bewährte Prinzipien wie DRY und Law of Demeter erreichen
- Komponenten in Ruby, JavaScript und CSS erkennen und isolieren
- Verständliche User Stories schreiben
- Agilen Methode im Alltag einsetzen
- Effektive und belastbare Schätzungen erstellen
- In größeren Teams zusammenarbeiten
- Vor- und Nachteile von Monolithen vs. Microservices erkennen
Regressionen und Fehlerberichte lokal zu reproduzieren ist oft schwierig. Wir helfen euch gerne dabei, in solchen Fällen nicht im Dunkeln zu tappen.
- Logging der Rails-Anwendung: Die Suche nach der Nadel im Heuhaufen (production.log) meistern
- Logging mit den bekannten SaaS-Diensten: NewRelic, AppSignal, Skylight, Sentry & Co
- Exception notification: Bei Fehlern proaktiv benachrichtigt werden
- Reproduzierbare Fehler einschätzen lernen mit Browser-Devtools, nützlichen IDE-Funktionen und Tricks wie Ruby#method
Wir nehmen das Thema automatisierte Tests bei unseren Anwendungen sehr ernst. Wie man eine pragmatische, gute Testabdeckung erreicht oder eine bestehende Suite verbessert, lernt ihr hier.
- Womit lässt sich eine bestimmte Funktion am besten testen? System/Integrations-, und Model-Tests, oder View- und Request-Specs?
- Welche Frameworks eignen sich? Was sind die Unterschiede von Minitest und RSpec?
- API/Web-Requests reproduzierbar testen mit Webmock und VCR
- Test-fokusierte Weiterentwicklung mit unserem "Test-Led development" Ansatz
- Coverage Messen mit Tools wie SimpleCov und Cobertura
- "Flaky" Tests zu 100% stabilisieren. Was ist Capybara Lockstep und wie setzt man es ein?
- Testlaufzeiten beschleunigen mit paralleler Ausführung lokal und in CI
- Automatische Cross-Browser-Tests für ausgewählte Versionen von Chrome, Firefox, Safari etc.
Die besten Tests helfen nur dann, wenn sie auch regelmäßig ausgeführt werden. Wir zeigen euch gerne, wie ein automatisierter Workflow mit den Schritten "build, test & deploy" konkret implementiert werden kann.
Build pipeline
- Grundkonzepte wie Bundling, Fingerprinting, Pre- und Postprocessing verstehen
- JavaScript Transpilation mit Babel und esbuild oder webpack konfigurieren
- Assets wie Fonts, Icons und Bilder in Views, Styles und JS korrekt referenzieren
Continuous Integration (CI)
- ... mit GitHub nutzen
- ... mit GitLab nutzen
- Jobs parallelisieren, um die Testlaufzeit gering zu halten
- Dependency-Graphen erstellen
- Verwendete Libraries aktuell halten durch die Integration mit Dependabot oder Rennovate-Bot
Continuous Deployment (CD)
- Klassisches SSH-Deployment mit Capistrano
- Automatisiertes Deployment mit GitHub Actions oder GitLab CD
- Wichtige Deployment Konzepte beleuchten: Datenbank-Backup & Migration, neue Dependencies installieren, Rollback-Strategien
Zum Einstieg oft kryptisch, dann schnell unverzichtbar. Mit git lässt sich viel erreichen, wenn man weiß, wie es geht.
- Die wichtigsten git commands auf der Kommandozeile, um den Alltag gut zu meistern:
git fetch, pull, push, switch/checkout, add, diff, status, show, commit, merge - Merge Konflikte visuell auflösen mit 3-way merges
- Fortgeschrittene Anwendungsfälle effizient lösen:
git reset, rebase, cherry-pick, reflog, remote, stash, apply, add -p, bisect - Repetition mit bash aliasen und Funktionen vermeiden
Bei der Entwicklung einer Rails-Anwendung haben wir die Qual der Wahl: Wohin mit all den Daten?
- PostgreSQL, Redis, Memcache: Vor- und Nachteile
- Assets in Dateisystemen und Object Storage wie S3, MinIO & Co sichern
- Umgang mit mehrere parallelen Datenbanken in Rails
- How to: Gute Datenbank-Migrationen schreiben
Damit eine Anwendung, ihre Nutzer und Daten vor Angriffen geschützt sind, braucht es viel Know-How und regelmäßige Softwarepflege. Mögliche Themen in diesem Modul sind z.B. folgende:
- Häufige Angriffsvektoren erkennen: SQL Injection, XSS, ReDOS, Timing attacks
- OWASP & Rails: Vor welchen Szenarien schützt uns das Framework und worauf muss man bei der Entwicklung achten?
- Authentication (SAML, Devise, Homebrew) und Authorization (Consul, Cancancan) sicher implementieren
- Schwachstellen und Schutzmechanismen von Browser-Mechanismen kennen: Same-Site Cookies, CORS, CSRF, Session Replay
- Umgang mit CVEs in verwendeten Gems und JS-Libraries. Wir zeigen, wie wir Schwachstellen zeitnah erkennen und patchen können
- Umgang mit CVEs in System-Libraries (Exkurs zum DevOps Training) durch CVE Mailing-Listen und Bereitschaft
Ausgefallene Designs führen gerne zu einigem Kopfzerbrechen bei der Umsetzung. Es gibt Strategien, wie man die Implementierung trotzdem zügig und wartbar gestalten kann.
- Moderne CSS-Basics: Corporate Designs (CD) mit globalen CSS Variablen umsetzen, Grid im Detail verstehen
- Klare Modulgrenzen definieren: Komponenten schneiden mit der BEM Methodik
- Die Zusammenarbeit mit UI/UX-Teams effektiv gestalten
- Responsive Design umsetzen
- Integration mit verbreiteten Technologien wie htmx, Hotwire und Unpoly
- Dynamische Komponenten mit oder ohne SPAs umsetzen: Wie geht "React on Rails" oder "Angular on Rails"?
Amazon.com hat schon 2006 in einer bekannten A/B Studie herausgefunden, dass bereits eine 100 Millisekunden langsamere Ladezeit ihre Gewinne substanziell reduziert. Nicht jede Rails-Anwendung ist ein Webshop, doch gute Performance ist aus vergleichbaren Gründen immer erstrebenswert.
- Die Basis: Wie setzt sich die Ladezeit für Besuchende tatsächlich zusammen? Wann lohnt sich eine Performance-Optimierung?
- Welche Seiten sollte man optimieren? Wertvolle Tools wie query_diet, bullet und will_paginate helfen, dass Optimierungen die größte Wirkung erzielen.
- Wie behebe ich langsame SQL-Queries und ineffiziente n+1 Konstrukte?
- Wie und wofür nutze ich SaaS Dienste wie AppSignal, NewRelic, Skylight und Co.?
- Wie funktioniert das Zusammenspiel der HTTP-Header Cache-Control, Expires, ETag und Last-Modified?
- Wie funktioniert Caching am Load Balancer, CDN oder als fragment cache? Welcher Mechanismus ist für meine Infrastruktur-Architektur geeignet? Wie wende ich sie an? Wie vermeidet man Cache-Busting – und was ist das genau?
- Wie schaffe ich es, eine Ruby-on-Rails Anwendung so zu skalieren, dass sie Lastspitzen mit über hundert Requests/Sekunde verarbeiten kann?
Auch mit einem guten Verständnis der Rails-Grundlagen bleibt die Umsetzung komplexer Anforderungen oft schwierig. Wir konnten in 15 Jahren RoR-Entwicklung auch mit Themen Erfahrung sammeln, denen man nicht täglich begegnet. Im Training können wir gerne konkret über solche Thema sprechen, die auf ihre Anwendungen zutreffen. Beispiele:
- Umgang mit Zeitzonen im Client und auf dem Server
- Umgang mit Mehrsprachigkeit, die verschiedene Ebenen von I18n-Integration
- Rails-Anwendungen Multi-Mandantenfähig machen
- Authentifizierung mit SAML: Die Anwendung als Identity Provider (IDP) oder Service Provider (SP) registrieren
- Umgang mit Legacy Systemen: Pro & Contra zu Code-Rewrites, Tests & Security nachziehen, Große Datenmengen migrieren
- E-Mails zuverlässig verschicken: Spam-Erkennung, Bounces. SMTP-Relays, Zustellraten und transaktionale E-Mail-Provide
Hat Ihr Team konkrete, dringende Herausforderungen vor sich? Wir sind seit 2009 spezialisiert auf Ruby on Rails und bieten auch kurzfristige und kürzere Beratung für Ruby on Rails.
makandra ist das cleverste Team von Rails-Entwicklern, mit dem ich in meiner Karriere gearbeitet habe. Ich war sehr beeindruckt, wie sie sich in eine alte, haarige Codebasis stürzten und sofort damit beginnen konnten, unsere Tests und Zuverlässigkeit zu verbessern, ohne viel Management von uns.
Meet the Trainer Michael über das Ruby on Rails-Training
Maßgeschneiderte Trainings Das zeichnet unser Training aus
Team makandra Unser Trainer
Michael Leimstädtner, Projektleiter Webentwicklung
Michael Leimstädtner arbeitet seit 7 Jahren als Ruby on Rails-Entwickler und Projektleiter bei makandra. Er begleitet zusätzlich unsere Trainees als Mentor durch das anspruchsvolle Lehrprogramm. Seit er sein Hobby Webentwicklung vor sieben Jahren zum Beruf gemacht hat, verbringt er seine Freizeit am liebsten mit kochen, radeln und damit, nette Menschen zu treffen.
Weitere Trainings der makandra academy
Interessiert an weiteren maßgeschneiderten Trainings? Erweitern Sie Ihr Wissen in den Bereichen Kubernetes und DevOps mit unseren individuell abgestimmten Kursen – von Einsteiger- bis Expertenniveau.