GitHub
Eine Plattform zur Versionskontrolle von Code und zur Zusammenarbeit.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypTechnisch
- OrganisationsreifeReif
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Sicherheitsrisiken bei falscher Konfiguration.
- Missbrauch durch unbefugte Nutzer.
- Datenverlust durch Inkonsistenzen.
- Regelmäßige Commits.
- Dokumentation der Änderungen.
- Verwendung effektiver Branch-Strategien.
I/O & Ressourcen
- Quellcode
- Dokumentation
- Fehlermeldungen
- Versionshistorie
- Korrigierter Code
- Automatisierte Builds
Beschreibung
GitHub ist eine webbasierte Plattform für Versionskontrolle und kollaborative Softwareentwicklung auf Basis von Git. Sie ermöglicht es Entwickler:innen und Teams, Quellcode zu versionieren, Änderungen nachvollziehbar zu machen und parallel an Projekten zu arbeiten. Neben der reinen Codeverwaltung bietet GitHub Funktionen für Code-Reviews (Pull Requests), Issue- und Projektmanagement, Dokumentation (Markdown, Wikis), Automatisierung (GitHub Actions) sowie Sicherheits- und Compliance-Features wie Abhängigkeitsanalysen und Secret Scanning. GitHub wird sowohl für Open-Source-Projekte als auch in Unternehmen eingesetzt und dient häufig als zentrales System zur Organisation von Entwicklungsprozessen, Zusammenarbeit über Team- und Organisationsgrenzen hinweg sowie zur Veröffentlichung und Pflege von Softwareprodukten.
✔Vorteile
- Verbesserte Teamzusammenarbeit.
- Einfacher Zugriff auf den Quellcode.
- Effiziente Fehlerverfolgung.
✖Limitationen
- Erfordert Internetzugang zur Nutzung.
- Kann komplexe Berechtigungen erfordern.
- Abhängigkeit von Git für Versionskontrolle.
Trade-offs
Metriken
- Anzahl der Commits
Die Anzahl der Commits, die innerhalb eines bestimmten Zeitraums vorgenommen wurden.
- Fehlerberichte
Die Anzahl der eingegangenen Fehlerberichte während der Entwicklung.
- Pull-Requests
Die Anzahl der erstellten Pull-Requests zur Überprüfung.
Beispiele & Implementierungen
Projektverwaltung für Open Source
Die Verwaltung eines Open-Source-Projekts auf GitHub zur Zusammenarbeit von Entwicklern weltweit.
Fehlerbehebung in einer Webanwendung
Verwendung von GitHub zur Verwaltung von Fehlerberichten und zur Verfolgung von Korrekturen.
CI/CD Pipeline
Einrichten einer CI/CD-Pipeline zur automatischen Bereitstellung von Code-Änderungen.
Implementierungsschritte
Einrichten eines GitHub-Kontos.
Erstellen eines neuen Repositories.
Einladen von Mitwirkenden.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Veraltete Abhängigkeiten.
- Unzureichende Tests.
- Nicht einheitlicher Code-Stil.
Bekannte Engpässe
Beispiele für Missbrauch
- Änderungen ohne Dokumentation.
- Direkte Änderungen am Master-Branch ohne Überprüfung.
- Zusammenarbeit mit nicht autorisierten Nutzern.
Typische Fallen
- Unzureichende Kommunikation im Team.
- Missachtung von Code-Reviews.
- Schlecht verwaltete Branches.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Benötigt Internetverbindung.
- • Abhängigkeit von GitHub-Servern.
- • Begrenzte kostenlose Funktionen.