Go Programming Blueprints - Second Edition
Mat Ryer
Go Programming Blueprints - Second Edition
Mat Ryer
About This Book
Build real-world, production-ready solutions in Go using cutting-edge technology and techniquesAbout This Book• Get up to date with Go and write code capable of delivering massive world-class scale performance and availability• Learn to apply the nuances of the Go language, and get to know the open source community that surrounds it to implement a wide range of start-up quality projects• Write interesting and clever but simple code, and learn skills and techniques that are directly transferrable to your own projectsWho This Book Is ForIf you are familiar with Go and are want to put your knowledge to work, then this is the book for you. Go programming knowledge is a must. What You Will Learn• Build quirky and fun projects from scratch while exploring patterns, practices, and techniques, as well as a range of different technologies• Create websites and data services capable of massive scale using Go's net/http package, exploring RESTful patterns as well as low-latency WebSocket APIs• Interact with a variety of remote web services to consume capabilities ranging from authentication and authorization to a fully functioning thesaurus• Develop high-quality command-line tools that utilize the powerful shell capabilities and perform well using Go's in-built concurrency mechanisms• Build microservices for larger organizations using the Go Kit library• Implement a modern document database as well as high-throughput messaging queue technology to put together an architecture that is truly ready to scale• Write concurrent programs and gracefully manage the execution of them and communication by smartly using channels• Get a feel for app deployment using Docker and Google App EngineIn DetailGo is the language of the Internet age, and the latest version of Go comes with major architectural changes. Implementation of the language, runtime, and libraries has changed significantly. The compiler and runtime are now written entirely in Go. The garbage collector is now concurrent and provides dramatically lower pause times by running in parallel with other Go routines when possible.This book will show you how to leverage all the latest features and much more. This book shows you how to build powerful systems and drops you into real-world situations. You will learn to develop high-quality command-line tools that utilize the powerful shell capabilities and perform well using Go's in-built concurrency mechanisms. Scale, performance, and high availability lie at the heart of our projects, and the lessons learned throughout this book will arm you with everything you need to build world-class solutions. You will get a feel for app deployment using Docker and Google App Engine. Each project could form the basis of a start-up, which means they are directly applicable to modern software markets.Style and approachThis book provides fun projects that involve building applications from scratch. These projects will teach you to build chat applications, a distributed system, and a recommendation system.
Access to over 1 million titles for a fair monthly price.
Study more efficiently using our study tools.
Information
Author Mat Ryer | Copy Editor Stuti Srivastava |
Reviewers Michael Hamrah David Hernandez | Project Coordinator Suzanne Coutinho |
Commissioning Editor Kunal Parikh | Proofreader SAFIS Editing |
Acquisition Editor Sonali Vernekar | Indexer Tejal Daruwale Soni |
Content Development Editor Siddhi Chavan | Graphics Abhinash Sahu |
Technical Editors Bhavin Savalia Dhiraj Chandanshive | Production Coordinator Aparna Bhagat |
@dahernan
on GitHub), who delights in telling me that my ideas are "terrible" before later falling in love with them; Ernesto Jiménez, who works extremely hard and extremely effectively on private and public projects alike; Tyler Bunnell (@tylerb
on GitHub), who I learned Go with; and Ryan Quinn (@mazondo
on GitHub), who seems to build an app a day and is living proof of how building something, however simple, is always better than building nothing. Thanks also goes out to Tim Schreiner for engaging in debates with me over the good and bad bits of Go as well as being my go-to guy on matters close to and beyond the fringes of computer science. Thanks go to the core Go team for building such a fun language and to the entire Go community, who have saved me months of development with their contributions. A special shout out to the Women Who Go and Go Bridge (@golangbridge
on Twitter) groups, who are working increasingly hard to help us reach and maintain a rich and diversely populated community. Special thanks also goes to everyone who has supported me in my life and helped me in developing what I love into a career, including, but not limited to, Nick and Maggie Ryer, Chris Ryer, Glenn and Tracey Wilson, Phil Jackson, Aaron Edell, Sek Chai, David Hernández, Ernesto Jiménez, Blaine Garst, Tim and Stacey Stockhaus, Tom Szabo, Steve Davis, Mark Gray, John Motz, Rory Donnelly, Piotr Rojek, Corey Prak, Peter Bourgon, Andrew Gerrand, Dave Cheney, William (Bill) Kennedy, Matt Heath, Carlisia Campos, Tiffany Jernigan, Natalie Pistunovich, Simon Howard, Sean Thompson, Jeff Cavins, Edd Grant, Alan Meade, Steve Cart, Andy Jackson, Aditya Pradana, Andy Joslin, Kal Chottai, Tim Ryer, Emma Payne, Corey and Ashton Ryer, Clair Ryer, Gareth and Dylan Evans, Holly Smitheman, Phil Edwards, Tracey Edwards, Kirsten, Megan and Paul Krawczyk, Alex, Adriénne and Ethan Edwards, Chantelle and Greg Rosson, and all my other great friends and family. In the loving memory of Maggie Ryer, 1961 - 2015.