This course is a continuation of PT20182 Introduction to Go Programming for Developers. This course has two primary themes: the first is an overview of Go idioms – the specific ways Go developers write code that is considered good “golang” style, and the second is an exploration of the functionality available in the Go libraries and external packages. All programming languages have their own idioms which are ways of writing code which, because of the design and architecture of the language, often produce optimal code. Idioms also arise in the same way that design patterns do, by programmers finding standard solutions in that language to recurring programming problems. Part of the process of becoming a professional level Go developer is learning these best practices as part of the tool kit of best programming practices. The standard libraries or packages that come with Go are very powerful and provide frameworks that can form the basis of very robust and elegant solutions without the developer having to “re-invent the wheel.” However Go installation, like Ruby and Python, can incorporate third party packages or libraries automatically. This capability has created an “ecosystem” of specialized and useful packages, some of which have become de facto Go packages. During the course, a number of the canonical packages are investigated as well as some of the most useful and popular of the “other” packages. The class is designed to be about 50% hands on labs and exercises, about 25% theory and 25% instructor led hands on learning where students code along with the instructor. The specific external packages to be covered will be updated regularly to reflect trends in usage. The course will provide a hands-on survey of many external packages and will not necessarily do a deep dive into a specific package unless that package is one of the top external packages.
Prior to taking this course, students must have taken the “Introduction to Go Programming for Developers” course (PT20182) or have equivalent experience. Students who do not have this level of programming competence will not be able to follow the material. Because of time limitations, there will be no opportunity for remedial instruction in Go during the class. This is an essential prerequisite.
2 Days/Lecture & Lab
This course is intended for intermediate level Go programmers who can comfortably write code using at a level consistent with completing the “Introduction to Go Programming for Developers” course (PT20182).
- Clean Code the Go way
- Go specific idioms (comma ok, etc) and imported idioms (reference counting, etc).
- Modifying design patterns to work in Go – Go code smells.
- Go workspace and configuration idioms.
- Network and web programming with Go standard libraries.
- String, text, unicode processing and I/O with Go standard libraries.
- Compression and encryption with Go standard libraries.
- Database management with Go Standard libraries.
- Top external packages for testing (eg. testify, gingko)
- Top external packages for functionality (eg. go-set, go-ethereum, gorm)
- Top external packages for web programming (eg. gin, traefik, etv)
- External packages for microservices, web services and cloud computing.
- Other top packages of interest.