Beskriva onlinebankprojektet

Slutförd

Nu ska vi prata om vad vi kommer att skapa. Som tidigare nämnts skapar vi två projekt: ett för programmets kärnlogik och ett annat för att exponera logik via ett webb-API. Anta att du nu är en del av ett team som bygger ett onlinebanksystem.

Definiera funktioner och krav

Den onlinebank som vi håller på att bygga är ett konceptbevis som avgör om det är möjligt att bygga bankprogrammet. I den här första iterationen sker interaktionen med kärnpaketet via ett CLI-program. Vi kommer inte att ha något användargränssnitt eller spara data i en databas. Om du vill se kontoutdraget från en kund exponerar vi en slutpunkt.

Onlinebanksystemet kommer att:

  • Gör det möjligt för kunder att skapa ett konto.
  • Gör det möjligt för kunder att ta ut pengar.
  • Gör det möjligt för kunder att överföra pengar till ett annat konto.
  • Ange en kontoutdrag med kunddata och ett slutligt saldo.
  • Exponera ett webb-API via en slutpunkt för att skriva ut en kontouttryck.

Vi ska bygga det här programmet tillsammans, så oroa dig inte för mycket om detaljerna för tillfället.

Skapa de första projektfilerna

Nu ska vi skapa den första uppsättningen filer som vi behöver för programmet. Vi skapar ett Go-paket för all bankkärnlogik och ett main program för att initiera systemet med några kunder och åtgärder som insättningar och överföringar. Dessutom startar det här main programmet en webb-API-server för att exponera en slutpunkt för kontoutdraget.

Nu ska vi skapa följande filstruktur i din $GOPATH katalog:

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

För att se till att vi bara kan fokusera på att skriva kod i rätt filer börjar vi skriva ett Hello World! program som bekräftar att vi kan anropa bankcore paketet från bankapi huvudprogrammet.

Kopiera och klistra in följande kodfragment i src/bankcore/bank.go:

package bank

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

Vi använder Go-moduler. I src/bankcore/go.modlägger du till följande innehåll för att ge paketet ett korrekt namn så att vi kan referera till det senare:

module github.com/msft/bank

go 1.14

Lägg sedan till följande kod för att anropa bankcore paketet i src/bankapi/main.go:

package main

import (
    "fmt"

    "github.com/msft/bank"
)

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

I src/bankapi/go.modmåste vi referera till paketfilerna bankcore lokalt, så här:

module bankapi

go 1.14

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

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

För att se till att allt fungerar öppnar du en terminal i $GOPATH/src/bankapi/ katalogen och kör följande kommando:

go run main.go

Du bör se följande utdata:

Hey! I'm working!

Dessa utdata bekräftar att dina projektfiler har konfigurerats exakt som de ska vara. Sedan börjar vi skriva koden för att implementera den första uppsättningen funktioner för vårt onlinebanksystem.