Hands-On Software Engineering with Golang

Over the last few years, Go has become one of the favorite languages for building scalable and distributed systems. Its opinionated design and built-in concurrency features make it easy for engineers to author code that efficiently utilizes all available CPU cores.
This Golang book distills industry best practices for writing lean Go code that is easy to test and maintain, and helps you to explore its practical implementation by creating a multi-tier application called Links ‘R’ Us from scratch. You’ll be guided through all the steps involved in designing, implementing, testing, deploying, and scaling an application. Starting with a monolithic architecture, you’ll iteratively transform the project into a service-oriented architecture (SOA) that supports the efficient out-of-core processing of large link graphs. You’ll learn about various cutting-edge and advanced software engineering techniques such as building extensible data processing pipelines, designing APIs using gRPC, and running distributed graph processing algorithms at scale. Finally, you’ll learn how to compile and package your Go services using Docker and automate their deployment to a Kubernetes cluster.
By the end of this book, you’ll know how to think like a professional software developer or engineer and write lean and efficient Go code.

Type
ebook
Category
publication date
2020-01-24
what you will learn

Understand different stages of the software development life cycle and the role of a software engineer
Create APIs using gRPC and leverage the middleware offered by the gRPC ecosystem
Discover various approaches to managing package dependencies for your projects
Build an end-to-end project from scratch and explore different strategies for scaling it
Develop a graph processing system and extend it to run in a distributed manner
Deploy Go services on Kubernetes and monitor their health using Prometheus

no of pages
640
duration
1280
key features
Apply best practices to produce lean, testable, and maintainable Go code to avoid accumulating technical debt * Explore Go’s built-in support for concurrency and message passing to build high-performance applications * Scale your Go programs across machines and manage their life cycle using Kubernetes
approach
The reader is guided through all steps involved in designing, implementing, testing, deploying and scaling out Links ‘R’ US; starting from a monolithic architecture and iteratively evolving the project into a Service-Oriented-Architecture that supports efficient out-of-core processing of large link graphs
audience
This Golang programming book is for medium to advanced users who want to delve deeper into the best practices of using Golang to build complex distributed systems effectively. Knowledge of Go programming and the basics of software development is required.
meta description
Explore software engineering methodologies, techniques, and best practices in Go programming to build easy-to-maintain software that can effortlessly scale on demand
short description
This book distills the industry’s best practices for writing lean Go code that is easy to test and maintain and explores their practical application on Links ‘R’ US: an example project that crawls web-pages and applies the PageRank algorithm to assign an importance score to each one.
subtitle
Move beyond basic programming to design and build reliable software with clean code
keywords
Software engineering book, Scalable architecture, software engineering, hands on, golang
Product ISBN
9781838554491