XITASO Tech Talk: Design Patterns

Es gibt viele Informationen über Design Patterns in Büchern oder im Internet. Jeder kann sich ohne große Mühe das Konzept eines bestimmten Patterns beibringen. Die Gefahr besteht darin, in der Theorie behaftet zu bleiben.

Der Fokus von Andreas Stuiber lag bei seinem Tech Talk darauf, den Junior-Entwicklern bei XITASO diesen Aspekt der Softwareentwicklung näher zu bringen und ihnen einen Anreiz zu geben, sich mit Patterns zu beschäftigen.

Andreas ist seit 2012 bei XITASO. Als erfahrener Senior-Entwickler und Leiter des Bereichs „Technische Software“ stellt er die fachliche Qualifikation unserer Entwickler sicher.

Andreas Stuiber, Software Developer und Team Leader
andreas.stuiber@xitaso.com

Ich kenne nun einige Design Patterns. Was soll ich tun?
Andreas: Patterns sind ein Tool. Man braucht Zeit und Übung, um gut in der Anwendung zu werden. Der erste Schritt ist, sich beim Konzipieren einer neuen Klasse, Komponente oder eines Systems zu fragen, was die Probleme sind, die hier zu lösen sind. Ist es ein Standardproblem? Gibt es ein Pattern, dass ein Lösungskonzept für dieses Problem bereitstellt? Wenn ja, dann kann ich über den Einsatz des Patterns nachdenken.

Warum nachdenken? Ich habe ein Problem und eine Lösung. Let’s do it!
Andreas: Patterns sind bei vielen Problemen hilfreich. Sie haben allerdings auch einen Preis. Das kann eine erhöhte Komplexität des Systems sein, mehr Aufwand, eine höhere Anzahl an Klassen oder eine andere Metrik. Der falsche Ansatz ist, alles mit Patterns abdecken zu wollen. Das führt zu Over-Engineering.
Wir wollen Software effizient entwickeln. Software, die möglichst fehlerfrei ist, wartbar und erweiterbar. Die entscheidende Frage, die ich mir als Entwickler nun stellen muss, ist: Hilft mir der Einsatz eines Patterns dabei, dieses Ziel zu erreichen?

Woher soll ich nun wissen was die richtige Entscheidung ist?
Andreas: Das ist am Anfang nicht einfach. Es fehlt die Erfahrung, die man durch langjährige Softwareentwicklung bekommt. Damit ein wichtiger Punkt: Akzeptiere, dass du am Anfang oftmals nicht die richtige Entscheidung treffen wirst. Lerne daraus. Falls du die falsche Entscheidung getroffen hast, dann refactore den Code.
Es gibt aber eine große Hilfe bei der Entscheidungsfindung: erfahrene Softwareentwickler. Mit ihrer Erfahrung und ihrem Verständnis können sie helfen, die richtige Entscheidung zu treffen.
Das ist mir eines der wichtigsten Anliegen als Teamleiter: Eine Mentor-Kultur, bei der Seniors ihr Wissen und ihre Erfahrungen weitergeben und Juniors dieses Wissen anzapfen wollen.

Take home message:

  • Die effiziente Anwendung von Design Patterns erfordert Erfahrung
  • Gefahr des Over-Engineering

Further reading: