Updated post can be found on my new blog site.
Real world solutions in GO
This book is not a primer on GO Language (here I suggest “The GO Programming Language” by Donovan & Kernighan, Addison-Wesley) but it should be read just after learning the basic concepts of the language and its tool chain.
The author introduces and describes in details several important concepts about the GO way to program, to structure the code and to organize the projects.
The examples are clear and simple to be easily understood but, at the same time, they can be used in our own projects.
The first project is a web based chat application which introduces main web application concepts like HTML templates, requests routing, Websocket and Oauth protocols, JSON, images plus some GO specifics like how to use the channels to handle client server communication.
The second project is a WHOIS client which shows how to interact with a RESTful API and how to create a command line utility in GO.
The third and main project is a multi application system which analyze Twitter data streams to count specific tags, using a MongoDB as storage solution and a messaging system to decouple the applications and exposing a REST API for a web based client. With this project the author shows how to integrate a NoSQL database and a Queue Messaging system and how to create a REST API.
The book includes other projects with cover additional topics like how to interact with the file system.
All projects and their code are well described and, again, it is something we can really use in our projects.