J'ai lu le Go Tour et les "paquets golang" de Google, mais je n'ai pas encore trouvé de conseils sur les meilleures pratiques dans Go pour l'organisation d'applications de taille moyenne.Organisation des programmes Go - paquets ou autre chose?
Si j'ai une application qui a conceptuellement plusieurs parties distinctes, peut-être 10^3-10^4 LOC, et je n'ai pas l'intention de créer des bibliothèques réutilisables pour une utilisation dans d'autres applications, package main
?
Pour clarifier ...
Par exemple, disons que mon programme aura les morceaux majeurs suivants:
- Quelque chose qui gère un tas de données constamment stockées
- permettant les opérations habituelles de création, lecture, mise à jour, suppression
- Quelque chose qui permet à un humain de visualiser les données stockées
- Quelque chose qui coordonne/médie entre ces
- Quelque chose qui va chercher périodiquement des mises à jour de données à partir d'un service Web en utilisant SOAP.
Donc ce serait MVC plus un fetcher de données.
De regarder autour de ce que les gens font, je soupçonne que maintenant je
- créer
$GOPATH/src/myprogramname
- y mettre un peu
main.go
avecpackage main
etfunc main() { ... }
en elle. - créer des sous-répertoires comme
$GOPATH/src/myprogramname/model
$GOPATH/src/myprogramname/view
$GOPATH/src/myprogramname/control
$GOPATH/src/myprogramname/fetch
- ont les fichiers .Allez dans ces sous-répertoires commencer par
package fetch
, etc. Lorsque le nom du package toujours correspond au nom du sous-répertoire. - mon
main.go
sera probablementimport (... "fetch"; "model"; "view"; "control")
- comme
main.go
pousse, il divisé en d'autres fichiers .Allez de taille raisonnable nommés en fonction du but. construire le programme, y compris * .go dans les sous-répertoires de paquets ci-dessus par
cd $GOPATH/src/myprogramname go build
Est-ce tout ce que je dois faire? Est-ce la bonne façon d'organiser les choses? Y at-il plus que je devrais savoir ou penser? Y a-t-il une page Web canonique ou un PDF que j'ai oublié et que je devrais lire pour trouver ce genre de choses?
En bref, je ne veux pas un main.go de 10.000 lignes avec tout ce qu'il contient. Quels sont les principes idiomatiques Go pour organiser le code en fichiers, sous-répertoires, paquets et toutes autres unités organisationnelles correspondant à des divisions conceptuelles normales selon des principes bien connus de programmation structurée et/ou d'OO?
C'est un bon conseil général mais je cherchais plus de détails, je vais mettre à jour ma question pour clarifier. – RedGrittyBrick
Impossible de faire plus sans détails, je vais vérifier vos mises à jour et ajouter des suggestions à ma réponse :) – Chryor