Softwarearchitektur: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Thomas (Diskussion | Beiträge) Die Seite wurde neu angelegt: „Den Softwareaspekt mal außen vorgelassen, so weckt der Begriff „Architektur“ doch gewisse Vorstellungen in uns. Der Architekt – hochgebildet und erfahre…“ |
Thomas (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 11: | Zeile 11: | ||
* Testen | * Testen | ||
Und eben diese Aspekte nehmen die meiste Zeit in Anspruch, je größer ein Softwareprojekt wird. | Und eben diese Aspekte nehmen die meiste Zeit in Anspruch, je größer ein Softwareprojekt wird. Schlussendlich gilt jedoch: Der Erfolg gibt Recht. Und erfolgreich kann man mit verschiedenen Ansätzen sein.<ref>Amy Brown, Greg Wilson, editors. The Architecture of Open Source Applications. Volume I and II. 2014. https://www.aosabook.org</ref> | ||
== Bewährte Prinzipien == | == Bewährte Prinzipien == | ||
<ref>Robert C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall, 2017.</ref> | Robert C. Martin stellt in seinem Buch „Clean Architecture“ eine Reihe von Behauptungen auf:<ref>Robert C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall, 2017.</ref> | ||
* Architektur ist wichtiger als Funktionalität. Gute Architektur erleichtert das Vornehmen von Veränderungen. So kann Funktionalität hergestellt werden. Andersrum ist es schwieriger. | |||
* Ein Softwarearchitekt sollte gleichzeitig auch ein Programmierer sein. Es ist schwer, gute Designentscheidungen zu treffen, wenn man von diesen nicht auch selbst betroffen ist. | |||
* Das Ziel guter Architektur ist es, so viele Entscheidungen wie möglich so lange wie möglich hinauszuzögern. | |||
'''Anmerkung:''' Robert C. Martin's Bücher sind zwar stets empfehlenswert, jedoch nicht ohne Kontroversen. | |||
Zur Umsetzung eben dieser Grundsätze gibt er folgende Ratschläge mit auf den Weg: | |||
=== Grenzen abstecken (Boundaries) === | |||
=== In Use Cases denken statt in Implementierungsdetails === | |||
=== Design for Testability === | |||
== Besonderheiten bei der Entwicklung von Videospielen == | == Besonderheiten bei der Entwicklung von Videospielen == | ||
| Zeile 30: | Zeile 44: | ||
== Referenzen == | == Referenzen == | ||
<references /> | <references /> | ||
