In den Fächern Informatik, Technologie und Planung sowie Systeme und Netze habt ihr bis jetzt viele. aber meist recht kleine Programme geschrieben. Habt ihr euch schon die Frage gestellt, was passiert, wenn eure Software-Erzeugnisse wachsen? Was, wenn sie mit anderen IT-Systemen interagieren, möglicherweise über mehr als eine Bedieneroberfläche verfügen (HTML5, Mobile App) und/oder mit mehreren unterschiedlichen Datenquellen arbeiten? Dann reichen Konzepte wie die Entwurfsmuster alleine nicht mehr aus, denn man sollte eine gründliche Planung wie bei einem Hausbau vorsehen.
In diesem Abschnitt erlernen wir die nötigen Best Practices für einen ingenieurmäßigen Ansatz zur Umsetzung größerer und schwergewichtiger IT-Systeme. Zuerst sehen wir uns typische Fehler der Vergangenheit an, so wie man besser nicht arbeiten sollte. Im Anschluss daran nähern wir uns dem Begriff Komponente und betrachten hilfreiche Konventionen (Architekturmuster), welche es uns erlauben, ein System flexibel zu halten, um es mit minimalem Aufwand an neue Erfordernisse anzupassen.
Der praktische Teil dieses Abschnitts besteht in der Analyse des freien und offenen Systems Open Data Hub Südtirol (https://www.opendatahub.bz.it/, GitHub: https://github.com/idm-suedtirol/bdp-core) das von IDM Südtirol in Zusammenarbeit mit verschiedenen IT-Experten entwickelt wird, um dem/der BürgerIn Zugriff auf lokale Daten als Gemeingut (= Open Data) zu gewähren (Wetter, Parkplätze, Verkehrsaufkommen etc.). Wir betrachten den Quellcode einiger fundamentaler Komponenten, um der Architektur dieses umfangreichen Systems auf den Grund zu gehen.
Classroom URL: https://classroom.github.com/a/_JzipMA_
Praktisches Beispiel zu Continuous Integration auf GitLab mittels den von Google bereitgestellten Shared-Runners auf Docker-Basis. Referenz: https://docs.gitlab.com/ee/ci/