Zum Seiteninhalt springen

Ruby on Rails-Training für Ihr Team

Maßgeschneidertes Ruby on Rails-Training für Einsteiger, Mid-Level und Seniors

Teamfotos - Moods

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.

Ablauf des Trainings

  • Raus aus dem eigenen Büro und Arbeitsalltag – Das erlaubt volle Konzentration auf die Trainingsinhalte. Daher laden wir Sie gerne zu uns ein. 
  • Wir starten um 09:30 Uhr mit einem Tee oder Espresso und einem kleinen Snack.
  • Um 12:00 Uhr essen wir gemeinsam in unserer Kantine, danach geht es weiter.
  • Die Trainingstage sind anstrengend, wir machen deswegen keine 8 Stunden Frontalunterricht. Um 16 Uhr sind wir fertig.
  • Es stehen üblicherweise zwei Trainer zur Seite: So wird niemand abgehängt, Zwischenfragen können wir direkt beantworten oder am Gerät weiterhelfen.
  • Nach der Schulung: Wir stehen Ihnen auch nach dem Training gerne als Ansprechpartner zur Verfügung.
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.
PATRICK MCKENZIE Gründer von Starfighter und Appointment Reminder

Maßgeschneiderte Trainings Das zeichnet unser Training aus

Lernen in vertrauensvoller Atmosphäre

In den Trainings sind Sie unter sich: Sie und wir, sonst niemand. So können wir ganz auf Ihre Herausforderungen und Ihren Stack eingehen.

Weiterbildung in einer kleinen Gruppe

Die Trainings sind ausgerichtet auf eine Gruppe von 4-8 Teilnehmende. Bei einer abweichenden Zahl, sprechen Sie uns gerne an.

Trainingsdauer auf Sie abgestimmt

Wir legen gemeinsam einen Zeitrahmen fest: Zwei, drei oder vier Tage? Am Stück oder mit Pausen zum Üben? Wir richten uns nach Ihnen und helfen Ihnen, den besten Modus zu finden.

Training bei uns in Augsburg

Wo und wann: Wir laden Sie gerne zu uns ein. Wenn Sie möchten, kommen wir zu Ihnen und machen die Schulung Inhouse. Wir suchen gemeinsam den besten Zeitpunkt und vereinbaren die Trainingstage.

Flexible Inhalte des Trainings

Wir legen gemeinsam die Inhalte fest: Welche Schwerpunkte möchten Sie setzen? Grundwissen zu manchen Modulen stärken oder ein Deep-Dive in ausgewählte Aspekte einer bestehenden Anwendung? Das wissen Sie nicht so genau? Kein Problem, wir finden es mit Ihnen heraus.

Trainingsmaterialien und Zertifikat

Wir kümmern uns darum, dass Sie während der Schulung alles haben, was sie benötigen. Am Ende bekommen Ihre Teammitglieder die Teilnahme zertifiziert.

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.

Bereit für das nächste Level?

Buchen Sie jetzt Ihr individuelles Training. Schicken Sie uns eine Nachricht.