Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
wiki:software:beuthbot:berichte:ws2020:zwischen:geplanter-stand-preambel [22.11.2020 20:13] Dennis Walz [Präambel] |
wiki:software:beuthbot:berichte:ws2020:zwischen:geplanter-stand-preambel [25.11.2020 02:12] (aktuell) Lukas Danke |
||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
===== Präambel ===== | ===== Präambel ===== | ||
- | Neben einigen | + | Neben einigen |
==== Content First ==== | ==== Content First ==== | ||
- | Der BHT-Bot besteht bisher aus lediglich zwei Services, die Content zur Verfügung stellen: Mensa- und Wetter-Service. Aufgrund der Covid19-Pandemie | + | Der BHT-Bot besteht bisher aus lediglich zwei Services, die Content zur Verfügung stellen: Mensa- und Wetter-Service. Aufgrund der Covid19-Pandemie |
+ | |||
+ | ==== Hands-On & Dokumentation ==== | ||
+ | Wenn man neu in ein Projekt kommt gibt es viel Dokumentation aufzuarbeiten, | ||
+ | |||
+ | Ohne einen persönliche Hands-On-Workshop ist eins der größten Probleme um ins Projekt zu finden, dass es verschiedene Stellen gibt, an denen Dokumentation, | ||
+ | |||
+ | Wir wollen diese Situation verbessern, indem wir falsche und für uns nicht-nachvollziehbare Dokumentation verbessern, Wikistrukturen bereinigen, eine Landing-Page für den Bot unter einer zentralen Bot-Domain verfügbar machen und Abläufe und Strukturen in Code gießen. | ||
==== Redundanter Code / Wartbarkeit der Microservices ==== | ==== Redundanter Code / Wartbarkeit der Microservices ==== | ||
Beim Studium der einzelnen Services wurde sichtbar, dass fast ausnahmslos jeder Service des BHT-Bot die gleiche Grundstruktur hat: Alle Services stellen eine JSON-REST-Schnittstelle zur Verfügung, die via NodeJS + Express Framework implementiert ist. Vergleicht man die Services, sieht man, dass insbesondere Services, die Inhalte ausspielen sollen einer identischen Struktur folgen (müssen), dies aber individuell handhaben. Dadurch ist der Boilerplate Code für jeden Service unnötig hoch und zugleich ist das Warten der Services bei Änderung von globalen Schnittstellen mit hohem individuellen Aufwand verbunden. Wir wollen diese Common-Funktionalitäten identifizieren und in zentralen Bibliotheken bzw. Frameworks bündeln. | Beim Studium der einzelnen Services wurde sichtbar, dass fast ausnahmslos jeder Service des BHT-Bot die gleiche Grundstruktur hat: Alle Services stellen eine JSON-REST-Schnittstelle zur Verfügung, die via NodeJS + Express Framework implementiert ist. Vergleicht man die Services, sieht man, dass insbesondere Services, die Inhalte ausspielen sollen einer identischen Struktur folgen (müssen), dies aber individuell handhaben. Dadurch ist der Boilerplate Code für jeden Service unnötig hoch und zugleich ist das Warten der Services bei Änderung von globalen Schnittstellen mit hohem individuellen Aufwand verbunden. Wir wollen diese Common-Funktionalitäten identifizieren und in zentralen Bibliotheken bzw. Frameworks bündeln. | ||
+ | |||
+ | Bei allem was wir tun und Planen gilt die alte Pfadfinder-Regel: | ||
==== Qualitätsmanagement ==== | ==== Qualitätsmanagement ==== | ||
Zeile 18: | Zeile 27: | ||
- Releases werden durch Versionierte Git Tags erzeugt (und dann automatisch deployed) - Die Tags werden semantisch versioniert | - Releases werden durch Versionierte Git Tags erzeugt (und dann automatisch deployed) - Die Tags werden semantisch versioniert | ||
- Neue Features werden via Pull Request in das Repository übernommen. Nach Möglichkeit werden die Requests durch ein Projektmitglied reviewd und freigegeben | - Neue Features werden via Pull Request in das Repository übernommen. Nach Möglichkeit werden die Requests durch ein Projektmitglied reviewd und freigegeben | ||
- | |||
- | ==== Hands-On & Dokumentation ==== | ||
- | FIXME | ||
===== Übersicht geplante Tasks und Abhängigkeiten ===== | ===== Übersicht geplante Tasks und Abhängigkeiten ===== | ||
{{page>: | {{page>: | ||
+ | |||
+ | {{ : | ||
===== Architektur ===== | ===== Architektur ===== | ||
- | {{page>: | + | Die Architektur-Entscheidungen orientieren sich an der bisherigen Infrastruktur. Durch die Verwendung der gleichen Programmiersprachen und Technologien wird Wartbarkeit gewährleistet und insbesondere die Abstraktion von Common-Funktionalitäten in Libraries begünstiget. |
+ | Dies bedeutet für den BHT-Bot: | ||
+ | * Alle Features werden als Microservice-Architektur konzipiert | ||
+ | * Microservices werden via Docker Container betrieben | ||
+ | * Docker Container werden via docker-compose orchestriert | ||
+ | * Microservices kommunizieren via REST-Schnittstellen innerhalb des Docker-Network | ||
+ | * Services werden in Javascript geschrieben | ||
+ | * Libraries und Frameworks werden in Typescript geschrieben | ||
+ | {{page>: | ||
+ | < | ||
===== Aufgaben Spezifikation ===== | ===== Aufgaben Spezifikation ===== | ||
{{page>: | {{page>: |