Send your request
EN
angle-down

Sii Poland

SII UKRAINE

SII SWEDEN

Join us Contact us
Back

Sii Poland

SII UKRAINE

SII SWEDEN

Send your request
Course objectives

The aim of the Golang language workshop is to enhance participants’ skills in the practical use of the language’s built-in mechanisms and selected packages and tools. Participants will acquire relevant knowledge and perform practical exercises in: multithreading and error handling, application configuration, testing, database handling, implementation of services in the RESTful model and the use of tools for building and analysing applications.

Trainings scope

Basic Concepts

  • Code architecture
    • Structures, interfaces and methods,
    • Embedding and method promotion
  •  Concurrency
    • Goroutine lifecycle control and data propagation: contexts and wait groups
    • Shared data synchronization: Mutex, RWMutex
    • Inter-process communication: channels and select
  • Time based events: timers and tickers
  • Error handling
    • Custom error hierarchies,
    • Checking error type,
    • Unexpected errors: panic and recover
  • Structural logging using slog
  • Embedded resources
  • Application configuration using koanf package

Testing

  • Table and map driven tests
  • Concurrent test execution,
  • Data assertions: deep equal and golden files
  • Test Doubles
    • Mocks vs Stubs vs Fakes
    • Higher-order function replacement
    • Monkey patching
  • HTTP testing
    • Request emulation
    • Client tests
  • Benchmarking
  • Fuzz testing

Databases

  • Object-relational mappings: gorm or ent package
  • Model/query code generation from SQL:  sqlc package
  • Schema and migration management: atlas package

RESTful Services

  • Handling HTTP Requests
    • Routing: paths and handlers
    • Request parameter extraction
    • Serving files and embedded resources,
    • Request contexts and middlewares
  • Security
    • TLS Server
    • JSON Web Token Access Control
  • OpenAPI code generation
  • Serving Swagger UI

Tools

  • Project building support: mage
  • Static code analysis using golangci-lint
  • Profiling
Benefits

Workshop participants will learn to:

  • Create correct code in the Golang language using custom extended types, concurrency mechanisms, error handling system and timed events.
  •  Test code using a set of tools offered by the Go language like unit testing, benchmarking and fuzzing
  •  Implement effective RESTful services and use tools to analyze their performance
  •  Use relational databases in their Golang applications
Audience

Programmers at an intermediate or higher level, with experience in other programming languages, familiar with the basic syntax of the Golang language.

Course objectives

The aim of the Golang language workshop is to enhance participants’ skills in the practical use of the language’s built-in mechanisms and selected packages and tools. Participants will acquire relevant knowledge and perform practical exercises in: multithreading and error handling, application configuration, testing, database handling, implementation of services in the RESTful model and the use of tools for building and analysing applications.

Trainings scope

Basic Concepts

  • Code architecture
    • Structures, interfaces and methods,
    • Embedding and method promotion
  •  Concurrency
    • Goroutine lifecycle control and data propagation: contexts and wait groups
    • Shared data synchronization: Mutex, RWMutex
    • Inter-process communication: channels and select
  • Time based events: timers and tickers
  • Error handling
    • Custom error hierarchies,
    • Checking error type,
    • Unexpected errors: panic and recover
  • Structural logging using slog
  • Embedded resources
  • Application configuration using koanf package

Testing

  • Table and map driven tests
  • Concurrent test execution,
  • Data assertions: deep equal and golden files
  • Test Doubles
    • Mocks vs Stubs vs Fakes
    • Higher-order function replacement
    • Monkey patching
  • HTTP testing
    • Request emulation
    • Client tests
  • Benchmarking
  • Fuzz testing

Databases

  • Object-relational mappings: gorm or ent package
  • Model/query code generation from SQL:  sqlc package
  • Schema and migration management: atlas package

RESTful Services

  • Handling HTTP Requests
    • Routing: paths and handlers
    • Request parameter extraction
    • Serving files and embedded resources,
    • Request contexts and middlewares
  • Security
    • TLS Server
    • JSON Web Token Access Control
  • OpenAPI code generation
  • Serving Swagger UI

Tools

  • Project building support: mage
  • Static code analysis using golangci-lint
  • Profiling
Benefits

Workshop participants will learn to:

  • Create correct code in the Golang language using custom extended types, concurrency mechanisms, error handling system and timed events.
  •  Test code using a set of tools offered by the Go language like unit testing, benchmarking and fuzzing
  •  Implement effective RESTful services and use tools to analyze their performance
  •  Use relational databases in their Golang applications
Audience

Programmers at an intermediate or higher level, with experience in other programming languages, familiar with the basic syntax of the Golang language.

The number of participants: 8-15 people

Duration: 4 days

Available language: PL / EN

Available course material: PL

Course form
The training is organized in an open form (for individuals).

Download materials

Download

Thank You!

Sorry, something went wrong.

Please refresh the page and try again.

File upload error

No file was uploaded

Incorrect file size (max 5MB)

Invalid file format

Empty file

Processing...

Download materials

Download

Contact our experts with questions about any of our trainings

Natalia & Agata

Training Practice Team

Contact our experts

Natalia & Agata

Uploaded file:

  • danieltroc.pdf

Allowed extensions: DOC, DOCX, PDF (max 5MB)

Thank you for filling out the form

We will look over your message and get back to you as soon as possible

Sorry, something went wrong and your message couldn’t be delivered

Please refresh the page and try again

File upload error

No file was uploaded

Incorrect file size (max 5MB)

Invalid file format

Empty file

Processing...

You might also like

Become a Developer Programming languages

Become a C# / .NET developer with an internship option at Sii

Duration:
10 days
Programming languages

Benefits of using the Rust language in an IT project

Duration:
1 day
Programming languages

Rust for intermediate

Duration:
2 days
Programming languages

Introduction to programming with Rust

Duration:
2 days
Become a Developer Programming languages

Become a Java Developer

Duration:
6 days
Become a Developer Programming languages

Become a Front-end Developer

Duration:
6 days
Programming languages

Angular16 – programming basics

Duration:
3 days
Programming languages

JavaScript – programming basics

Duration:
3 days
Programming languages

ReactJS – programming basics

Duration:
3 days
Programming languages

Microservices – programming basics

Duration:
3 days
Programming languages

AngularJS – programming basics

Duration:
4 days
Programming languages Testing solutions

Java Programming for Testers

Duration:
4 days
Programming languages Testing solutions

GIT – practical approach to group work

Duration:
2 days
Programming languages

JAVA – basics of programming

Duration:
4 days
Programming languages

Python - creating network applications

Duration:
2 days
Become a Developer Programming languages

Become a Python Developer

Duration:
6 days

ITIL® and PRINCE2® are registered trademarks of AXELOS Limited, used under permission of AXELOS Limited. All rights reserved.
AgilePM® is a registered trademark of Agile Business Consortium Limited.
All AgilePM® Courses are offered by Sii, an Affiliate of Quint Wellington Redwood, an Accredited Training Organization of The APM Group Ltd.
Lean IT® Association is a registered trademark of the Lean IT Association LLC. All rights reserved. Sii is an Affiliate of Accredited Training OrganizationQuint Wellington Redwood.
SIAM™ is a registered trademark of EXIN Holding B.V.
All prices presented on the website are net prices. 23% VAT should be added.

close

Show results

Änderungen im Gange

Wir aktualisieren unsere deutsche Website. Wenn Sie die Sprache wechseln, wird Ihnen die vorherige Version angezeigt.

Ta treść jest dostępna tylko w jednej wersji językowej.
Nastąpi przekierowanie do strony głównej.

Czy chcesz opuścić tę stronę?

Einige Inhalte sind nicht in deutscher Sprache verfügbar.
Sie werden auf die deutsche Homepage weitergeleitet.

Möchten Sie fortsetzen?