Wie man Fähigkeiten in der Softwarearchitektur verbessert [geschlossen]

9

Was ist der beste Weg, um Ihre Fähigkeiten in der Softwarearchitektur zu verbessern? An der Universität wurden uns Designmuster beigebracht, und ich sehe viele Bücher mit einfachen und einfachen Beispielen. Aber wie kann man, abgesehen davon, gute Architektur lernen? Mit anderen Worten, wie entwickelt man sich zu einem großen Architekten? Was sind die Voraussetzungen?

Adam Lear
quelle
4
Versuchen Sie die Schule der harten Schläge ... ernsthaft.
Job

Antworten:

20
  1. Netzwerk . Lernen Sie einige gute Architekten kennen. Rede mit ihnen. Lernen Sie von ihnen und lassen Sie Ideen von ihnen abprallen.

  2. Lesen Sie unersättlich . Es gibt Hunderte von Büchern über Softwarearchitektur (sogar einige gute). Lesen Sie das Thema und verwandte Themen (Gebäudearchitektur, Managementstrukturen, Elektrotechnik, Betriebsarchitektur usw.).

  3. Architektur studieren . Es gibt Tausende von Plattformen und Produkten. Schau sie an. Zerlegen Sie ihre Teile. Zu meinen frühesten Erfahrungen gehörte das Betrachten großartiger Architekturen (z. B. die kleinen Sprachen, gepackten Dateien und einfachen Strukturen in der ursprünglichen Doom-Quelle).

  4. Denken, skizzieren, versuchen . Üben Sie Ihre Designfähigkeiten bei imaginären Problemen. Lustige Probleme. Interessante Probleme.

  5. Tu es . Arbeiten Sie an realen Systemen. Versende sie. Fühle den Schmerz, der durch deine schlechten Entscheidungen verursacht wird, den Schmerz, den du deinen Entwicklern verursachst, und lerne daraus. Gute Architektur besteht darin, auszugleichen, was Sie erhalten, wie Sie dorthin gelangen und wie viel es kostet.

Bruce Alderson
quelle
Was sind Ihrer Meinung nach die besten Ressourcen?
Geek
Ich empfehle den Leuten, zu lernen, die Ressourcen selbst zu beurteilen, da es schwierig ist, gutes Material zu finden (und zu wissen, was es ist). Ich kann sagen, dass Sie sich irgendwann die kanonischen Lehrbücher ansehen sollten (die die Domäne definieren) und dann, was andere Leute als großartige Architekturen betrachten. Sie sind vielleicht nicht mit dem Kanon oder den bekannten großen Architekturen einverstanden, aber es ist ein Ort, an dem Sie anfangen können zu denken.
Bruce Alderson
6

Persönlich würde ich sagen, dass ich durch reines Ausprobieren mehr gelernt habe als durch Lesen. Sie werden überrascht sein, wie viele der verrückten Ideen sich als gut herausstellen und wie viele brillante Ideen sich als schrecklich herausstellen. Aber das weißt du erst, wenn du es versuchst. Dies gilt genauso, wenn Sie den Code zum ersten Mal schreiben, wie wenn Sie ihn zur Hälfte durchlaufen haben. Halten Sie sich nicht an eine Architektur, die nicht funktioniert, nur weil Sie sich bereits dafür entschieden haben.

Nehmen Sie sich zum Schluss Zeit, um über Ihre Lösung nachzudenken. Geben Sie Ihr Bestes, um nicht auf Mitarbeiter und Manager zu hören, die Sie unter Druck setzen, die Dinge nicht durchzudenken, und beginnen Sie einfach mit dem Codieren.

Jason Baker
quelle
+1 Denken ist von größter Bedeutung. Versuchen Sie, Ihre Gedanken mit UML zu skizzieren. Betrachten Sie das Problem so konkret wie möglich. Ich denke, dass Design doppelt so viel Zeit in
Anspruch
2

Ein Codierer denkt darüber nach, das Problem zu lösen. Ein Architekt denkt über die Wartung der Lösung nach, begrenzt die der Lösung auferlegte Implementierung, Bereiche der Implementierung, die zeitlich verbessert werden sollen, Bereiche der Implementierung, die ausgelassen oder im Umfang reduziert werden können, wenn der Zeitplan abrutscht, Abhängigkeiten (sowohl intern als auch extern) ) die sich auf die Leistung der Implementierung auswirken können und auf Maßnahmen, die zur Begrenzung des Risikos, der für neue Benutzer des Systems erforderlichen Schulung, der Entwicklung der Dokumentation und der erforderlichen Änderungen, wenn die Implementierung von der geplanten Lösung abweicht, und wie die Die Beteiligten beurteilen die erzielten Fortschritte und die Anwendbarkeit der Umsetzung auf das tatsächlich zu lösende Problem.

Als Architekt müssen Sie in der Lage sein, effektiv zu kommunizieren, Ihre Gedanken und Pläne in einem praktikablen Zeitplan zu organisieren, ein Problem in umsetzbare Teile zu zerlegen, Prototypen technisch anspruchsvoller Teile zu erstellen und die Implementierung der Teile so zu koordinieren, dass alles pünktlich endet.

Erfahren Sie, wie Sie Ihre Lösung mit Enterprise Architect , Visio oder Bleistift und Papier darstellen. Holen Sie sich, wie in anderen Antworten erwähnt, einen Architekten-Mentor und teilen Sie ihm Ihre Lösungsdiagramme zur Überprüfung mit. Hören Sie sich das Feedback an und überarbeiten Sie Ihre Diagramme.

Lernen Sie, realistische Zeitpläne zu erstellen. Verfolgen Sie, wie lange Sie für die Implementierung benötigen, und verfolgen Sie, wie nah Sie an der korrekten Schätzung der Dauer sind.

Teilen Sie Ihre nächste Aufgabe in kleine Teile auf, bevor Sie mit dem Codieren beginnen, und verfolgen Sie die Schritte, die Sie ausgelassen haben. Erfahren Sie, wie Sie Problembereiche antizipieren und Prototypen erstellen, bevor Sie mit der Codierung der endgültigen Lösung beginnen.

Der Artikel, den Pierre 303 in dieser Antwort auf eine ähnliche Frage verlinkt hat , ist auch hier hinzuzufügen:

Wer braucht einen Architekten von Martin Fowler

Larry Smithmier
quelle