FAQ GoConsultez toutes les FAQ
Nombre d'auteurs : 6, nombre de questions : 45, dernière mise à jour : 20 août 2015 Ajouter une question
Cette FAQ a été réalisée essentiellement à partir de la traduction de la FAQ officielle GO.
Nous tenons à souligner que cette faq ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette faq ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.
Sur ce, nous vous souhaitons une bonne lecture.
L'équipe de rédaction Developpez.com
- Comment les bibliothèques sont-elles documentées?
- Y a-t-il un guide du style de programmation en Go ?
- Comment dois-je soumettre les correctifs pour les bibliothèques de Go?
- Pourquoi le projet utilise t-il Mercurial et non Git ?
- Pourquoi « go get » utilise le protocole HTTPS lors du clonage d'un dépôt ?
- Comment puis-je gérer la version de paquets (packages) en utilisant « Go get » ?
[Traduction de la FAQ officielle]
Il y a un programme, godoc, écrit en GO. Il extrait la documentation des packages à partir du code source. Il peut être utilisé en ligne de commande ou à travers une page internet. Une instance est exécutée sur golang.org/pkg/. En réalité godoc gère l'intégralité du site golang.org/.
[Traduction de la FAQ officielle]
Éventuellement, il y a quelques petites règles comme la nomination, la présentation et l'organisation des fichiers.
Le document « Effective Go » contient quelques conseils de style. Plus directement, gofmt est un programme de mise en forme dont le but est d'appliquer les règles de mise en page. Il remplace le recueil habituel des choses à faire et à ne pas faire pour permettre l'interprétation. Tout le code Go dans le dépôt est passé par gofmt.
Le document intitulé « Go Code Review Comments » est un recueil de textes très courts sur les détails du langage Go qui sont souvent négligés par les programmeurs. C'est une référence pratique pour ceux qui font des révisions de codes pour les projets en Go.
[Traduction de la FAQ officielle]
Les codes sources de la bibliothèque se trouvent dans go/src/pkg. Si vous voulez faire des modifications significatives, veuillez en discuter sur la liste de diffusion avant.
Lisez le document des contributions du projet Go pour plus d'informations sur comment procéder.
[Traduction de la FAQ officielle]
Le projet Go, héberger par Google Code à code.google.com/p/go, utilise Mercurial en tant que logiciel de contrôle de version.
Quand le projet a été lancé, Google Code ne supportait que Subversion et Mercurial.
Mercurial est un meilleur choix en raison de son mécanisme de plug-ins qui nous a permis de créer le plug-in « codereview » pour relier le projet aux excellents outils de révision de codes sur codereview.appspot.com.
Les programmeurs qui travaillent avec les sources du projet Go plutôt qu'avec les releases demandent parfois à passer le projet à Git.
Cela serait possible, mais il y aurait beaucoup de travail et demanderait de réimplanter le plug-in de révision de codes.
Étant donné que Mercurial fonctionne actuellement, avec le support de révision de codes et combiner avec le fait de l'utilisation linéaire et sans branche du projet Go, un tel changement ne semble pas utile.
[Traduction de la FAQ officielle]
Les entreprises permettent souvent le trafic sortant uniquement sur les ports TCP standards :
- les ports 80 (HTTP) et 443 (HTTPS) bloquant le trafic sortant sur d'autres ports y compris ;
- le port TCP 9418 (GIT) et le port TCP 22 (SSH).
Lorsque vous utilisez HTTPS plutôt que HTTP, git force la validation des certificats par défaut, fournissant une protection contre les techniques de « man in the middle », « eavesdropping » et « tampering ».
La commande go get utilise le protocole HTTPS par sécurité.
Si vous utilisez git et préférez envoyer les modifications via SSH en utilisant une clé existante, il est facile de contourner ce problème. Pour GitHub, essayez l'une de ces solutions :
- clonez manuellement le dépôt dans le répertoire du package :
Code : Sélectionner tout 1
2$ cd $GOPATH/src/github.com/username $ git clone git@github.com:username/package.git
- forcez git à utiliser le protocol SSH en ajoutant ces deux lignes dans ~/.gitconfig :
Code : Sélectionner tout 1
2[url "git@github.com:"] pushInsteadOf = https://github.com/
[Traduction de la FAQ officielle]
« Go get » n'a pas de notion explicite de gestion de version de packages.
La gestion des versions est une source significative de complexité, tout spécialement dans une grande base de code, et nous ne sommes au courant d'aucune approche, qui fonctionnerait bien sur une grande échelle et dans un large panel de situations pour permettre de l'imposer à tous les utilisateurs Go.
Ce que « Go get » et l'ensemble des outils Go fournissent est l'isolement des packages grâce à l'utilisation de différents chemins d'importations. Par exemple, la bibliothèque standard de html/templat et text/template coexiste même si les deux sont des « package template ».
Cette observation mène à quelques conseils pour les auteurs de packages et les utilisateurs de packages.
Les packages destinés à un usage public devraient essayer de maintenir la compatibilité ascendante à mesure qu'ils évoluent.
Les règles de compatibilité Go 1 sont une bonne référence ici :
- ne retirez pas les noms exportés ;
- encouragez les « tagged composite litteral » ;
- et ainsi de suite.
Si de nouvelles fonctionnalités sont requises, ajoutez un nouveau nom à la place d'un ancien. Si une rupture complète est nécessaire, créez un nouveau package avec un nouveau chemin d'importation.
Si vous utilisez un package provenant de l’extérieur et que vous vous inquiétez qu'il pourrait être changé d'une façon inattendue ou non souhaitée, la solution la plus simple est de le copier dans votre répertoire local.
(C'est l'approche que Google prend en interne) Stocker la copie dans un nouveau chemin d'importation qui l'identifie comme une copie locale, par exemple l'outil Goven de Keith Rarick peut aider à automatiser ce processus.
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.