Structurer le projet de banque en ligne

Effectué

Parlons de ce que nous allons créer. Comme nous l’avons vu précédemment, nous allons créer deux projets : un pour la logique principale du programme et un autre pour exposer la logique via une API Web. Imaginez que vous êtes désormais membre d’une équipe qui crée un système bancaire en ligne.

Définir les fonctionnalités et les exigences

La banque en ligne que nous allons créer est une preuve de concept qui détermine la manière s’il est possible de créer le programme de la banque. Dans cette première itération, l’interaction avec le package de base s’effectue par le biais d’un programme CLI. Nous n’aurons pas d’interface utilisateur ni de données persistantes dans une base de données. Pour afficher la déclaration de compte d’un client, nous allons exposer un point de terminaison.

Le système bancaire en ligne :

  • Permettra aux clients de créer un compte.
  • Permettra aux clients de retirer de l’argent.
  • Permettra aux clients de transférer de l’argent vers un autre compte.
  • Fournira une déclaration de compte avec les données client et un solde final.
  • Exposez une API Web via un point de terminaison pour imprimer une instruction de compte.

Nous allons créer ce programme ensemble, donc ne vous souciez pas trop des détails pour l’instant.

Créer des fichiers de projets initiaux

Nous allons créer l’ensemble initial de fichiers dont nous aurons besoin pour le programme. Nous allons créer un package Go pour l’ensemble de la logique de base de la banque et un programme main pour initialiser le système avec quelques clients et actions comme les dépôts et les transferts. En outre, ce main programme démarrera un serveur d’API Web pour exposer un point de terminaison pour l’instruction de compte.

Nous allons créer la structure de fichiers suivante dans votre répertoire $GOPATH :

$GOPATH/
  src/
    bankcore/
      go.mod
      bank.go
    bankapi/
      go.mod
      main.go

Ensuite, pour nous assurer que nous pouvons nous concentrer uniquement sur l’écriture de code dans les fichiers appropriés, commençons par écrire un programme Hello World! qui confirmera que nous pouvons appeler le package bankcore à partir du programme principal bankapi.

Copiez et collez l’extrait de code suivant dans src/bankcore/bank.go :

package bank

func Hello() string {
    return "Hey! I'm working!"
}

Nous allons utiliser les modules de Go. Dans src/bankcore/go.mod, ajoutez le contenu suivant pour attribuer un nom approprié à ce package afin de pouvoir le référencer ultérieurement :

module github.com/msft/bank

go 1.14

Ajoutez ensuite le code suivant pour appeler le package bankcore dans src/bankapi/main.go :

package main

import (
    "fmt"

    "github.com/msft/bank"
)

func main() {
    fmt.Println(bank.Hello())
}

Dans src/bankapi/go.mod, nous devons référencer les fichiers du package bankcore localement, comme suit :

module bankapi

go 1.14

require (
    github.com/msft/bank v0.0.1
)

replace github.com/msft/bank => ../bankcore

Pour vous assurer que tout fonctionne, ouvrez un terminal dans le répertoire $GOPATH/src/bankapi/ et exécutez la commande suivante :

go run main.go

Vous devez normalement voir la sortie suivante.

Hey! I'm working!

Cette sortie confirme que les fichiers de votre projet sont configurés exactement comme ils le devraient. Ensuite, nous allons commencer à écrire le code pour implémenter l’ensemble initial de fonctionnalités pour notre système bancaire en ligne.