Book Image

Hands-On Software Architecture with Golang

By : Jyotiswarup Raiturkar
Book Image

Hands-On Software Architecture with Golang

By: Jyotiswarup Raiturkar

Overview of this book

Building software requires careful planning and architectural considerations; Golang was developed with a fresh perspective on building next-generation applications on the cloud with distributed and concurrent computing concerns. Hands-On Software Architecture with Golang starts with a brief introduction to architectural elements, Go, and a case study to demonstrate architectural principles. You'll then move on to look at code-level aspects such as modularity, class design, and constructs specific to Golang and implementation of design patterns. As you make your way through the chapters, you'll explore the core objectives of architecture such as effectively managing complexity, scalability, and reliability of software systems. You'll also work through creating distributed systems and their communication before moving on to modeling and scaling of data. In the concluding chapters, you'll learn to deploy architectures and plan the migration of applications from other languages. By the end of this book, you will have gained insight into various design and architectural patterns, which will enable you to create robust, scalable architecture using Golang.
Table of Contents (14 chapters)

Preface

Golang was conceived and built at Google around 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. The objective was to build a pragmatic programming language to handle large code bases, complex multi-threading scenarios, and multi-core processors. Version 1.0 went out in March 2012, and since then, the language has grown in leaps and bounds in terms of popularity. Developers like me love its simplicity, expressiveness, explicit nature, and awesome community.

Having built a few production-grade applications in Go over the past few years, I have tried to distill my learning from a hands-on architect perspective in this book. Primarily, the book is a broad overview of the Go ecosystem, but at a few junctures, we deep dive and write code to demonstrate the theory. Finally, we build a non-trivial e-commerce application using the learned constructs!