/ développement-web

Utiliser Golang pour un projet web

Démarrage

Télécharger la dernière version de Golang depuis la page des téléchargements.

Sur MacOS vous pouvez installer ou mettre à jour Golang vers la nouvelle version de MAJ avec Homebrew :

$ brew update
$ brew install golang

homebrew-256x256

Développer une application Web en Go

Je suis intéressé par le développement d'applications Web, Cela ne signifie pas que je sois très compétent en développement d'applications web. Cependant je tiens simplement à partager ce que j'ai fait avec Go dans la création d'applications web.

  • Pour ceux d'entre vous qui sont développeurs PHP/Python/Ruby, vous apprendrez comment développer une application web avec Go.

  • Pour ceux d'entre vous qui sont développeurs C/C++, vous saurez comment fonctionne une application web.

Je crois que le but de tout apprentissage est de finir par partager ce savoir avec les autres. La chose que j'apprécie le plus dans la vie est de partager tout ce que j'ai appris avec un maximum de monde.

1. Configuration de votre environnement de développement Go

Bienvenue dans le monde de Go, commençons notre exploration!

Go est un langage de progammation système concurrent à la compilation rapide et disposant d'un rammasse-miettes. Il a les avantages suivants:

  • Compilation d'un large projet en quelques secondes.
  • Fournit un modèle de développement facile à gérer, évitant la plupart des problèmes liés aux fichiers d'en-tête C.
  • C'est un langage statique avec un système de types de données simple, afin que les utilisateurs n'aient pas à perdre du temps à gérer les relations entre types. Il peut-être vu comme un langage orienté-objet simplifié.
  • Il possède un ramasse-miettes. Il fournit un support de base pour la concurrence et de la communication.
  • Conçu pour les ordinateurs multi-core.

Go est un langage compilé. Il combine l'efficacité de développement des langages interprétés ou dynamiques avec la sécurité de langues statiques. Il va être la langue de choix pour les ordinateurs modernes multi-core inter-connectés. À ces fins, il y a quelques problèmes qui doivent fondamentalement être résolu au niveau de ce langage, comme un système de types très expressif et léger, un modèle de concurrence natif, et un ramasse-miettes géré strictement. Durant longtemps, aucun paquet ou outil n'est apparu qui avait pour but de résoudre tous ces problèmes de façon pragmatique; ainsi naquit la motivation pour du langage Go.

Dans ce chapitre, je vais vous montrer comment installer et configurer votre propre environnement de développement Go.

1.1 Installation

3 méthodes d'installation

Il y a plusieurs façons de configurer votre environnement de développement Go sur votre ordinateur, vous pouvez choisir celle qui vous convient le mieux. Les trois façons les plus courantes sont les suivantes.

Paquets d'installation officiels:

L'équipe de Go propose des paquets d'installation pour Windows, Linux, Mac et encore d'autres systèmes d'exploitation. C'est propablement la méthode la plus simple pour commencer.

Installation manuelle via les sources
Populaire chez les développeurs habitués aux environnements type Unix.
Utilisation d'outils tiers.

Il y a plusieurs outils tiers et gestionnaires pour installer Go, comme apt-get pour Ubuntu et homebrew pour Mac (cf. ci-dessus).

Dans le cas où vous voudriez installer plus d'une version de Go sur votre machine, vous devriez jeter un oeil à l'outil GVM. C'est le meilleur outil pour accomplir cette tâche, sinon vous devrez le faire vous-même.

Warning !! Gopath : le workspace de Golang

1_vHUiXvBE0p0fLRwFHZuAYw

Attention notion à bien saisir pour pouvoir travailler correctement avec Golang, je l'ai appris à mes dépends :)

La variable d'environnement GOPATH spécifie l'emplacement de votre espace de travail. Il est par défaut un répertoire nommé allez dans votre répertoire personnel, donc $ HOME / allez sur Unix, $ home / allez sur Plan 9, et% USERPROFILE% \ go (généralement C: \ Users \ YourName \ go) sous Windows.

Si vous souhaitez travailler dans un emplacement différent, vous devez définir GOPATH sur le chemin d'accès à ce répertoire. (Une autre configuration courante consiste à définir GOPATH = $ HOME.) Notez que GOPATH ne doit pas avoir le même chemin que votre installation Go.

La commande va env GOPATH imprime le GOPATH courant effectif; il imprime l'emplacement par défaut si la variable d'environnement n'est pas définie.

Pour plus de commodité, ajoutez le sous-répertoire bin de l'espace de travail à votre PATH:

$ export CHEMIN = $ CHEMIN: $ (go env GOPATH) / bin

Les scripts dans le reste de ce document utilisent $ GOPATH au lieu de $ (goenv GOPATH) par souci de concision. Pour que les scripts s'exécutent comme si vous n'aviez pas défini GOPATH, vous pouvez remplacer $ HOME / go par ces commandes ou bien exécuter:

$ export GOPATH = $ (go env GOPATH)

GoBuffalo, le projet de framework web

logo_med

J'ai découvert par hasard ce projet de framework pour sites web en Go. J'ai donc tenté l'installation pour tester, la documentation est bien faite et en français pour partie (ce qui est agréable il faut le dire).

On commence par l'installation du projet :

go get -u -v github.com/gobuffalo/buffalo/buffalo

Puis on modifie le GOPATH :

$ export PATH=$PATH:$(go env GOPATH)/bin

Après quelques secondes d'attente on peut aller chercher notre application dans :

Copy$ cd $GOPATH/src/github.com/$USER/

Puis :

$ buffalo new coke

Cette commande va vous générer une nouvelle application Buffalo dénommée coke, avec le minimum syndical :

  • la structure du framework Buffalo et la configuration par défaut (pop/soda avec support pour PostgreSQL),
  • toutes les dépendances Go nécessaires pour exécuter votre application,
  • les dépendances frontend et une configuration fonctionnelle pour webpack
    et un dépôt Git initial.

Ce qui ressemble à ceci :

Capture-d-e-cran-2018-01-27-a--15.33.24

On peut lancer une commande quasi identique si on ne souhaite pas lier une base de données à notre application pour le moment :

$ buffalo new webapp --skip-pop

et

$ buffalo dev

ce qui donne :

Capture-d-e-cran-2018-01-27-a--16.33.13

Et avec la base de données Sqlite3, on lance la création de l'application :

$ buffalo new --db-type=sqlite3 coke

$ cd coke

On crée la base de données :

$ buffalo db create -a

$ buffalo dev

résultat identique :

Capture-d-e-cran-2018-01-27-a--16.33.13-1

Comparons désormais Buffalo à un deuxième framework Go, Revel.

Iris, un autre framework Go

logo

On poursuit notre exploration des frameworks Go avec un petit nouveau, Iris qui s'avère extrêmement rapide, pour preuve :

benchmark-new-gray

et :

benchmarkFrameworkIrisGo

Pour l'installer rien de plus simple, un petit coup de go get et le package va se loger dans GOPATH/github.com :

Capture-d-e-cran-2018-01-29-a--21.41.04

Puis on crée très rapidement un premier serveur http :

Capture-d-e-cran-2018-01-29-a--21.42.39

le fichier en question main.go

et on lance le tout avec :

Capture-d-e-cran-2018-01-29-a--21.43.51

Utiliser Golang pour un projet web
Share this