Hvad er den anbefalede Go-projektmappestruktur?
Små projekter har normalt ikke brug for nogen struktur. Alt hvad du behøver for at starte er bare main.go
. Jeg anbefaler altid at starte et projekt med kun en enkelt main.go
-fil.
Dernæst, når dit projekt vokser (forestil dig, at du indser, at du nu skal have to binære filer), er den almindelige fremgangsmåde at tilføje cmd/
-mappen. Det kan selvfølgelig være et hvilket som helst dir, men cmd
er noget, som enhver gopher straks genkender i projektet.
Dernæst, når din kodebase vokser, begynder du at tilføje flere “.go”-filer og flere pakker – hver af dem vil ligge i en separat undermappe (pr. definition). Og her var mange nybegyndere bliver forvirrede og bringer struktureringsmønstre med fra andre sprog eller frameworks.
I mange andre sprog bruges mappen til at “namespacing” en masse filer, som handlers
eller models
, men i Go er mappen en separat pakke (dvs. et bibliotek). Så “strukturering af mapper” i Go betyder faktisk “hvordan abstraherer du kode i underpakker og hvornår”.
Men generelt tænker du ikke på at strukturere dit repo, medmindre din kodebase beder om det (dvs. for mange filer, indlysende abstraktioner, der kan genbruges og isoleres i sin egen pakke osv.).