Descrever o projeto do banco online
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.