🚀 Capítulo 01: O Nascimento do Gopher (Tema: Origem do Go)

NOTE

Este capítulo utiliza a história da criação do Go pelo Google para explicar as vantagens da linguagem. Conheça o mascote Gopher e dê seus primeiros passos!


1. 🎯 Objetivo da Aula

Compreender o que é a linguagem Go (ou Golang), por que ela foi criada pelo Google, suas principais vantagens (simplicidade e velocidade) e escrever o seu primeiro programa “Olá, Mundo!“.

2. 🏢 O Cenário Prático (Seu Desafio)

No início dos anos , o Google enfrentava um grande problema: os sistemas deles estavam ficando gigantescos e os computadores demoravam horas apenas para compilar (traduzir) o código antes de rodar. As linguagens da época eram ou muito lentas para rodar (como Python) ou muito complexas e demoradas para programar (como C++).

Então, três engenheiros geniais do Google se juntaram para criar uma linguagem perfeita para a nuvem: ela precisava ser simples de ler, ultra rápida para compilar e capaz de aguentar milhões de acessos simultâneos. Assim nasceu o Go!

  • O mascote do Go é o Gopher (um esquilo/marmota fofinho).
  • Mas não se engane pela fofura: o Go é a linguagem que move o Docker, o Kubernetes e os servidores do Google, Twitch e Uber! Seu desafio é dar vida ao seu primeiro Gopher!

🧠 Fundamentos: A Teoria Traduzida

🚀 1. Por que o Go é tão incrível?

  • É Compilado: O código que você escreve é traduzido diretamente para a linguagem que o processador do computador entende. Por isso, ele roda na velocidade da luz!
  • É Simples: Go foi feito para ser lido por humanos. Ele não tem coisas complexas de outras linguagens que só servem para confundir a cabeça do programador.
  • Concorrência Nativa: Ele foi feito para a era da internet. O Go consegue executar milhares de tarefas ao mesmo tempo sem travar o computador (veremos isso no Módulo ).

🛠️ 2. A Estrutura Básica de um código Go:

Todo arquivo Go precisa seguir uma estrutura padrão:

  1. package main: Diz que este arquivo é o principal e deve ser executado.
  2. import "fmt": Importa a biblioteca de formatação (para podermos escrever na tela).
  3. func main(): É a função principal. Tudo o que estiver dentro das chaves {} será executado pelo computador!

4. 📖 Exemplo Guiado: O Código Sagrado

Aqui está o clássico código para iniciar a sua jornada:

package main
 
import "fmt"
 
func main() {
    fmt.Println("Olá, Mundo! O Gopher despertou!")
}

Para rodar esse código no seu computador:

  1. Você salva o arquivo com o nome main.go.
  2. Abre o terminal na pasta do arquivo e digita o comando mágico: go run main.go.

5. 🛠️ Prática Obrigatória 1: Entendendo a Estrutura

Com base no exemplo guiado, responda:

  1. Para que serve a linha import "fmt" no código Go? O que acontece se tentarmos usar o fmt.Println sem essa linha?

6. 🛠️ Prática Obrigatória 2: O Comando de Execução

  1. Qual é o comando que digitamos no terminal para fazer o computador ler e executar o nosso arquivo Go sem precisar gerar um arquivo executável permanente?

7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 01 Go_Gopher) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.

8. 📂 Estrutura de Pastas

spec_backend_com_golang_e_gin/
├── capitulos/
│   └── capitulo_01_gopher.md

💡 Checkpoint de Lógica

Em Go, as aspas duplas "" são obrigatórias para textos (strings). Se você usar aspas simples '', o Go vai achar que você está tentando representar um único caractere numérico (chamado de rune) e vai dar erro!

10. 🔥 Desafio de Fixação

Pesquise quais são os nomes dos três engenheiros do Google que criaram a linguagem Go em (Dica: um deles ajudou a criar o sistema operacional Unix!).

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. Serve para trazer para o nosso código as ferramentas de texto da biblioteca padrão do Go. Se tentarmos usar o fmt.Println sem o import, o Go dará um erro dizendo que não conhece o comando fmt, pois ele não foi carregado na memória! Gabarito da Prática 2:
  2. O comando é go run nome_do_arquivo.go.

Capitulo Anterior | Proximo Capitulo