Maison > développement back-end > Golang > Comment développer le golang

Comment développer le golang

PHPz
Libérer: 2023-05-21 18:26:37
original
1295 Les gens l'ont consulté

Dans l'industrie actuelle du développement de logiciels, le langage Go (également connu sous le nom de Golang) est devenu l'un des langages préférés par de plus en plus de développeurs. En raison de sa prise en charge efficace de la programmation simultanée, de sa syntaxe concise et facile à apprendre et de sa bonne prise en charge des systèmes à grande échelle, le langage Go a été largement utilisé dans les services réseau, le cloud computing, l'orchestration de conteneurs et d'autres domaines.

Donc, dans cet article, nous apprendrons comment utiliser Golang pour développer une application Web complète, y compris les outils, les frameworks, les idées de conception et d'autres détails nécessaires pendant tout le processus de développement.

Installer et configurer l'environnement Go

Nous devons d'abord installer l'environnement Go sur la machine locale. Ici, nous pouvons télécharger directement le package d'installation de Go sur le [site officiel](https://golang.org/dl/) et l'installer. Une fois l'installation terminée, nous devons configurer les variables d'environnement de la machine locale et ajouter le répertoire Go bin à PATH. De cette façon, nous pouvons saisir la commande "go" sur la ligne de commande pour exécuter le compilateur Go.

Utilisez GoMod pour gérer les dépendances

Dans les projets Golang traditionnels, nous résolvons généralement les problèmes de dépendance en téléchargeant et en gérant manuellement les bibliothèques tierces requises par le projet. Cependant, les inconvénients de cette approche résident dans des problèmes tels que des difficultés de gestion et des conflits de dépendance. Afin de résoudre ces problèmes, la version 1.11 de Go introduit un nouvel outil GoMod pour renforcer la gestion des dépendances.

Utiliser le mod Go est très simple, exécutez simplement la commande suivante dans le répertoire racine de notre projet :

go mod init <module-name>
Copier après la connexion

Après avoir exécuté cette commande, GoMod téléchargera automatiquement toutes les bibliothèques tierces dont nous avons besoin dans le projet, ainsi que leur numéro de version. les informations seront également enregistrées dans notre fichier go.mod. Ensuite, nous pouvons utiliser GoMod pour gérer nos dépendances tout comme npm ou Yarn. Par exemple, nous pouvons utiliser la commande suivante pour installer la bibliothèque tierce spécifiée :

go get <package-name>@<version>
Copier après la connexion

Utilisez le framework Gin pour créer rapidement des applications Web

Gin est un framework Web hautes performances en raison de ses caractéristiques basées sur le langage Go. , il est particulièrement adapté au traitement de requêtes Web hautement concurrentes. Dans le même temps, Gin adopte un concept de design léger pour le rendre plus facile à utiliser.

Ce qui suit est un exemple de programme Gin simple, qui définit une interface API simple et la lie au chemin API "/", puis obtient les données via une requête GET, et enfin renvoie les données au client au format JSON.

package main

import (
    "github.com/gin-gonic/gin"
    "net/http"
)

func main() {
    r := gin.Default()

    r.GET("/", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{"message": "Hello, World!"})
    })

    if err := r.Run(); err != nil {
        panic(err)
    }
}
Copier après la connexion

Dans cet exemple de programme, nous avons d'abord présenté les modules gin et net/http. Utilisez ensuite la méthode gin.Default() pour créer une instance de routage Gin. Ici, nous définissons une méthode de routage GET et utilisons la méthode c.JSON pour envoyer les données au client au format JSON. Enfin, nous utilisons la méthode r.Run() pour exécuter notre service API. ginnet/http 模块。然后使用 gin.Default() 方法创建了一个Gin的路由实例。这里我们定义了一个GET路由方法并使用 c.JSON 方法将数据以JSON格式输出到客户端。最后我们使用 r.Run() 方法运行我们的API服务。

数据库及ORM

当我们开发一个Web应用时,常常需要将数据进行持久化保存。而Go语言中有一个流行的ORM(forked from Xorm)叫做GORM。

使用GORM来进行数据库开发可以使我们快速地与各种数据库交互,并且可以兼容多种数据库。下面是一个简单的GORM代码示例,它定义了一个User 结构体,并将其映射到了数据库表中。

package main

import (
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/sqlite"
    "time"
)

type User struct {
    gorm.Model
    Username string    `gorm:"not null; unique:yes"`
    Password string    `gorm:"not null"`
    Email    string    `gorm:"not null"`
    Role     int       `gorm:"not null"`
    LastLogin time.Time    `gorm:"default: null"`
}

func main() {
    db, err := gorm.Open("sqlite3", "test.db")
    if err != nil {
        panic("failed to connect database")
    }
    defer db.Close()

    db.AutoMigrate(&User{})
}
Copier après la connexion

在这个示例中,我们首先引入了GORM库。然后定义了一个User结构体,用于映射数据库表。在代码中我们还使用了一些GORM的特性,例如not nullunique等标签来定义相关的数据库表字段。

最后我们使用 db.Create() 方法来插入一些测试数据, db.Find() 方法来查询数据,并使用 db.Model() 来更新修改数据。

使用Redis/Casbin完成Cache和权限管理

除了数据库之外,我们还可以使用缓存来提高应用的性能。而Redis是一个快速,内存型的键值存储数据库,被广泛应用于Web应用的缓存管理中。

在Go语言中,我们可以使用Redis的golang 版本客户端库 https://github.com/go-redis/redis

Base de données et ORM

Lorsque nous développons une application Web, nous avons souvent besoin de conserver les données. Il existe un ORM populaire (issu de Xorm) dans le langage Go appelé GORM.

L'utilisation de GORM pour le développement de bases de données nous permet d'interagir rapidement avec diverses bases de données et est compatible avec plusieurs bases de données. Vous trouverez ci-dessous un exemple simple de code GORM qui définit une structure Utilisateur et la mappe à une table de base de données.

rrreee

Dans cet exemple, nous présentons d'abord la bibliothèque GORM. Ensuite, une structure Utilisateur est définie pour mapper les tables de la base de données. Dans le code, nous utilisons également certaines fonctionnalités de GORM, telles que les balises not null et unique pour définir les champs de table de base de données associés.

Enfin, nous utilisons la méthode db.Create() pour insérer des données de test, la méthode db.Find() pour interroger les données et utilisons le db.Model( ) pour mettre à jour les données modifiées. 🎜🎜Utilisez Redis/Casbin pour compléter la gestion du cache et des autorisations🎜🎜En plus de la base de données, nous pouvons également utiliser la mise en cache pour améliorer les performances des applications. Redis est une base de données de stockage clé-valeur rapide en mémoire, largement utilisée dans la gestion du cache des applications Web. 🎜🎜En langage Go, nous pouvons utiliser la bibliothèque client version golang de Redis https://github.com/go-redis/redis pour interagir avec Redis. 🎜🎜En termes de gestion des autorisations, nous pouvons utiliser une bibliothèque CASBIN légère qui prend en charge plusieurs langages de programmation et peut être facilement intégré à Golang. Dans CASBIN, nous pouvons utiliser RBAC (contrôle d'accès basé sur les rôles) pour la gestion des autorisations. 🎜🎜Résumé🎜🎜Dans cet article, nous avons appris à utiliser Golang pour développer des applications Web à travers un exemple de code complet. Nous avons appris comment gérer les requêtes HTTP via le framework Gin, comment utiliser GORM pour les opérations de base de données et comment utiliser Redis pour la gestion du cache et Casbin pour la gestion des autorisations. 🎜🎜En pratique, nous pouvons suivre la méthode de l'exemple de programme et développer des applications Web efficaces et fiables en utilisant les riches fonctionnalités du langage fournies par Golang et les bibliothèques de framework fournies par la communauté. 🎜

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