Skip to content

alcir-junior-caju/study-go-expert

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Curso GO Expert

Criado por Alcir Junior [Caju] License

Descrição

O Curso GO Expert é uma formação completa para fazer com que pessoas desenvolvedoras sejam capazes de trabalhar em projetos expressivos sendo capazes de desenvolver aplicações de grande porte utilizando de boas práticas de desenvolvimento.


Visualizar o projeto na IDE:

Para quem quiser visualizar o projeto na IDE clique no teclado a tecla ponto, esse recurso do GitHub é bem bacana


O que é a linguagem GO (Golang)

  • Linguagem de programção open source que tem o objetivo de tornar os programadores mais produtivos;
  • Expressiva, concisa, limpa e eficiente;
  • Foi criada para aproveitar ao máximo dos recursos multicore e de rede;
  • Rápida compilação e ao mesmo tempo trabalha com garbage collection;
  • Rápida, estaticamente tipada, compilada mas que ao mesmo tempo parece até uma linguagem dinâmica tirada e interpretada;
  • Compilada em apenas um arquivo binário;

Onde nasceu e quem criou?

  • Google;
  • Começou a ser projetada em Set - 2007;
  • Versão 1.0 - 2012;
  • A partir 1.5 - Compilador feito em GO;
  • Retrocompatibilidade versão 1;
  • Rob Pike - Unix & UTF-8;
  • Robert Griesemar - V8;
  • Ken Thompson - Unix & UTF-8;

O que o GO não é?

  • Uma linguagem de programação que resolverá todos os problemas;
  • Não é dinâmica;
  • Não é interpretada;
  • Não tem muitos recursos / firula;

Motivação

  • Limitações das principais linguagens na Google;
  • Python - Lentidão;
  • C/C++ - Complexidade e demora na compilação;
  • Java - Complexidade ao longo do tempo / verbosidade;
  • Multithreading e Concorrência - não nasceram pensando nisso;
  • Simplicidade;
  • Framework de testes e profiling nativos;
  • Detecção de Race Conditions;
  • Deploy simples;
  • Baixa curva de aprendizado;