Jaká je doporučená struktura složek projektu Go?
Malé projekty obvykle žádnou strukturu nepotřebují. Pro začátek stačí jen main.go
. Doporučuji vždy začínat projekt jen s jedním souborem main.go
.
Poté, jakmile se váš projekt rozroste (představte si, že zjistíte, že nyní musíte mít dvě binárky), je běžným přístupem přidání složky cmd/
. Může to být samozřejmě jakýkoli adresář, ale cmd
je něco, co každý gopher v projektu okamžitě rozpozná.
Poté, jakmile se vaše kódová základna rozroste, začnete přidávat další soubory „.go“ a další balíčky – každý z nich bude v samostatném podadresáři (z definice). A tady bylo mnoho nováčků zmateno a přináší strukturovací vzory z jiných jazyků nebo frameworků.
V mnoha jiných jazycích se adresář používá pro „jmenný prostor“ hromady souborů, jako handlers
nebo models
, ale v Go je adresář samostatný balíček (tj. knihovna). Takže „strukturování adresářů“ v Go vlastně znamená „jak abstrahovat kód do podbalíčků a kdy“.
O strukturování repozitáře ale obecně nepřemýšlíte, pokud si o to vaše kódová základna neříká (tj. příliš mnoho souborů, zjevné abstrakce, které lze znovu použít a izolovat ve vlastním balíčku atd.