Convert PocketBase dates to Berlin time; document code conventions
This commit is contained in:
1 parent
4b93434679
commit
aef05fb090
11 files changed
+406
-129
No files matched your search
@@ -83,11 +83,41 @@ Inhalt liegt in PocketBase (`pb_data`), das separat gesichert wird (siehe
|
||||
- Datenzugriff über den typisierten `PocketBaseClient` (registriert via
|
||||
`AddHttpClient`), der pro Request liest — kein Start-Cache, kein Singleton mit
|
||||
Inhalten. Komponenten liegen feature-basiert unter `Features/<Bereich>/`.
|
||||
- Öffentliche Typen und Methoden im `PocketBaseClient` und in `Contracts`
|
||||
bekommen XML-Doc (auf Englisch, leicht verständlich), Razor-Markup nicht.
|
||||
- **Code durchgängig auf Englisch** — Typen, Member, Variablen, Kommentare,
|
||||
Skripte und Doku. Das gilt **auch für Domänenbegriffe**: im Code `Event`, nicht
|
||||
`Termin`; `Post`, nicht `Beitrag`. Deutsch bleibt ausschließlich, was ein
|
||||
Besucher liest oder ein Redakteur pflegt: UI-Texte sowie die **Werte** der
|
||||
PocketBase-Records (z. B. `title: Vorstandsteam`, der Markdown-`body`). Die
|
||||
Feldnamen und Slugs bleiben dagegen englisch (`title`, `slug`, `/board`).
|
||||
|
||||
## Coding Convention
|
||||
|
||||
- **Ausdruckskörper (`=>`) sind Pflicht, wo syntaktisch möglich** — Methoden,
|
||||
Properties, Konstruktoren, Operatoren, lokale Funktionen. Ein `if/else`, das
|
||||
einen Wert liefert, wird zum ternären Ausdruck oder zur `switch`-Expression, kein
|
||||
Block-Körper mit `return`. Ein Block-Körper nur, wo ein Ausdruck sprachlich nicht
|
||||
geht (mehrere Anweisungen ohne Rückgabe, `ref`/`out`, `yield`).
|
||||
- Ternäre und `switch`-Expressions dürfen dafür mehrzeilig umgebrochen werden;
|
||||
Lesbarkeit entsteht durch Einrückung, nicht durch einen Block.
|
||||
- Nullable aktiv nutzen: `?`, `??`, `??=` statt Nullprüfungen im Block. Ein
|
||||
ungültiger `null`-Fall wird als Ausdruck geworfen (`?? throw new …`).
|
||||
- Argumente/Rückgaben früh und knapp validieren, bevorzugt als Ausdruck.
|
||||
|
||||
## Documentation Convention
|
||||
|
||||
Vorbild ist `Elternbeirat.PocketBase/LocalDateTimeConverter.cs` — daran
|
||||
ausrichten.
|
||||
|
||||
- **Jeder öffentliche (`public`/`protected`) Typ und Member bekommt XML-Doc** —
|
||||
nicht nur `PocketBaseClient` und `Contracts`. Interne Helfer, die Teil der
|
||||
fachlichen Erklärung sind (wie `WallClock`), ebenfalls. Razor-Markup nicht.
|
||||
- Voller Umfang, wo zutreffend: `<summary>`, dazu `<param>`, `<returns>`,
|
||||
`<exception>` (jede geworfene Bedingung), `<remarks>` für Kontext/Fallstricke,
|
||||
`<example>` mit `<code>` für nicht offensichtliche Nutzung, `<seealso>` auf
|
||||
verwandte Typen. `<inheritdoc/>` bei Interface-/Basis-Implementierungen.
|
||||
- Code im Text als Markup referenzieren, nicht als Prosa: `<see cref="…"/>`,
|
||||
`<see langword="null"/>`/`<see langword="false"/>`, `<c>…</c>` für Literale.
|
||||
- Einrückung: der Textinhalt steht mit vier Leerzeichen unter dem `///`-Tag
|
||||
(`/// Text`), Tags sauber verschachtelt.
|
||||
- Englisch, leicht verständlich, erklärt **warum**, nicht was der Code ohnehin
|
||||
zeigt.
|
||||
Reference in new issue
Block a user