Introdução

Concluído

Chegamos ao módulo final, em que vamos escrever um programa que usa quase todos os conceitos que vimos até agora. A ideia é orientar você passo a passo sobre como escrever um programa. Vamos mostrar como estruturar os arquivos, como compilar os arquivos, como executar o programa e como testar o programa. Não abordamos como escrever testes em Go, mas usaremos este módulo para apresentar este tópico importante.

Começaremos escrevendo o núcleo do programa, que será destinado a um banco online. Os usuários vão interagir com seu programa por meio de uma API. Vamos criar dois projetos em Go para praticar como referenciar pacotes locais de outro programa. Por fim, para garantir que a lógica do programa de núcleo sempre funcione, vamos criar um conjunto de testes que podemos executar antes de testar o programa manualmente no navegador.

Assim como outros módulos, você precisará estender o programa resolvendo um desafio que ajudará você a ter mais confiança ao escrever outros programas em Go no futuro.

Objetivos de aprendizagem

Neste módulo, você vai praticar e saber:

  • Como funciona o teste no Go.
  • Como encapsular a lógica do núcleo de um programa em um pacote.
  • Como expor a lógica do núcleo por meio de uma API Web.
  • Como escrever testes para seu pacote lógico do núcleo (usando o desenvolvimento orientado por testes).
  • Como quase todos os conceitos que abordamos até agora podem funcionar juntos.

Pré-requisitos

  • Um ambiente Go pronto para criar programas. O ideal é que você tenha instalado e configurado o Go localmente e o Visual Studio Code instalado com a extensão do Go.
  • A capacidade de criar e modificar arquivos .go.
  • A capacidade executar programas Go usando o prompt do terminal.
  • Conhecimento dos tipos de dados básicos como string, int e boolean.
  • Conhecimento de como escrever fluxos de controle de dados básicos como instruções if e for.
  • Conhecimento de como escrever funções.
  • Conhecimento de como criar estruturas e métodos.
  • Conhecimento de como usar bibliotecas como net/http.