Disons que j'ai un service qui communique avec GitHub via l'API pour créer et modifier des référentiels.
La liste des fonctions pourrait ressembler à quelque chose comme ci-dessous. p>
Chaque requête apportée à l'API a plusieurs parties mobiles, donc je la divise en plusieurs fonctions p> cette mise en page a 2 problèmes - P> Tout est dans un gros fichier appelé Étant donné que tout cela se trouve dans le même package GO, le nom doit être unique. J'ai donc des noms d'espace de noms avec l'action et le contexte (E.G. merci! p> p>
github_service.go code> et je ne sais pas comment le scinder. devrait-il être dans des sous-répertoires plus petits tels que
Services / github / update_service.go CODE>? STROND> En général, comment organise-on des services tels que celui-ci dans un projet simple (par exemple, une utilitaire de ligne de commande ) p> li>
Findgithubrepositoryl () code> au lieu de
URL () code>). devrait être sous un package séparé? fort>. Mais alors comment partageraient-ils des aides communs? P> LI>
ol>
3 Réponses :
Vous pouvez organiser votre projet avec ce Structure P> li>
J'ai créé un référentiel avec cette structure, vous pouvez le cloner et utiliser c'est comme un modèle. J'espère que j'ai aidé :) p>
Il y a plusieurs solutions à cela.
Ceci peut également donner aux gestionnaires un moyen d'accéder à des fonctionnalités ou à des variables courantes. Vous pouvez créer une structure de base avec celles et l'intégrer à toutes les structures de manutention. P> P>
Merci! L'approche de structure semble être un moyen d'imiter les classes traditionnelles fournies par d'autres langages de l'OOP tels que Ruby et Python, non?
Il s'agit d'une approche davantage de type OO avec l'isolement de l'espace de noms de noms et de la capacité de transmettre des services communs spécifiques aux ressources à chaque mise en œuvre. J'utilise cela souvent et conserve des services de backend spécifiques à des ressources dans la structure pour le gestionnaire.
Merci! Serait-il possible de regrouper tout par trouver () code> au lieu de la ressource (
utile code>, base, etc ...)? Et voudriez-vous avoir un exemple de travail de cela que vous pourriez partager? Apprécier l'aperçu.
Vous pouvez le regrouper comme ça, parfois, cela a du sens tout en l'écrivant. Pensez à la façon dont vous trouverez ce que vous avez besoin d'un mois plus tard, lorsque vous le lisez. Je ne suis pas au courant d'un exemple ouvert qui utilise ce type de structure. Il semble plus approprié pour un CLI, comme 'Kubectl Obtenir des pods'.
Pour rendre le projet simple et minimiser les multiples importations de fichiers Gardez tous les fichiers sous le même paquet avec différents noms de fichiers. Exemple (supposer pour TestService): P>
xxx pré> Ici, les numéros 1 représentent qu'ils sont au même niveau et 2 représente des fichiers sous Annuaire Service P> blockQuote> blockQuote>
Commencez par un paquet et une fois que vous avez identifié une sous-partie cohérente et fermée: déplacez-la à son propre package.