Visão Geral
A linguagem de programação Go (ou golang), criada no Google por Rob Pike e Ken Thompson, é uma das novas linguagens de programação proeminentes que foi desenvolvida para atender às necessidades de desenvolvimento de aplicativos em larga escala, metodologias de desenvolvimento modernas como Agile e DevOps, alta tecnologia de hardware multi-core de desempenho e a necessidade de aumentar a escalabilidade. Go foi projetado para substituir linguagens de programação legadas em uso atual, que não foram projetadas para a enorme escala de integração e os ciclos de lançamento cada vez menores exigidos por projetos de software em organizações de tecnologia modernas como o Google. Go é uma linguagem de estilo C que é sintática semelhante a outras linguagens de estilo C, como C e Java; no entanto, Go contém uma série de inovações para permitir que os programadores escrevam código de alto desempenho que ainda seja seguro para execução. A simultaneidade e outros recursos básicos da linguagem permitem que os aplicativos Go explorem o poder e a velocidade das arquiteturas técnicas modernas de alto desempenho. Go também é um ambiente completo de desenvolvimento, construção e teste projetado para suportar metodologias de entrega rápida, onde um grande número de programadores pode colaborar em aplicativos altamente escaláveis e de múltiplos componentes, com construção rápida e ciclos de entrega curtos. A capacidade de integrar pacotes Go de qualquer lugar da Internet em uma compilação, de forma semelhante a R, Python e Ruby, permite que equipes altamente distribuídas trabalhem em tempo real sem qualquer dependência de cadeias de ferramentas de terceiros. O curso começa com uma visão geral da estrutura básica da linguagem, desde tipos de dados, funções, pacotes, bibliotecas, ponteiros e ambiente de desenvolvimento, explorando os recursos exclusivos do Go e como eles diferem de outras linguagens de programação, ao mesmo tempo em que enfatiza as melhores práticas do Go para usar esses recursos. Isso é seguido por uma discussão sobre as estruturas de dados integradas do Go, como arrays, mapas e fatias, mas com ênfase novamente em como usar essas construções Go para escrever código de alto desempenho. Também é abordado o sistema exclusivo de erros Go e o uso de funções diferidas para criar código de alta tolerância. O uso de estruturas, interfaces e métodos é explicado em detalhes, enfatizando novamente as melhores práticas do Go, como usar essas construções de programa para criar tipos definidos pelo usuário e como usá-los para implementar designs de programas de estilo orientado a objetos. Entretanto, o curso também cobre o uso de Go para implementar projetos de programação funcional usando funções como objetos de primeira classe, funções anônimas, encapsulamentos e outras técnicas de programação funcional relacionadas. Integrado ao curso está um tour pelo sistema de construção Go, gerenciamento de fornecedores, bibliotecas Go, utilitários de criação de perfil e benchmarking, bem como instalações de teste de unidade para desenvolvimento orientado a testes. O curso também explora com profundidade como a simultaneidade funciona em Go usando goroutines e canais, incluindo como projetar código para aproveitar as vantagens da simultaneidade para produzir aplicativos de alto desempenho.Isso inclui uma breve introdução aos padrões e arquiteturas de simultaneidade Go. A aula foi projetada para ser composta por cerca de 50% de laboratórios e exercícios práticos, cerca de 25% de teoria e 25% de aprendizado prático conduzido pelo instrutor, onde os alunos codificam junto com o instrutor. O curso “Programação Go Avançada para Desenvolvedores” (PT20183) foi desenvolvido para acompanhar este curso.