Schulung · Workshop · Coaching · Beratung

SOLID-Programmierprinzipien Schulung: wartbare Klassen in Python

SOLID-Programmierprinzipien in der Praxis – wartbare Klassen in Python

Dauer: ab 1 Tag | Preis: ab 900 EUR (Netto) | Termin: Ganztägig + halbtägig

Sie wenden die fünf SOLID-Prinzipien und die GRASP-Muster an Python-Code mit Typ-Hinweisen und Protocols an, erkennen Verstöße im Code-Review und machen Klassen leichter erweiterbar und testbar.

Woran erkennen Sie im Review, dass eine Klasse beim nächsten Feature zum Problem wird?

Die SOLID-Prinzipien beschreiben, wie Klassen und Module geschnitten sein sollten, damit sich Software unter wechselnden Anforderungen ändern lässt, ohne dass jede Erweiterung an fünf Stellen Fehler auslöst. Single Responsibility, Open/Closed, Liskov-Substitution, Interface Segregation und Dependency Inversion sind dabei keine Regeln zum Auswendiglernen, sondern Fragen, die Sie an konkreten Code stellen: Wer hat einen Grund, diese Klasse zu ändern? Was passiert, wenn ein neues Format dazukommt? Kann ich das Objekt ersetzen, ohne den Aufrufer zu überraschen? Wir beantworten diese Fragen an Python-Code mit Typ-Hinweisen, abstrakten Basisklassen und typing.Protocol.

Am Anfang steht der Entwurf: Mit CRC-Karten verteilen Sie Verantwortlichkeiten, bevor eine Zeile Code existiert, und mit testgetriebenem Entwurf leiten Sie Schnittstellen aus der Nutzung ab. Danach nehmen wir jedes Prinzip einzeln durch. Für Interface Segregation modellieren Sie Messwerte, Stichproben und deren Leser mit schmalen Protokollen, für Liskov ersetzen Sie Typabfragen mit isinstance() durch Duck Typing und Polymorphie. Open/Closed üben Sie mit Vererbung und Komposition, Dependency Inversion mit Konstruktor-Injektion und einem zentralen Ort für die Konfiguration – und Sie sehen, wie stark beides das Testen mit pytest vereinfacht. Den Abschluss bilden die Einzelverantwortung und die GRASP-Muster wie hohe Kohäsion, Indirektion, Information Expert und Protected Variations.

Coding-Agenten schreiben Python schnell, aber nicht unbedingt im Sinne dieser Prinzipien: Typweichen mit isinstance(), Klassen, die Datei lesen, rechnen und ausgeben zugleich, oder hart verdrahtete Importe der Datenbankschicht tauchen in generiertem Code häufig auf. Mit Junie, dem Agenten in PyCharm, üben wir, solche Verstöße gezielt zu benennen, den Umbau in kleinen Schritten anzuleiten und mypy im strikten Modus sowie Import-Verträge als Prüfung nach jeder Änderung laufen zu lassen.

Vorausgesetzt werden solide Python-Kenntnisse und erste Erfahrung mit Klassen; die Beispiele lassen sich auf Java, C# oder TypeScript übertragen, und an passenden Stellen zeigen wir die Entsprechung. Wer anschließend fertige Muster wie Strategy, Adapter oder Observer vertiefen möchte, findet sie im Seminar Entwurfsmuster, die Python-typischen Varianten im Seminar Python Entwurfsmuster und die Strukturen oberhalb der Klassenebene im Seminar Software Architekturmuster für Entwickler.

Wenn Teams mir sagen, SOLID habe ihren Code komplizierter gemacht, finde ich fast immer Interfaces mit genau einer Implementierung und Fabriken, die nur ein einziges Objekt erzeugen. Das ist nicht SOLID, das ist Abstraktion auf Vorrat. Ein Prinzip wird erst dann angewendet, wenn eine echte zweite Variante oder ein Test es verlangt. In Python ist das besonders angenehm: Ein Protocol kostet drei Zeilen und lässt sich nachträglich einziehen, sobald der Bedarf da ist – vorher genügt eine gut geschnittene Funktion.
Themen und Inhalte für Ihre Beratung, Coaching, Workshop, Training, Schulung und Weiterbildung:

SOLID-Programmierprinzipien in der Praxis – wartbare Klassen in Python

Einführung in die SOLID-Programmierung
  • Vorteile der SOLID-Prinzipien: Änderbarkeit, Testbarkeit, geringere Kopplung
  • Überblick über die fünf Prinzipien und ihre Herkunft bei Robert C. Martin
  • SOLID in Python: Typ-Hinweise, typing.Protocol und abstrakte Basisklassen mit abc
  • Statische Typprüfung mit mypy oder Pyright als frühe Rückmeldung zum Entwurf
  • CRC-Karten im Entwurfsprozess: Klasse, Verantwortlichkeiten, Kollaborateure
  • Testgetriebener Entwurf mit pytest: Schnittstelle aus der Nutzung ableiten
Prinzip der Schnittstellentrennung (Interface Segregation Principle)
  • Einführung: Clients sollen nicht von Methoden abhängen, die sie nicht nutzen
  • Objekte des Problembereichs: einzelne Datenproben als unveränderliche dataclass
  • Sammlungen von Stichproben: Sequence und Iterable statt einer Sammelklasse für alles
  • Lesen und Erstellen von Stichproben: Leser für CSV und JSON hinter getrennten Protokollen
  • Schmale Protokolle kombinieren: Protokoll-Vererbung und strukturelle Typisierung
Liskov-Substitutions-Prinzip
  • Einführung: Unterklassen halten den Vertrag ihrer Basisklasse ein
  • Vor- und Nachbedingungen, Invarianten und das Rechteck-Quadrat-Problem
  • Duck Typing: Verhalten statt Abstammung, Protocol als dokumentierter Vertrag
  • Variationen der Schnittstelle: optionale Parameter, Rückgabetypen und Varianz
  • Vermeidung von isinstance(): Polymorphie und functools.singledispatch statt Typweichen
  • Strukturelles Pattern Matching mit match: wo es Typabfragen ordnet und wo es LSP verletzt
Das Open/Closed Design-Prinzip
  • Einführung: offen für Erweiterung, geschlossen für Änderung
  • Modifizieren einer Klasse und Beheben von Fehlern: wann Änderung legitim ist
  • OCP durch Vererbung: Template-Methode mit abstrakten Methoden
  • OCP durch Komposition: Verhalten als Callable oder Protokoll-Objekt übergeben
  • Weitere OCP-Techniken: Registrierung per Dekorator, Plugins über Entry Points
  • @typing.override und @final als Schutz für Erweiterungspunkte
Prinzip der Inversion von Abhängigkeiten (Dependency Inversion Principle)
  • Einführung: Fachlogik hängt von Abstraktionen ab, nicht von Infrastruktur
  • Injektion von Abhängigkeiten über den Konstruktor, Protocol als Abhängigkeitstyp
  • Anwendungskonfiguration: Objekte an einer Stelle zusammenbauen, Einstellungen aus der Umgebung
  • Manuelle Verdrahtung, DI-Bibliotheken oder Depends in FastAPI – Kriterien für die Wahl
  • Konsequenzen für das Testen: Fakes statt tief verschachtelter Mocks
  • Testdoubles über pytest-Fixtures bereitstellen, unittest.mock gezielt einsetzen
Prinzip der Einzelverantwortung und GRASP-Muster
  • Einführung in die Einzelverantwortung: ein Grund zur Änderung, ein verantwortlicher Akteur
  • Verantwortung in Modulen, Klassen und Funktionen erkennen und trennen
  • GRASP-Muster: Hohe Kohäsion und Indirektion
  • Weitere GRASP-Muster: Information Expert, Creator, Controller und Low Coupling
  • Polymorphism, Pure Fabrication und Protected Variations
SOLID im Code-Review
  • Typische Verstöße: Gottklasse, Typweichen, harte Importe aus der Infrastruktur
  • Code Smells als Hinweis: lange Parameterlisten, Shotgun Surgery, Feature Envy
  • Komplexitätsregeln in Ruff und Schichtgrenzen mit import-linter prüfen
  • Wann SOLID übertrieben wird: Abstraktion ohne zweite Variante, YAGNI
  • Vom Prinzip zum Muster: Überblick und Verweis auf Entwurfsmuster und Python Entwurfsmuster
SOLID-Verstöße in generiertem Python-Code
  • Projektregel für den Agenten: Protocols statt isinstance()-Ketten, Abhängigkeiten per Konstruktor
  • mypy im strikten Modus und import-linter-Verträge laufen nach jeder Agentenänderung
  • CRC-Karte als Auftrag: Der Agent implementiert nur die vereinbarten Verantwortlichkeiten
  • Gottklasse vom Agenten zerlegen lassen, nachdem pytest das Verhalten festgeschrieben hat
  • Agent markiert im Pull Request Verstöße je SOLID-Prinzip mit Begründung, entschieden wird im Review
Praxisprojekt: Auswertung der Messreihen einer Wetterstation
  • CRC-Karten für Messwert, Messreihe, Leser und Statistik entwerfen
  • Leser für CSV und JSON hinter einem Protocol, dann ein drittes Format ohne Änderung ergänzen
  • Statistik mit injiziertem Ausreißerfilter bauen und mit Fakes testen
  • Generiertes Auswertungsmodul auf SOLID-Verstöße prüfen und refaktorisieren
Lernziele
  • Sie verteilen Verantwortlichkeiten mit CRC-Karten und leiten Schnittstellen testgetrieben aus der Nutzung ab.
  • Sie schneiden Python-Schnittstellen mit typing.Protocol so, dass Clients nur von den Methoden abhängen, die sie nutzen.
  • Sie ersetzen Typabfragen mit isinstance() durch Polymorphie und halten das Liskov-Substitutionsprinzip ein.
  • Sie erweitern Klassen über Vererbung und Komposition, ohne bestehenden Code zu ändern, und injizieren Abhängigkeiten testfreundlich.
  • Sie benennen SOLID-Verstöße und GRASP-Muster im Code-Review und in generiertem Code begründet.
Zielgruppe
  • Entwickler:innen mit objektorientierter Erfahrung, die wartbaren Code schreiben wollen
  • Tech Leads und Reviewer:innen, die Code-Reviews mit klaren Kriterien fundierter führen möchten

*) Die Inhalte werden individuell abgestimmt und mit Praxisbeispielen abgerundet.

Ein Symbol für einen Kalender.

Offene Termine

Kostenlose Reservierung
Ein Symbol für Angebot erhalten.

Unser Angebot

Sind Sie auf der Suche nach einer Veranstaltung, die genau Ihrem Bedarf entspricht? Einer Veranstaltung, welche nur Inhalte vermittelt, die Sie selbst gewählt haben und speziell auf Ihr Unternehmen zugeschnitten ist? Dann sind Sie bei uns richtig!

Dauer

Ein Symbol für Dauer.
ab 1 Tag (8 UE)

Die Dauer richtet sich nach Ihren Vorstellungen und inhaltlichen Wünschen. Sie bekommen genau das, was Sie brauchen.

Preis

Ein Symbol für Preis.
ab 900 EUR (Nettopreis)
ab 1.071 EUR (Bruttopreis)

Die Preise verstehen sich bei Unternehmern gemäß § 14 BGB zzgl. MwSt. Der dargestellte Ab-Preis gilt für firmeninterne Veranstaltungen und entspricht dem niedrigsten Gesamtpreis für Veranstaltungen mit bis zu drei (3) Teilnehmenden.

Termin

Ein Symbol für einen Kalender.
Ganztägig + halbtägig
nach Vereinbarung

Ihr Wunschtermin wird bei der Planung berücksichtigt. Die Veranstaltung findet ganztägig + halbtägig zu flexiblen Zeiten statt.

Ihre Vorteile

Ein Symbol für ein Vorgespräch durchführen.
Persönliches Vorgespräch
Ein Symbol für die individuelle Vorbereitung.
Individuelle Vorbereitung
Ein Symbol für Experten aus der Praxis.
Experten aus der Praxis
Ein Symbol für ein Zertifikat.
Inklusive Zertifikat

Unsere Garantien

1. Relevanz-Garantie

Wir passen den Inhalt spezifisch an die Bedürfnisse jedes Teilnehmers an. Irrelevante Themen werden ausgespart, um den größtmöglichen Nutzen zu garantieren.

2. Qualitäts-Garantie

Durch regelmäßiges Feedback optimieren wir unsere Schulungen kontinuierlich und garantieren Ihnen ein Lernerlebnis der Extraklasse.

3. Zufriedenheits-Garantie

Unsere Zufriedenheitsgarantie spricht für sich – bei Unzufriedenheit entstehen Ihnen keine Kosten.

Wir helfen gerne weiter!

Rufen Sie uns an, schreiben eine E-Mail oder nutzen das Kontaktformular.

Jetzt anfragen
Einige Unternehmen, für die wir tätig waren

mobilcom-debitel GmbH

Kreisverwaltung Ahrweiler

Vector Informatik GmbH

Teilnehmer

Feedback

Herr Hecker ist sehr gut auf individuelle Wünsche, Fragen und Anregungen eingegangen. Eine sehr informative, interessante und gelungene Veranstaltung.
Teilnehmer

Feedback

Herr Hecker hat das Thema sehr anschaulich dargestellt und ist auf alle Fragen eingegangen. Ich fühle mich jetzt gut vorbereitet, um durchzustarten.
Teilnehmer

Feedback

Die gelassene, professionelle Art hat mir gut gefallen. Kompetent, engagiert, professionell. Gute Beispiele, sympathisches Auftreten. Eigene Themenideen wurden aufgegriffen.
Unser Angebot für Ihre firmeninterne Beratung, Coaching, Workshop, Training und Weiterbildung

Lösungen für Ihren Bedarf an Coaching, Workshop, Training, Schulung und Weiterbildung

Profitieren Sie von unserer langjährigen Expertise in der beruflichen Weiterbildung, modernen Lernmethoden und einem Portfolio von über 600 IT-, Online- und Digital-Beratungsleistungen.
Selbstverständlich lassen sich die einzelnen Themen kombinieren. So erhalten Sie genau die Weiterbildung, die Sie wünschen und brauchen - als Coaching, Workshop, Training, Schulung und Weiterbildung!

✓
Ein Symbol für eine einzelne Person.

Für eine Person

Training & Coaching für Einzelpersonen

  • Passgenaue Inhalte auf den einzelnen Teilnehmer zugeschnitten
  • Ein sehr effektives Format, das schnell Ergebnisse bringt
  • Individuelles Training und Coaching motivieren und wirken
Jetzt anfragen
✓
Ein Symbol für eine Gruppe von Personen.

Für eine Gruppe

Training & Workshops für Teams und Abteilungen

  • Bedarfsgerechte Inhalte auf die Herausforderung der Praxis zugeschnitten
  • Konsequente Praxisorientierung, modernste Techniken und Tools
  • Neue Fähigkeiten und Kenntnisse nachhaltig in den Arbeitsalltag integrieren
Jetzt anfragen
✓
Ein Symbol für ein Unternehmen.

Für eine Firma

Training-Komplett-Lösungen für Ihr Unternehmen‍

  • Ganzheitliche Konzepte für Ihre Mitarbeiterentwicklung
  • Individueller Skill-Katalog zur Erweiterung Ihres internen Weiterbildungsangebots
  • Nachhaltige Personalentwicklung realisieren
Jetzt anfragen

Anfrage für eine unverbindliche + kostenlose Erstberatung zum Thema

SOLID-Programmierprinzipien - Beratung, Coaching, Workshop, Training, Schulung und Weiterbildung

Wir freuen uns über Ihre Anfrage und antworten so schnell es geht!

Ich interessiere mich für den Termin:

Termin anfragen

Das Angebot von "HECKER CONSULTING" richtet sich ausschließlich an Unternehmen und Behörden (iSv § 14 BGB). Verbraucher (§ 13 BGB) sind vom Vertragsschluss ausgeschlossen. Mit Absendung der Anfrage bestätigt der Anfragende, dass er nicht als Verbraucher, sondern in gewerblicher Tätigkeit handelt. § 312i Abs. 1 S. 1 Nr. 1-3 und S. 2 BGB (Pflichten im elektronischen Geschäftsverkehr) finden keine Anwendung.

Vielen Dank, Ihre Nachricht wurde empfangen!
Beim Absenden des Formulars ist etwas schiefgelaufen.
Beratung, Coaching, Workshop, Training, Schulung

Ähnliche Leistungen, die Sie interessieren könnten.

Wir erweitern ständig unser Beratungsportfolio. Über 600 IT-, Online-, Digital-Beratungsleistungen haben wir für Sie im Programm. Selbstverständlich lassen sich die einzelnen Themen kombinieren. So erhalten Sie genau die Beratung, die Sie wünschen und brauchen - als Coaching, Workshop, Training, Schulung und Weiterbildung!

Mehr IT-, Online-, Digital-Beratungsleistungen anzeigen >>
Nach oben