4.3 KiB
tags
| tags | |
|---|---|
|
Für das Erstellen der Thesis werden folgende Werkzeuge, die mit folgendem Zweck verwendet werden.
| Werkzeug | Zweck |
|---|---|
| Obsidian | Knowledge Graph, Persönliche Dokumentation, Organisation |
| Gitea | Online Repository und Code Organisation, Management |
| LaTeX / Typst | Schreiben der Thesis / Exposé |
| Zotero | Dokumentation und Datenbank der verwendeten Quellen |
| DrawIO / Mermaid | Graphenerstellung |
| VSCode | Development Environment |
| Python | Ausgewählte Programmiersprache |
| Docker / Podman | Containerisierung |
| Gitea Actions, Woodpecker CI | CI / CD |
| NGINX | Hosting der Dokumentation |
| Sphinx | Generierung der Dokumentation |
| pylint, yapf, isort | Code Linting |
| pre-commit | Linting Überprüfung vor Pushes auf Branches |
Repository Strategien
Branching
Für Sicherheitserhöhung soll parallel zum main Branch ein beta Branch existieren. Arbeitspakete gehen vom beta Branch aus und werden bereits dort durch die CI/CD-Pipeline. Damit soll mehrfach geprüft werden, dass implementierte Module / Features vernünftig funktionieren und Probleme nicht direkt auf den main Branch veröffentlicht werden.
CI / CD
Für die CI/CD Pipeline sind folgende Module von Interesse:
- Linter
- Modultests
- Automatische Generierung der Dokumentation
Für die CI/CD Pipeline wurde Woodpecker verwendet, dieses lässt sich in die bereits existierende Gitea Instanz hinzufügen. Zusätzlich ermöglicht dies eine Erweiterung der Integration und Development Pipelines im Sinne, dass von dort ein Automatisiertes Prüfen des Code-Stils und anschließend die Dokumentation erneuert werden kann.
Code Stil
Für den Code Stil wird sich an die Vorgaben durch Google gehalten, folgender Styleguide wird dafür verwendet. Dem Linter wird dieses Styleguide ebenfalls übergeben, sodass die Code-Architektur Einheitlich durchgeführt wird.
Der Code-Stil wird durch mehrere Tools automatisiert begutachtet und beim nicht-einhalten kann kein Merging in den main Branch durchgeführt werden. Diese Tools sind folgende: pre-commit, pylint, yapf, isort
Code Dokumentation
Zur Bereitstellung der Dokumentation wird Sphinx verwendet.
Dokumentation
Zusätzlich zur Code-Dokumentation wird in der Thesis die Dokumentation für die Programmnutzung als Anhang hinzugefügt werden.
Architektur
Die Architektur wird anhand mehrere Prinzipien gestützt.
Hybride Plug-in Layer + Pattern Architektur
Analysis Orchestrator
"Advantages include decoupling with logic layers, collating many functions, and acting as a centralized controller" gaurgaurav+1
Anhand des Orchestrators wird die Logikschicht und deren Plug-Ins orchestriert, sodass ein zentraler Controller für die Grundfunktionen und Erweiterungen existiert.
Core Analysis
"Predefined linguistic rules are used to analyze and process textual data... deterministic in nature, not probabilistic" geeksforgeeks
Dabei wird folgende Regel verfolgt: "A rule-based model is deterministic in nature... Either a document satisfies a given rule completely or it doesn't" sas
Die Umsetzung erfolgt Algorithmisch anstelle von mit KI wegen folgender Problematik: "Rule-based approach produces fewer minor hallucinations than neural counterparts" aclanthology