2017-10-14 8 views
1

Je viens d'écrire un projet qui est séparé en 3 parties: API écrite en Golang, mongoDB et client android. Et comme ci-dessus, j'ai pensé qu'il serait bon de créer des directives. Mais quand il est pas une bonne pratique pour les projets golang de GitHub: pour la structure comme ceci:Structure du projet Github

MyProject 
├── API 
│   ├── scripts 
│   └── src 
│      └── some_go_file.go 
├── DB 
│   ├── db_scripts 
│   └── data 
└── AndroidDirectory 

Toute idée de comment cette structure devrait ressembler? Dois-je utiliser des repos séparés ou peut-être devrais-je laisser chaque composant sur une branche distincte?

+1

En supposant que vous puissiez facilement construire et déployer avec cette structure, je ne vois aucune raison de ne pas utiliser un seul repo et une branche. –

+0

L'utilisation d'un dépôt séparé pour l'API et le client Android rendra votre vie plus facile. Pensez au versioning et à la libération. Si l'API est sauvegardée par la base de données, je la mettrais dans le rapport API. – reto

Répondre

2

Il n'y a pas de disposition particulière imposée aux projets Go sur github, sauf qu'il serait bien de le rendre gagable en ayant un paquet principal avec quelques fichiers go au plus haut niveau. Voir les instructions ici, mais gardez à l'esprit qu'il commence par parler des espaces de travail, pas des applications si vous faites défiler vers le haut.

https://golang.org/doc/code.html#Command

Pour compiler et exécuter un programme simple, choisissez d'abord un chemin paquet (nous allons utiliser github.com/user/hello) et créer un répertoire package correspondant dans votre espace de travail:

$ mkdir $ GOPATH/src/github.com/utilisateur/hello Ensuite, créez un fichier nommé hello.go dans ce répertoire, contenant le code Go suivant.

Donc c'est le seul peu je changer - mettre au moins un fichier aller au niveau supérieur, vous pouvez alors vos autres paquets ci-dessous que quelle que soit la structure que vous souhaitez (il est bon d'utiliser un src dir si vous souhaitez pour la plupart des paquets).

Utilisez un dépôt séparé pour le projet Android, car il est peu probable qu'il utilise le même code (il utilisera vraisemblablement l'API sur le réseau et n'utilisera pas mongodb par exemple directement).

Cela laisse votre projet api et mongodb. Comme les données db et tous les scripts sont probablement liés au serveur api et évolueront avec lui, je les mettrais comme un sous-répertoire de votre projet comme vous l'avez montré.