Maison > développement back-end > Golang > le corps du texte

Comment dois-je structurer mes packages Go pour une organisation et une maintenabilité optimales ?

DDD
Libérer: 2024-11-22 21:06:14
original
238 Les gens l'ont consulté

How Should I Structure My Go Packages for Optimal Organization and Maintainability?

Structure des packages de langage Go : explication détaillée et meilleures pratiques

Lors du développement d'applications Go, la structuration efficace de vos packages est cruciale pour la maintenabilité, organisation du code et respect des conventions. Voici une exploration approfondie de la structure du package Go, répondant aux questions fréquemment posées.

Structure des dossiers et importations

L'exemple de structure de projet que vous avez fourni est généralement correct, avec le exception d'un dossier src manquant dans votre $GOPATH. La structure mise à jour devrait être :

$GOPATH/
  src/
    github.com/
      username/
        projectname/
          main.go
          numbers/
            rational.go
            real.go
            complex.go
Copier après la connexion

Lors de l'importation de packages dans le package principal (main.go), utilisez les importations absolues. Dans votre exemple, l'instruction d'importation correcte serait :

import "github.com/username/projectname/numbers"
Copier après la connexion

package.go File

Avoir un fichier package.go dans chaque le dossier du package n’est pas requis. Dans votre cas, il n'est pas nécessaire de créer des fichiers package.go pour le package numbers ou ses sous-packages (par exemple, rational.go, real. vas-y, complex.go).

Nom du package et structure des fichiers

Tous les fichiers d'un package doivent appartenir à ce package, ce qui signifie qu'ils doivent démarrer avec la déclaration package correspondante. Pour le package numbers, cela ressemblerait à :

// real.go
package numbers

type Real struct {
    Number float64
}
Copier après la connexion

Dans votre package main, vous pouvez ensuite accéder au type Real en utilisant :

import "github.com/username/projectname/numbers"

func main() {
    fmt.Println(numbers.Real{2.0})
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal