# 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ů.