#3 Advanced Go for large production applications
-
Ideally, you have completed workshop 2 and/or have an equivalent experience. You know how to test drive your code (see workshop 2) and know how to use well the testing packages in Go.
-
Within your backend team, take the lead for the advancement, design and testing of your Go codebase.
Learn new approaches and introduce your team to new ideas and practices that makes your product more manageable, testable, robust and simpler.
-
During this 2 days workshop, we cover and use the patterns & topics described below in order to build our own production application along with the corresponding test suite.
Once learned, those patterns and topics can be replicated across a large number of backend challenges and issues.
What you will learn to apply
Go generators
Go generators are often not well known and underused. They offer very robust features. We will use them to automatize part of our code.
Closures and functions objects
Learn how to use closure and function objects to your advantage. We will decouple our configuration and improve and testing in our application.
Testing APIs
Take integration testing to the next level! Testing APIs, will provide deterministic setup, automatic cleanup and scale when a large numbers of developers are writing tests.
Testing, sub-tests and scope
Make your tests like specifications and leverage the scope to avoid data setup repetition.
Powerful tool from IO package
Mastering the Go IO package will allow you to implement more robust APIs for your production systems
Interface segregation & embedding
Go beyond simple interface design to make your code and tests easier to manage. See how they fit with regular design patterns: template, etc.
Design patterns with Go
Learn how to leverage known patterns in Go: adapter, template, bridge, etc. For instance we will support a multi provider in our built application.
Third parties and external APIs
Learn to isolate your third parties clients with Go internal package mechanism to avoid coupling and leaking
Encryption
Encryption is necessary in today’s DevOps pipeline. Learn how to provide easy and robust encryption for production application operational pipelines.
Mocking pitfalls
Learn how mocking can degrade your codebase, and use alternatives.
Events with Go channels
Built an event driven pipeline in our workshop production code to learn how to leverage channel and the sync package.