În cadrul cursului DevOps Artisan – GO (Golang) Fundamentals participanții vor afla care sunt beneficiile utilizării Golang și cum poate fi utilizat. Aceștia vor afla cum pot realiza ușor aplicații scalabile folosing modelul GO și cum să folosească la putere maximă interfețele. Dar, deoarece dezvoltarea este doar o parte a procesului de construire a unei aplicații fiabile, testarea va fi celălalt obiectiv al acestui curs.
- Developerilor interesați de Golang și/sau care doresc să țină pasul cu tehnologiile;
- SRE/DevOps care doresc să construiască tool-uri de automatizare.
- care sunt beneficiile utilizării Golang;
- cum poți realiza ușor aplicații scalabile folosing modelul GO;
- cum să folosești la putere maximă interfețele;
- automated testing: tests types, writing tests, code coverage.
Nu sunt necesare anumite cunoștințe preliminare pentru participarea la acest curs, însă cunoașterea unui limbaj de programare este un plus.
Module 1: Introduction
- go features
- pros and cons
- comparison with other programming languages
- reasons why it should be used
Module 2: Installation and environment setup
- installation on various OS
- editors and go compiler
- create first program and test the installation
Module 3: The Basics
- Go tool and commands
- GOPATH environment variable
- projects structure and documentation
- workspace (packages, programs, tests)
- program structure
- syntax
- imports
- exported names
Module 4: Variables. Constants. Operators
- variables
- constants
- operators
- pointers
Module 5: Basic data types
- basic types (numbers, strings, booleans)
- type inference
- type conversion
- type aliasing
Module 6: Collection types
- structures
- arrays
- slices
- ranges
- maps
Module 7: Control flow
- decision making (if, switch, select)
- loops (for)
Module 8: File handling
- reading files
- writing files
- line filters
- file paths
Module 9: Functions and methods
- multiple return values
- named return values
- scope
Module 10: Interfaces and error handling
- interfaces
- type assertion
- error handling
Module 11: Concurrency
- concurrent programming
- goroutines
- channels (buffering, synchronization, directions)
- errgroup
- select statement
- mutual exclusion
- timers and tickers
Module 12: The core packages
- strings
- input / output
- files and folders
- errors
- containers and sort
- hashes and cryptography
- parsing command line arguments
- synchronization primitives
Module 13: Networking
- servers and clients
- HTTP
- RPC
Module 14: Automated testing
-
- tests types
- writing tests
- code coverage