etapa_01/

directory
v0.0.0-...-998cc12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2024 License: GPL-3.0

README

Etapa 1: Fundamentos do GoLang

Novamente, com ajuda do chatGPT, seguindo o prompt inicial, executamos:

Detalhe a etapa 1 em subtópicos

Obtivemos então a lista abaixo de tópicos a serem seguidas.

Nesta etapa utilizaremos o livro Introdução à Linguagem Go - Crie programas escaláveis e confiáveis de Caleb Doxsey (O'Reilly). Copyrigth 2016 Caleb Doxsey, ISBN 978-1-4919-4195-9 para desenvolver os fundamentos de Go. Nesta seção, todos os códigos desenvolvidos, tanto de exemplos quanto exercícios está divididos por capítulos.

Não necessariamente os capítulos seguem a ordem dos temas elencados abaixo, e havendo necessidade, vamos buscar bibliografia novas e outras referências.

1.1 Introdução ao Go

Eficiência e Desempenho

O Go é conhecido por seu desempenho excepcional. A linguagem foi projetada para ser rápida e eficiente, com um baixo consumo de recursos. Sua coleta de lixo eficiente, suporte nativo à concorrência e paralelismo, e compilação estática contribuem para um alto desempenho em aplicações reais.

  • Simplicidade: A sintaxe simples e concisa do Go torna a linguagem fácil de aprender e ler. Ela possui um conjunto pequeno de palavras-chave e construções especiais, o que reduz a curva de aprendizado e facilita a manutenção do código. A simplicidade do Go também promove a clareza e a legibilidade do código.

  • Concorrência Nativa: Go oferece suporte nativo à programação concorrente e paralela. As goroutines e os canais (channels) permitem que os desenvolvedores escrevam código concorrente de forma segura e eficiente. Isso é especialmente útil em aplicações que lidam com tarefas intensivas em E/S ou que precisam escalar para lidar com alto tráfego.

  • Gerenciamento de Memória Automático: O Go possui um coletor de lixo (garbage collector) embutido, o que significa que os desenvolvedores não precisam se preocupar em gerenciar manualmente a alocação e liberação de memória. Isso facilita o desenvolvimento, tornando-o menos suscetível a erros relacionados à gerência de memória.

  • Facilidade de Compilação e Distribuição: O Go compila para um único arquivo binário executável, o que facilita a implantação e a distribuição de aplicativos em diferentes sistemas operacionais. A portabilidade é simplificada, pois você pode criar um executável para uma plataforma específica sem a necessidade de dependências externas.

Casos de Uso do Go:
  • Desenvolvimento de Servidores e APIs: Go é uma escolha popular para desenvolvimento de servidores e criação de APIs. Sua eficiência, desempenho e suporte nativo à concorrência são especialmente adequados para lidar com uma grande quantidade de solicitações simultâneas.

  • Microserviços: A arquitetura de microserviços é um caso de uso comum para o Go. Sua eficiência e suporte nativo à concorrência permitem que os microserviços sejam implementados e escalados de forma eficiente.

  • Web Scraping e Crawling: O Go é frequentemente usado para desenvolver ferramentas de web scraping e crawling devido à sua capacidade de lidar com várias solicitações simultâneas e processar grandes volumes de dados de maneira eficiente.

  • Desenvolvimento de Ferramentas e Utilitários: A simplicidade e a eficiência do Go o tornam uma escolha popular para o desenvolvimento de ferramentas de linha de comando, utilitários e scripts. Seu binário único e seu desempenho rápido são vantagens significativas nessas áreas.

  • Sistemas de Backend de Alto Desempenho: Go é frequentemente usado para desenvolver sistemas de backend escaláveis e de alto desempenho. Sua capacidade de lidar com concorrência, sua eficiência de memória e seu desempenho rápido o tornam uma escolha atraente para aplicativos que precisam lidar com cargas intensivas.

Essas são apenas algumas das vantagens e casos de uso do Go em comparação com outras linguagens. O Go continua a ganhar popularidade em vários domínios devido à sua simplicidade, eficiência e desempenho.

1.2 Sintaxe Básica

  • Estrutura de um programa Go.
  • Declarando variáveis e constantes.
  • Operadores aritméticos e lógicos.
  • Estruturas de controle, como condicionais (if, else) e loops (for, while).

1.3 Tipos de Dados e Estruturas de Dados

  • Tipos de dados básicos em Go: int, float, string, bool.
  • Tipos compostos: arrays, slices, maps e structs.
  • Conversão de tipos e coerção.
  • Manipulação de strings.

1.4 Funções e Pacotes

  • Definição e chamada de funções.
  • Parâmetros e retorno de funções.
  • Organização de código em pacotes.
  • Importação e uso de pacotes externos.

1.5 Tratamento de Erros e Pânico

  • Tratamento de erros usando o mecanismo de retorno de erros em Go.
  • Uso do pânico (panic) e recuperação (recover) para lidar com exceções.

1.6 Concorrência Básica

  • Conceitos de goroutines e sua criação.
  • Uso de canais (channels) para comunicação entre goroutines.
  • Sincronização de goroutines usando wait groups.

1.7 Testes e Documentação

  • Escrevendo testes unitários em Go.
  • Uso da ferramenta de teste go test.
  • Documentando código Go usando comentários.

Esses são os principais tópicos que você deve abordar na Etapa 1 do seu plano de estudo. Lembre-se de praticar o que você aprende através de exercícios e projetos pequenos para consolidar seu conhecimento. Boa sorte!

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL