In rete esistono molte guide su come strutturare le cartelle per le proprie applicazioni, tutte seguono uno schema condivisibile in base all'esperienza di chi scrive l'articolo quindi non starò a fare titoli sensazioni come La miglior struttura per le vostre API o cose cosí perchè questa struttura funziona secondo il mio schema logico.
In pratica prendo spunto da una struttura simil MVC (Model View Content) in modo da avere divise le diverse componenti in modalità logica e frammentare il codice in modo che ogni volta che vado a movimentare qualcosa posso andare a botta sicura e il file che apro sia sempre relativamente piccolo nel caso lo dovessi lavorare da riga di comando.
Quindi le parti logiche partendo dalla root sono:
[Views] -> Cartella che contiene i file con le viste
[Routes] -> Cartella che contiene tutti i file con dentro il codice degli endpoint della nostra applicazione
[Public] -> Cartella che contiene tutti i ifle che saranno utilizzati da fastify come cartella per i css, immagini etc etc
[helpers] -> Cartella che contiene le librerie non installate tramite gestore di paccchetti che contengono utility per l'applicazione
[certs] -> Cartella che contiene i certificati https da utilizzare, questa cartella non è vitale e se avete un reverse proxy di fronte l'app potrebbe non servire
[prisma] -> Contiene la parte di Model fatta con Prisma
Alla fine quindi la situazione finale sarà simile a questa in foto
Nei prossimi articoli parleremo degli altri file che ci sono nella root.
Voi che struttura utilizzate?
Come organizzate il vostro codice?
Alex