====== Core-Checkliste ====== **Merge-Gate** - Diese Checkliste wird bei **jeder** Änderung angewendet. Code mit Verstößen gegen diese Checkliste wird **nicht** akzeptiert. ===== Production-Ready (Zero Tolerance) ===== ==== Verbotene Patterns ==== ^ Verboten ^ Erforderlich ^ | ''%%// TODO:%%'' Kommentare | Vollständige Implementierung | | ''%%// FIXME:%%'' Kommentare | Behobener Code | | Stub-Funktionen | Echte Implementierungen | | Mock-Implementierungen | Produktionscode | | Placeholder-Werte | Echte Werte | | ''raise ENotImplemented'' | Funktionierender Code | ==== Checkliste ==== [ ] Keine TODO-Kommentare im Produktionscode [ ] Keine FIXME-Kommentare im Produktionscode [ ] Keine Stub- oder Placeholder-Funktionen [ ] Keine Mock-Implementierungen [ ] Jede Funktion vollständig implementiert [ ] Alle Fehlerfälle behandelt [ ] Alle Randfälle abgedeckt ===== Allgemeine Qualität ===== [ ] Kein duplizierter Code (DRY-Prinzip) [ ] Keine Magic Numbers (benannte Konstanten verwenden) [ ] Konsistente Formatierung in der gesamten Datei [ ] Alle öffentlichen Methoden haben aussagekräftige Fehlermeldungen ==== Beispiel: Magic Numbers ==== (* VERBOTEN - Magic Number *) if Length(Name) > 64 then raise EValidationError.Create('Name too long'); (* KORREKT - Benannte Konstante *) const MAX_NAME_LENGTH = 64; if Length(Name) > MAX_NAME_LENGTH then raise EValidationError.Create(Format(rsNameTooLong, [MAX_NAME_LENGTH])); ===== Error Handling Baseline ===== [ ] Keine leeren catch/except-Blöcke [ ] Fehler werden geloggt BEVOR sie behandelt werden [ ] Spezifische Exceptions vor allgemeinen [ ] Stack-Trace bei Re-Throw erhalten [ ] Ressourcen deterministisch freigegeben (try-finally) ==== Beispiel: Korrektes Error Handling ==== (* VERBOTEN - Leerer Exception-Handler *) try DoSomething; except // Nichts tun - VERBOTEN! end; (* VERBOTEN - Allgemeine Exception zuerst *) try DoSomething; except on E: Exception do // Zu allgemein! HandleError(E); on E: EFileNotFound do // Wird nie erreicht! HandleFileNotFound(E); end; (* KORREKT - Spezifisch, geloggt, Ressourcen freigegeben *) var Resource: TResource; begin Resource := TResource.Create; try try DoSomething; except on E: EFileNotFound do begin Logger.Error(rsFileNotFound, [E.Message]); (* Erst loggen *) raise; (* Dann weiterwerfen - Stack-Trace erhalten *) end; on E: EAccessDenied do begin Logger.Error(rsAccessDenied, [E.Message]); raise; end; end; finally Resource.Free; (* IMMER freigeben *) end; end; ===== Logging Baseline ===== [ ] Logging-Format und -Verbosity folgen Policy [ ] Keine Secrets oder sensible Daten in Logs [ ] Strukturiertes Format: [Timestamp] [Level] [Source] Message ==== Log-Level Richtlinien ==== ^ Level ^ Verwendung ^ | ''DEBUG'' | Nur im Debug-Build, detaillierte Ablaufinfos | | ''INFO'' | Normale Operationen, wichtige Meilensteine | | ''WARN'' | Unerwartete aber behandelbare Situationen | | ''ERROR'' | Fehler die Funktionalität beeinträchtigen | ==== Verboten in Logs ==== (* VERBOTEN - Sensible Daten *) Logger.Info('User authenticated with token: %s', [Token]); Logger.Debug('Password: %s', [Password]); Logger.Info('API Key: %s', [ApiKey]); (* KORREKT - Keine sensiblen Daten *) Logger.Info('User %s authenticated successfully', [Username]); Logger.Debug('Processing request for user %s', [Username]); ===== Projektstruktur ===== [ ] Projektstruktur entspricht WvdS-Baseline [ ] Build-Konfiguration korrekt [ ] Dokumentations-Triade existiert (README, API, CHANGELOG) ===== Schnell-Checkliste zum Kopieren ===== Review-Checkliste (Core): Production-Ready: - [ ] Keine TODO-Kommentare - [ ] Keine FIXME-Kommentare - [ ] Keine Stub-Funktionen - [ ] Keine Mock-Implementierungen - [ ] Alle Funktionen vollständig Qualität: - [ ] Kein duplizierter Code (DRY) - [ ] Keine Magic Numbers - [ ] Konsistente Formatierung Error Handling: - [ ] Keine leeren except-Blöcke - [ ] Fehler vor Behandlung geloggt - [ ] Spezifische vor allgemeinen Exceptions - [ ] Ressourcen in finally freigegeben Logging: - [ ] Keine sensiblen Daten in Logs - [ ] Strukturiertes Log-Format ===== Siehe auch ===== * [[.:qualitaetssicherung|Qualitätssicherung Übersicht]] * [[.:audit-sicherheit|Sicherheits-Checkliste]] * [[.:audit-codequalitaet|Codequalität-Checkliste]] * [[.:debugging|Debugging]]