fbpx

Go Language Programming

Chat

Este curso aborda as características core da linguagem Go, comparando-as com outras linguagens como o Java ou Javascript.

Destinatários

  • Programadores de Java ou Javascript que queiram começar a programar em linguagem Go.

Pré-Requisitos

  • Conhecimentos de Inglês;
  • Bons conhecimentos de programação;
  • Experiência anterior de linguagem Java e/ou Javascript.

Metodologia

  • Módulos de formação, integrados numa ótica de sessões mistas de teoria e prática com acompanhamento permanente e personalizado por parte de um formador;
  • Serão elaborados exercícios e simulações de situações práticas garantindo uma aprendizagem mais eficaz;
  • Os conteúdos ministrados durante o curso são devidamente acompanhados por material didático, distribuídos aos participantes.

Programa

  • Why Go?
  • Go Language Overview
  • Control Structures
  • Functions
  • Arrays and Slices
  • Maps
  • Packages
  • Structs and Methods
  • Interfaces
  • Error Handling and Testing
  • Concurrency
  • Communication

Why Go?

  • Origins and evolution of Go
  • Reasons for developing in Go
  • Tooling and setting up a development environment
  • Hello world
  • Compiling and running code
  • Go playground

Go Language Overview

  • Keywords and identifiers
  • Packages and import
  • Variables, constants and data types
  • Pointers
  • User defined types and structs
  • Basic input and output of a program

Control Structures

  • if-else
  • switch-case
  • for
  • for range
  • break and continue
  • labels and goto

Functions

  • Parameters and return values
  • Defer and tracing
  • Built-in functions
  • Recursive functions
  • Higher-order functions
  • Closures
  • Functions as returns

Arrays and Slices

  • Declaration and initialization
  • Array literals
  • Slices
  • Multidimensionality
  • Reslicing
  • Copying and appending slices

Maps

  • Declaration and initialization
  • Existence of key-value item
  • Slice of maps
  • Sorting and inverting

Packages

  • Overview of the standard library
  • Custom packages and visibility
  • Documenting packages
  • Package file structure and use
  • Using git for distribution
  • External packages, projects and libraries
  • Discovering external packages
  • Installing external packages

Structs and Methods

  • Structs concepts
  • Factory method
  • Structs with tags
  • Anonymous fields and embedded structs
  • Methods vs functions
  • Receivers in methods as pointers and values
  • Non-exported fields
  • Methods on embedded types
  • Composition over inheritance
  • Garbage collection and SetFinalizer

Interfaces

  • What is an interface?
  • Implementation of interfaces
  • Dynamic types
  • OO in Go

Error Handling and Testing

  • Error handling
  • Run-time exceptions and panic
  • Recover
  • Testing

Concurrency

  • Handling Concurrency and parallelism
  • Goroutines
  • Channels
  • Channel directionality
  • Synchronization of goroutines

Communication

  • Reading and writing
  • Command line arguments
  • Executing OS commands
  • Networking

Outras datas e horários

Chat

Quero saber mais informações sobre este curso

Go Language Programming

Desenvolvimento / Programação | 24h - e-learning


Notas

Pretende mais informação sobre este curso?

Preencha o formulário com os seus dados e as suas questões e entraremos em contacto consigo para lhe darmos todas as informações pretendidas.

Obrigado!