Learn how to build production-level services in Go with a focus on macro-level engineering decisions.
This class teaches how to build production-level services in Go with a focus on macro-level engineering decisions. From the beginning you will pair program with the instructor, walking through the design philosophies and guidelines used to engineer the code. With each new feature, you will learn more about the transition from programming to engineering and the points of refactoring required to write production level applications. Throughout the class, Go modules and Kubernetes will be a focus. Everyone will be making better engineering decisions after this class.
Through out the day we will learn:
A basic understanding of the Go programming language. Students do not have to be expert Go users but they will get the most from the workshop if they have completed the majority of the Tour of Go.
William Kennedy is a managing partner at Ardan Labs in Miami, Florida, a mobile, web, and systems development company. He is also a co-author of the book Go in Action, the author of the blog GoingGo.Net, and a founding member of GoBridge which is working to increase Go adoption through diversity.
BUY TICKETgRPC is a popular open source high-performance RPC (remote procedure call) framework. gRPC has schema definition, streaming support, interceptors and much more. This workshop will teach you how to write a gRPC server and client in Go, including some more advanced features such as streaming and interceptors.
During the workshop we'll build a car hailing service, we'll code both the server and the client. Once the basic request-reply is in place, we'll add more advanced features such as streaming, interceptors, metadata and more. We'll also cover operational concerns. If time permits, we'll add a REST front end using grpc-gateway.
protoc
compiler installed. You can install it from you package mangers (e.g. brew
, apt
, choco
) or download it Miki is an old Gopher and even older developer :) He spends his time teaching (either via his company or via ArdanLabs), writing books, creating video courses, blogging and of course - writing code (either open source or for customers). Miki is one of the organizers of GopherCon Israel and the Go Israel Meetup.
Learn Go in a practical way - we'll write a utility to download a file over HTTP in parallel. During the project we'll cover the parts in Go that are required to complete the project.
We'll discuss many things while developing the program: Basic language feature, common data structures, concurrency (goroutines & channels), error handling and more. We'll also cover the engineering of a Go project - how to structure code, how to test and more.
Miki is an old Gopher and even older developer :) He spends his time teaching (either via his company or via ArdanLabs), writing books, creating video courses, blogging and of course - writing code (either open source or for customers). Miki is one of the organizers of GopherCon Israel and the Go Israel Meetup.
Is Go an object oriented programming language? Not exactly. Does it offer options for object oriented design? You bet! In this workshop we are going to explore the features that the language offers and how to use them with concrete examples, including the newly added feature - Generics. This workshop is ideal for anyone struggling to expand their codebases as well as for people new to Go who are looking to get an idea of how to work with it and evaluate if it’s the right language for them.
In order to dive into the philosophy of object oriented programming in Go we will go over packages, the type system, interfaces, generics and code generation as well as some other lesser utilized capabilities of the language and see how they can contribute to our designs. You can expect to expand your toolkit to design your projects to express and do exactly what you intend for them to do.
Some coding experience in any programming language and basic familiarity with the Go programming language are ideal, if you are completely new to Go you can go over "A Tour of Go". Since generics is a new addition to the language we will go over the topic together and prior knowledge is not necessary.
Ronna is an Engineering Manager at Delivery Hero, a Google developer expert for the Go programming language, a Women Who Go organizer and GoTime’s unpopular opinion hall of famer. After 20 years in tech Ronna knows that she is the sum of the opportunities that were given to her, which is why she spends her time helping others find opportunity. She has been crafting hands-on workshops in Go since 2017 and is looking forward to seeing you in her upcoming new workshop “A Path to Object Oriented Design in Go”.
Caddy is an extensible, cross-platform application server written in Go. Its standard offering contains an HTTP server with TLS and PKI apps, all of which can be extended with Go. Learning to extend and deploy Caddy can simplify your infrastructure, improve uptime, lower costs, and increase your profitability and developer happiness. Caddy's unique, modular architecture allows it to be extended to unify and simplify infrastructure, configuration, and deployments. It makes 12-factor app development a breeze: config loading, logging, dependency injection, and others are all handled for you. You just need to learn the module lifecycle, what a basic module looks like, and how to plug it into Caddy. Then adding your business logic is a piece of cake.
The tutorial will hold the hands of the gophers to develop Caddy modules. It will introduce the building blocks of Caddy modules, the different kinds of modules, the module lifecycle, how Caddy architecture supports its modules, and finally how to develop a module. At the end of the workshop, attendees should be able to write Caddy app modules, host and guest modules (e.g. HTTP handlers), and configuration adapters.
Attendees are expected to have intermediate experience and knowledge of programming in Go, know how to use the command line, and know HTTP semantics. The students should have a workstation with access to a terminal and has Go and their favorite IDE/editor installed.
Mohammed S. Al Sahaf is a product manager by day, gopher and student in the evenings. He created Caddy SSH and maintains the Caddy nginx-adapter and transform-encoder
Twitter | GitHub | LinkedIn | Website