Curso Concurrent Programming in Go

  • Development

Curso Concurrent Programming in Go

16h
Visão Geral

Simultaneidade em um dos principais recursos da linguagem Go; entretanto, aqueles que programaram apenas em linguagens onde a simultaneidade é gerenciada por meio de manipulação de threads ou outras técnicas geralmente estão acostumados a pensar em termos de desenvolvimento de um aplicativo e depois adicionar construções de simultaneidade. É necessária uma mudança de pensamento para projetar e escrever aplicativos simultâneos desde o início. Aplicações simultâneas em Go tendem a ser mais eficientes, mais simples e escaláveis ​​como soluções para classes de problemas no mundo altamente simultâneo de hoje. Este curso começa explorando o modelo de simultaneidade Go em profundidade com análises detalhadas e baseadas em exemplos de goroutines, canais, a instrução select e outros recursos disponíveis na sincronização Go e bibliotecas relacionadas. Mais importante ainda, o uso correto e as melhores práticas para usar essas construções são abordados em profundidade, incluindo sincronização de goroutines com canais, recuperação de condições de erro e trabalho com cadeias de dependências de goroutines e muito mais. O curso continua com uma exploração dos padrões de simultaneidade Go, como multiplex/de-multiplex, fan-in/fan-out, pipe-lining, geradores de canal, daisy chains, assinante/editor e outros. Esses padrões e conceitos de simultaneidade são então usados ​​para mostrar aos alunos como projetar um aplicativo simultâneo desde o início, começando com um modelo de design simultâneo, depois implementando o modelo em Go e testando o resultado final. 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.

Publico Alvo
  • Este curso é destinado a programadores Go de nível intermediário que podem escrever código confortavelmente usando um nível consistente com a conclusão do curso “Introdução à programação Go para desenvolvedores” (PT20182) da ProTech.

 

Pre-Requisitos
  • Este curso é destinado a programadores Go de nível intermediário que podem escrever código confortavelmente usando um nível consistente com a conclusão do curso “Introdução à programação Go para desenvolvedores” (PT20182) da ProTech. Os alunos que não possuem esse nível de competência em programação não conseguirão acompanhar o material. Devido às limitações de tempo, não haverá oportunidade de instruções corretivas em Go durante a aula. Este é um pré-requisito essencial.

 

Materiais
Inglês/Português/Lab Pratico
Conteúdo Programatico
  • The Go concurrency CPS model.
  • The go-routine in detail, usage, costs and benefits – how it is implemented.
  • Channels – properties, types, buffering, how they work under the hood.
  • Channels as first class objects.
  • Advanced, effective and efficient select statement usage.
  • Quit channels, blocking, nil channels, timeouts.
  • Avoiding race problem and other classic concurrency issues by using channels.
  • Goroutine synchronization with channels – blocking and listening channels.
  • Cleaning up concurrent applications, handling abnormal conditions, error channels.
  • Modeling a concurrent application, visual task, data and work product flows.
  • Goroutine channel generators.
  • Delegation and integration of work flow – fan-in/fan-out and multiplexing/de-multiplexing.
  • Pipelining, filtering, daisy chaining and other concurrent patterns.
  • Managing multiple channels using maps, structs and interfaces.
  • Best practices for concurrent application and goroutine design.
  • Dealing with legacy shared resources (eg. memory management and CGO)
  • Best practices for handing deadlocks and errors.
  • Working with the sync library – WaitGroups, mutexes, etc.
  • Testing and debugging concurrent applications.
  • Best practices and common pitfalls to avoid
TENHO INTERESSE

Cursos Relacionados

Curso Python Programação Advanced

32 horas

Curso SAP ABAP S4hana Developer Foundation

32 horas

Curso Full Stack and React Essentials

32 Horas

Curso Node.js for JavaScript Developers

24 horas

Curso Elasticsearch for Developers

16H

Curso Elastic Stack Foundation

24 horas

Curso Apache Spark™ Foundation

8 Horas