Curso Introduction to Go Programming for Developers
24hVisã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.
Publico Alvo
- Este curso foi desenvolvido para desenvolvedores experientes em uma linguagem de estilo C, como Java, C, C++, C#, JavaScript ou linguagem semelhante.
Pre-Requisitos
- Antes de fazer este curso, os alunos devem ter pelo menos um nível intermediário ou experiência em uma linguagem orientada a objetos como Python ou Ruby. Devido ao ritmo do curso, não é recomendado para programadores iniciantes ou inexperientes.
Materiais
Inglês/Português/Lab PraticoConteúdo Programatico
- Go syntax – variables, data types, functions, packages and errors.
- Go data structures – arrays, slices and maps.
- User defined types – structs, embedded structs and interfaces.
- Methods and interfaces – writing OO applications with types, methods and interfaces.
- Survey of the the Go packages.
- Using the Go tool chain for continuous integration, test and delivery.
- Testing, benchmarking, tracing and profiling in Go.
- Large scale project dependency management using the Go tool chain.
- First class functions, encapsulation and functional programming in Go.
- Go concurrency – goroutines, channels and concurrency designs.
- Best practices and the Go specific programming idioms and patterns.