Descrever o projeto do banco online

Concluído

Vamos falar sobre o que vamos criar. Como mencionado anteriormente, criaremos dois projetos: um para a lógica central do programa e outro para expor a lógica por meio de uma API da Web. Imagine que agora faz parte de uma equipa que está a construir um sistema bancário online.

Definir os recursos e requisitos

O banco online que estamos prestes a construir é uma prova de conceito, que determinará se é viável construir o programa bancário. Nesta primeira iteração, a interação com o pacote principal será através de um programa CLI. Não teremos uma interface de usuário ou persistiremos dados em um banco de dados. Para ver o extrato da conta de um cliente, exporemos um ponto de extremidade.

O sistema bancário online irá:

  • Permita que os clientes criem uma conta.
  • Permita que os clientes retirem dinheiro.
  • Permita que os clientes transfiram dinheiro para outra conta.
  • Forneça um extrato de conta com os dados do cliente e um saldo final.
  • Exponha uma API da Web por meio de um ponto de extremidade para imprimir um extrato de conta.

Vamos construir este programa juntos, então não se preocupe muito com os detalhes por enquanto.

Criar os arquivos de projeto iniciais

Vamos criar o conjunto inicial de arquivos que precisaremos para o programa. Vamos criar um pacote Go para toda a lógica central do banco e um main programa para inicializar o sistema com alguns clientes e ações como depósitos e transferências. Além disso, este main programa iniciará um servidor de API Web para expor um ponto de extremidade para a instrução de conta.

Vamos criar a seguinte estrutura de arquivos em seu $GOPATH diretório:

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

Então, para ter certeza de que podemos nos concentrar apenas em escrever código nos arquivos adequados, vamos começar a escrever um Hello World! programa que confirmará que podemos chamar o bankcore pacote do bankapi programa principal.

Copie e cole o seguinte trecho de código em src/bankcore/bank.go:

package bank

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

Usaremos módulos Go. No src/bankcore/go.mod, adicione o seguinte conteúdo para dar a este pacote um nome próprio para que possamos fazer referência a ele mais tarde:

module github.com/msft/bank

go 1.14

Em seguida, adicione o seguinte código para chamar o bankcore pacote em src/bankapi/main.go:

package main

import (
    "fmt"

    "github.com/msft/bank"
)

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

No src/bankapi/go.mod, precisamos fazer referência aos arquivos de bankcore pacote localmente, assim:

module bankapi

go 1.14

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

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

Para se certificar de que tudo está funcionando, abra um terminal no $GOPATH/src/bankapi/ diretório e execute o seguinte comando:

go run main.go

Deverá ver o seguinte resultado:

Hey! I'm working!

Essa saída confirma que seus arquivos de projeto estão configurados exatamente como deveriam. Em seguida, começaremos a escrever o código para implementar o conjunto inicial de recursos para o nosso sistema bancário online.