Foundations for Professionals .NET Professionals im Profil guide to C# guidgen.de

Blog

Nutze den Augenblick
und teile der Welt mit, was Du zu sagen hast.

Architektur lernen

Donnerstag, 27. November 2008, 13:34 Uhr
Permalink | Kommentare (4) | Kommentare als RSSRSS

Von Zeit zu Zeit werde ich gefragt, wie man als Entwickler eigentlich dem Thema Architektur begegnen sollte und wie man einen entsprechenden Einstieg findet. Da es kein allgemein gültiges Rezept gibt, empfehle ich in der Regel die Beschäftigung mit typischen Architekturthemen, an Hand derer ein Einstieg gelingen kann. Dazu gehören unter anderem:

  • Die klassischen Entwurfsmuster. Auch wenn diese letztlich nur ein Werkzeug für den Architekten darstellen, verhilft die Beschäftigung mit ihnen zu einer anderen Denkweise, vor allem hinsichtlich des Nutzens von Schnittstellen. Entwurfsmuster helfen, die eigene objektorientierte Denkweise zu schulen und zu verbessern, was sich wiederum in besser strukturiertem Code niederschlägt. Ein äußerst empfehlenswertes Buch zu diesem Thema ist C# 3.0 Entwurfsmuster von Judith Bishop, das neben den eigentlichen Entwurfsmustern auch deren Einsatz in C# 3.0 beschreibt.
  • Der Einsatz eines Microkernels. Auch dieses Thema fördert das Denken in Schnittstellen, allerdings auf einer anderen Ebene als die Entwurfsmuster - beziehen diese sich nämlich auf das Klassendesign, bezieht sich der Einsatz eines Microkernels auf das Komponentendesign einer Anwendung. Zwar gibt es einige Projekte wie beispielsweise Unity, die man sich näher anschauen kann, allerdings ist ein einfacher Microkernel in wenigen Zeilen selbst implementiert, wobei der Lerneffekt dann allerdings weitaus größer ist.
  • Die aspektorientierte Programmierung. Als Werkzeug empfehle ich hierfür regelmäßig PostSharp mit dem dazugehörigen LAOS-Framework, um einen Einstieg in die Beschäftigung mit den sogenannten Crosscutting Concerns zu erhalten. Als typische Einsatzgebiete für den Anfang dienen in der Regel die Themen Validierung, Sicherheit, Logging und Transaktionen.
  • Der Einsatz von Softwarezellen. Diese sind ein Konzept von Ralf Westphal, mit dessen Hilfe sich die Architektur einer Anwendung auf jeder Granularitätsebene darstellen lässt, und das etliche der gängigen Nachteile des klassischen Schichtenmodells vermeidet. Nähere Informationen hierzu finden sich in Ralfs Blog unter dem Tag Software Cells.

Die meisten Entwickler fragen trotz dieser Fülle an Informationen nach zusätzlicher, empfehlenswerter Literatur. Eine wirklich befriedigende Antwort konnte ich auf diese Frage bislang jedoch nicht geben, da es sich bei Architektur - im Gegensatz zu beispielsweise einer Programmiersprache - um ein ausgesprochen weites Feld handelt, das nicht mit der Lektüre einiger Bücher abgedeckt ist.

Vielmehr erfordert eine gute Architektur vor allem viel Erfahrung, und diese erlangt man letztlich nur durch Learning by Doing. Trotzdem wäre es natürlich hilfreich, zumindest einen Leitfaden mit Fragen an der Hand zu haben, an dem man sich orientieren kann, und der einen in die richtige Richtung denken lässt.

Genau einen solchen Leitfaden hat das patterns & practices-Team von Microsoft nun unter dem Namen Application Architecture Guide bereits in einer zweiten Version veröffentlicht, der kostenlos von der entsprechenden Webseite heruntergeladen werden kann.

In fünf Abschnitten wird detailliert auf verschiedene Themen wie allgemeine Architekturüberlegungen, Dienste, die verschiedenen Schichten, Performance, Sicherheit, RIAs, Webanwendungen und zahlreiches anderes mehr eingegangen. Erfreulicherweise ist der Inhalt größtenteils nicht als Fließtext, sondern als eine Art Checklisten implementiert, was dem Lesefluss und vor allem der praktischen Anwendbarkeit des Guides sehr zu Gute kommt.

Kommentare

Kommentar schreiben


(Zeigt dein Gravatar icon)  

  Country flag

biuquote
  • Kommentar
  • Live Vorschau
Loading