====== 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]]