Visão Geral
O curso Golang Programming Advanced, ensina aos participantes os fundamentos e conceitos avançados da linguagem de programação Go (também chamada de Golang) . Primeiro, os alunos aprendem como configurar um ambiente Go e como usar as variáveis, funções, comandos, operadores, biblioteca e muito mais do Go. Depois de aprender o básico, os participantes aprendem habilidades mais avançadas, incluindo o uso de funções avançadas, teste e depuração, implementação de estruturas de projeto e muito mais. Na conclusão deste curso Go, cada aluno completará um projeto final de aplicativo baseado em CLI, adquirindo habilidades que podem usar imediatamente em seus projetos futuros.
Conteúdo Programatico
Introduction
- History
- Philosophy
- Sweet spots
Setting Up a Development Environment
- Tour of
- Playground
- Installation and setup
- Create first application
Common Go Commands
- Variables and Primitive Data Types
- Declaration
- Initialization
- Primitive types
- Pointers
- Type conversion
Constants
- Collection Types
- Arrays
- Slices
- Maps
- Structs
Error Handling
- Operators
- Arithmetic
- Comparison
- Logical
Control Flow - Looping
- Basic looping
- Iterating with collections
- Exiting loops early
Control Flow – Branch
- If
- Switch
- Panic
Functions
- Declaration
- Parameters
- Variadic functions
- Returning data
- Anonymous functions
Packages
- Naming conventions
- Importing
- Visibility rules
- Documentation
- Init functions and package lifecycle
Modules
- Creating modules
- Using external modules
Object-Oriented Constructs
- Methods and method receivers
- Interfaces
- Type assertions
- Constructor functions
Concurrency
- Goroutines
- Channels
- WaitGroups
- Mutexes
- Select statements
Standard Library
- fmt
- net/http
- encoding/json
- regexp
- strconv
- errors
- log
Networking
- Request processing
- Generating responses
- Working with JSON
- Routing requests
Advanced Constants
- Constant expressions
- IOTA
Advanced Functions
- Closures
- Function types
- Passing functions to functions
- Deferred functions
- Recovering from panics
Contexts
- Testing
- Unit tests
- Benchmark tests
- Example tests
- Code coverage analysis
Application Profiling
- Debugging
- Standard Library
- Testing
- Strings
- Database/SQL
- Bytes
- Net
- Net/http/httptest
Advanced Project Structures
- Alternative import strategies
- Using internal packages
- Designing packages
- Module lifecycle management
- Semantic versioning with modules
- Importing versioned modules
- Working with legacy workspaces
Final Project
- Create a CLI-based application
- Conclusion