# Dokumentace
- Dva stupně pro mikroservices - Samostatný repozitář s obecnou dokumentací celého projektu, business logiky.
- Samostnatné repozitáře - vyloženě technická dokumentace.
## README v každém repozitáři
### Instalace
- Jak nainstalovat appku
- Jen jestli to potřebuje něco speciálního oproti `node-template`
- Update jen když se něco z toho změní (téměř nikdy)
### Konfigurace
- Řešení - jsonc, ale pořád není standard - na flash sport nikde komentář ke konfigu = hledá se v kódu, zapomene se něco odstranit, nikdy neví k čemu to je = měla by být vážně povinnost.
- Komentář k tomu, zdali se něco konfiguruje zde v repu nebo na společném místě! = Sdálené funkcionality, příklad z FlashSportu:
`ls-adapter` určuje podporované jazyky pro `importer` a `updater`, ale nikde o tom v dalších dvou repozitářích není zmínka!
- Mění se s každým přidáním do konfigurace nebo upravení závislostí (také není často)
### Spuštění
- Jak spustit pro běh lokálně a jestli jsou potřeba jiné služby pro řádné otestování nebo ne (a které).
- Co je nutné v konfiguraci vyplnit (zase může posloužit JSONC s nějakým tagem/anotací na začátku jako @required)
- Mění se také velmi z zřídka.
## Společné repo
- Stejný pattern, ale mluví se o celém projektu
### Úvod
- Co je projekt, co má za cíl
- Odkazy na další repa - přímo do dokumentací viz. výše.
### Instalace
- Obrázek architektury
- Jak spolu služby komunikují, jaké používají protokoly.
### Konfigurace
- Kde jsou hlavní konfigurace business logiky jako např. whitelisty, podpora jazyků atd...
- Kde jsou sdílené konfigurace (např. pokud jedno repo obsahuje konfiguraci pro více repozitářů - stačí odkaz)
### Spuštění
- Návod jak zprovoznit celý projekt - jestli stačí jeden docker z jednoho repa, co nastavit, jaký Vault config použít.
## API
- Buď generovat pro každé repo specifickou dokumentaci jako např. pro REST / GraphQL / gRPC nebo jednu ve společném repozitáři = určitě nepsat ručně, použít generující tool.
- Seznam endpointů je super, ale člověk netuší, jak to pořád funguje dohromady - Ukázat nejdůležitější / disjunktní flow dat = návaznost endpointů. Uživatelský request - Co se musí stát = ukáže funkčnost celého systému jako celku.
## Kód
- Kód by měl být samopopisný, pokud cítím, že jsem napsal prasárnu, tak tam radši hodím komentář, co to dělá. U ostatního napíšu PROČ to tam je, u microservice se nedá jednoduše dohledat usage = dokud to člověk nepoužije, tak neví pro to tam vůbec je.
- Např. firestoreService
`Save date of the last updated articles for notifications in UI.`
## FAQ
- Seznam otázek nebo klasických problémů.