Inhaltsverzeichnis
Jedrovni kontrolni seznam
Vrata za združitev - Ta kontrolni seznam se uporabi pri vsaki spremembi.
Koda s kršitvami tega kontrolnega seznama ne bo sprejeta.
Pripravljeno za produkcijo (brez tolerance)
Prepovedani vzorci
| Prepovedano | Zahtevano |
|---|---|
// TODO: komentarji | Popolna implementacija |
// FIXME: komentarji | Popravljena koda |
| Stub funkcije | Prave implementacije |
| Mock implementacije | Produkcijska koda |
| Nadomestne vrednosti | Prave vrednosti |
raise ENotImplemented | Delujoča koda |
Kontrolni seznam
[ ] Brez TODO komentarjev v produkcijski kodi [ ] Brez FIXME komentarjev v produkcijski kodi [ ] Brez stub ali nadomestnih funkcij [ ] Brez mock implementacij [ ] Vsaka funkcija popolnoma implementirana [ ] Vsi primeri napak obdelani [ ] Vsi robni primeri pokriti
Splošna kakovost
[ ] Brez podvojene kode (načelo DRY) [ ] Brez čarobnih številk (uporaba poimenovanih konstant) [ ] Konsistentno oblikovanje v celotni datoteki [ ] Vse javne metode imajo smiselna sporočila o napakah
Primer: Čarobne številke
(* PREPOVEDANO - Čarobna številka *) if Length(Name) > 64 then raise EValidationError.Create('Name too long'); (* PRAVILNO - Poimenovana konstanta *) const MAX_NAME_LENGTH = 64; if Length(Name) > MAX_NAME_LENGTH then raise EValidationError.Create(Format(rsNameTooLong, [MAX_NAME_LENGTH]));
Osnovna obravnava napak
[ ] Brez praznih catch/except blokov [ ] Napake se zabeležijo PREDEN se obdelajo [ ] Specifične izjeme pred splošnimi [ ] Sled sklada ohranjena ob ponovnem metu [ ] Viri se deterministično sprostijo (try-finally)
Primer: Pravilna obravnava napak
(* PREPOVEDANO - Prazen obdelovalec izjem *) try DoSomething; except // Ne naredi nič - PREPOVEDANO! end; (* PREPOVEDANO - Splošna izjema prva *) try DoSomething; except on E: Exception do // Preveč splošno! HandleError(E); on E: EFileNotFound do // Nikoli ne bo doseženo! HandleFileNotFound(E); end; (* PRAVILNO - Specifično, zabeleženo, viri sproščeni *) var Resource: TResource; begin Resource := TResource.Create; try try DoSomething; except on E: EFileNotFound do begin Logger.Error(rsFileNotFound, [E.Message]); (* Najprej zabeleži *) raise; (* Potem ponovno vrzi - sled sklada ohranjena *) end; on E: EAccessDenied do begin Logger.Error(rsAccessDenied, [E.Message]); raise; end; end; finally Resource.Free; (* VEDNO sprosti *) end; end;
Osnovno beleženje
[ ] Oblika in podrobnost beleženja sledita politiki [ ] Brez skrivnosti ali občutljivih podatkov v dnevnikih [ ] Strukturirana oblika: [Časovni žig] [Raven] [Vir] Sporočilo
Smernice ravni dnevnika
| Raven | Uporaba |
|---|---|
DEBUG | Samo v razhroščevalni gradnji, podrobne informacije o poteku |
INFO | Normalne operacije, pomembni mejniki |
WARN | Nepričakovane a obvladljive situacije |
ERROR | Napake, ki vplivajo na funkcionalnost |
Prepovedano v dnevnikih
(* PREPOVEDANO - Občutljivi podatki *) Logger.Info('User authenticated with token: %s', [Token]); Logger.Debug('Password: %s', [Password]); Logger.Info('API Key: %s', [ApiKey]); (* PRAVILNO - Brez občutljivih podatkov *) Logger.Info('User %s authenticated successfully', [Username]); Logger.Debug('Processing request for user %s', [Username]);
Struktura projekta
[ ] Struktura projekta sledi WvdS osnovi [ ] Gradbena konfiguracija pravilna [ ] Dokumentacijska triada obstaja (README, API, CHANGELOG)
Hitri kontrolni seznam za kopiranje
Kontrolni seznam pregleda (Core): Pripravljeno za produkcijo: - [ ] Brez TODO komentarjev - [ ] Brez FIXME komentarjev - [ ] Brez stub funkcij - [ ] Brez mock implementacij - [ ] Vse funkcije popolne Kakovost: - [ ] Brez podvojene kode (DRY) - [ ] Brez čarobnih številk - [ ] Konsistentno oblikovanje Obravnava napak: - [ ] Brez praznih except blokov - [ ] Napake zabeležene pred obravnavo - [ ] Specifične pred splošnimi izjemami - [ ] Viri sproščeni v finally Beleženje: - [ ] Brez občutljivih podatkov v dnevnikih - [ ] Strukturirana oblika dnevnika
Glejte tudi
Zuletzt geändert: dne 29.01.2026 ob 22:27