Beskriva onlinebankprojektet
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.mod
lä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.mod
må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.