Master the World of Golang - Issue #11
Tags: go, programming, backend, google
Published: 2018-07-15 19:30:41

---
title: Master the World of Golang - Issue #11
published: yes
description: Master the World of Go. Each week Maarten Bezemer serves the finest articles about the theories, trends, tools and topics.
tags: golang, programming, backend, google
---

<img src="https://thepracticaldev.s3.amazonaws.com/i/8iykftgune5q747g07p5.jpg"></img>

Weekly · <a href="https://medium.com/@veger" data-href="https://medium.com/@veger" data-anchor-type="2" data-user-id="e06b7bac5111" data-action-value="e06b7bac5111" data-action="show-user-card" data-action-type="hover" class="markup--user markup--p-user" target="_blank">Maarten Bezemer</a> · July 15 · <a href="https://www.getrevue.co/profile/golang/issues/master-the-world-of-golang-issue-9-120281?utm_campaign=Issue&amp;utm_content=view_in_browser&amp;utm_medium=email&amp;utm_source=Master+the+World+of+Golang" data-href="https://www.getrevue.co/profile/golang/issues/master-the-world-of-golang-issue-9-120281?utm_campaign=Issue&amp;utm_content=view_in_browser&amp;utm_medium=email&amp;utm_source=Master+the+World+of+Golang" class="markup--anchor markup--p-anchor" rel="nofollow noopener noopener nofollow noopener" target="_blank">Join for free</a> or add <a href="http://fetchrss.com/rss/5b27d6348a93f858388b4567878277344.xml" data-href="http://fetchrss.com/rss/5b27d6348a93f858388b4567878277344.xml" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">the newsletter rss</a>

<strong>Master the World of Go. Each week Maarten Bezemer serves the finest articles about the theories, trends, tools and topics.</strong>

<h3><p><a href="https://github.com/veger">Maarten</a> uses Go to build the back-end of developer platform <a href="https://www.jexia.com/">Jexia</a>. Are you an advanced user? Stay ahead with his <a href="https://www.getrevue.co/profile/golang-jexia">Golang Ninja Newsletter</a>.</p></h3>
<hr>
<h2>Fundamentals</h2>
<p>
<strong style='display: block;'><a href="https://gist.github.com/justdoit0823/1956b1db9719df31b5ffbabfb5e5ac99?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">The essence of Golang</a></strong>
<p>Quick overview of basic Go principles.</p>
</p>
<p>
<strong style='display: block;'><a href="https://dzone.com/articles/error-monitoring-in-golang?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Error monitoring in Golang</a></strong>
Rollbar dropped its Go error monitoring SDK. Here, you'll get a brief intro on how error handling works in Go, then we'll cover monitoring errors in production.
</p>
<p>
<strong style='display: block;'><a href="https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/reflection?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Reflection - learn Go with tests</a></strong>
<p>Reflection is the ability of a program to examine its structure, particularly through types; it's a form of metaprogramming. It's also a great source of confusion.</p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/@mathurvarun98/why-gos-error-handling-makes-sense-4fe2c0664c0c?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Don’t hate on Go’s error handling</a></strong>
<p>Yes, there are many workarounds, but the fact that so many exist point to a deficiency in the native framework.</p>
</p>
<p>
<strong style='display: block;'><a href="https://opensource.com/article/18/7/locks-versus-channels-concurrent-go?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Locks versus channels in concurrent Go</a></strong>
Compare two ways to share information with goroutines, one using synchronized shared memory and the other using channels.
</p>
<p>
<strong style='display: block;'><a href="https://hub.packtpub.com/understanding-go-internals-defer-panic-and-recover-functions-tutorial/?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Understanding Go Internals: defer, panic() and recover() functions</a></strong>
<p>We will learn to use Go Internals, the defer keyword, panic() and recover() functions. Go is making strides with masterclass development and architecture.</p>
</p>
<h2>Best-practices</h2>
<p>
<strong style='display: block;'><a href="https://dev.to/douglasmakey/oauth2-example-with-go-3n8a?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Oauth2 with Google in Go</a></strong>
<p>OAuth is a specification that allows users to delegate access to their data without sharing their username and password with that service.<br></p>
</p>
<p>
<strong style='display: block;'><a href="https://itnext.io/building-a-web-http-server-with-go-6554029b4079?gi=b00969d790&amp;utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Building a (web) HTTP Server with Go</a></strong>
<p>Go is a general purpose programming language, compiled and statically typed with a clean syntax and advanced features.</p>
</p>
<p>
<strong style='display: block;'><a href="https://www.phanorcoll.com/docker-neo4j-go?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Setup a clean workspace for Neo4j and Golang</a></strong>
<p>A clean and productive workflow is essential for every dev. Docker and docker-compose are good tools for keeping it clean and avoid installing anything locally.<br></p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/@langhxs/golang-customized-json-serialization-in-web-api-ae2d106e0041?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">GoLang customized JSON serialization in web API</a></strong>
<p>In the world of web API development, it is quite often that we have to deal with JSON representation of data.</p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/safetycultureengineering/how-to-handle-graphql-query-batching-in-golang-3a16e6c3ac9c?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">How to handle GraphQL query batching in Golang</a></strong>
<p>As a GraphQL consumer, we want to increase query efficiency of data delivery by decreasing the amount of resources required for each data request.</p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/@edwardpie/handling-os-signals-guarantees-graceful-degradation-in-go-cb57d604d39d?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Handling OS signals to garantee graceful degradation in Go</a></strong>
<p>In programming, it’s usually not advised to use a resource unless you know how it will be released at the end of your program.</p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/@shaonshaonty/building-restful-web-api-service-using-golang-chi-mysql-d85f427dee54?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Building RESTful web API service using Golang, chi, and MySQL</a></strong>
<p>We're going to build a simple crud API web service for blog posts.</p>
</p>
<h2>Tutorials</h2>
<p>
<strong style='display: block;'><a href="https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/maps?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Maps - learn Go with tests</a></strong>
In arrays &amp; slices, you saw how to store values in order. Now, we will look at a way to store items by a key and look them up quickly.
</p>
<p>
<strong style='display: block;'><a href="https://around25.com/blog/building-a-trading-engine-for-a-crypto-exchange/?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">How to build a trading engine</a></strong>
In my last article I wrote about how you can build an Ethereum Wallet Manager using nodejs, watch for incoming deposits and execute withdrawals.
</p>
<p>
<strong style='display: block;'><a href="https://usman.it/image-manipulation-in-golang/?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Image manipulation in Golang</a></strong>
<p>This tutorial will help you learn standard image library or if you’re new to Go it’ll teach you some basic concepts of Go.</p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/@pierreprinetti/test-driven-development-in-go-baeab5adb468?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Test-Driven Development in Go</a></strong>
<p>You can watch Robert Martin use Kotlin and JUnit to illustrate his Three Laws of TDD. I did, and it’s worth the whole hour.</p>
</p>
<p>
<strong style='display: block;'><a href="https://ednsquare.com/publisher/view/Full-Stack-GoLang-Tutorial-with-PostgreSQL-------fn1h0zlYGm?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Full-stack GoLang tutorial with PostgreSQL</a></strong>
<p>Build a full stack web application with Golang &amp; PostgreSQL.</p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/@stas.smirnov88/setup-a-go-web-service-as-a-system-level-service-on-ubuntu-a2eb6c878bbc?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Setup a Go web service as a system-level service on Ubuntu</a></strong>
<p>I would like to share with you the knowledge I gained when was trying to configure a Go web service to work as a system service on Ubuntu.</p>
</p>
<h2>Tools</h2>
<p>
<strong style='display: block;'><a href="https://ericgreer.info/post/a-better-flags-package-for-go/?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Flaggy: a better, more idiomatic flags package for Go</a></strong>
<p>Today, I am happy to announce flaggy as stable for production use.  Flaggy was originally built out of frustrations with all other flag packages available today.</p>
</p>
<p>
<strong style='display: block;'><a href="https://devcenter.heroku.com/articles/gin-memcache?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Scaling a Gin application with Memcache</a></strong>
Create a simple application in Gin, deploy it to Heroku, then add caching with Memcached to alleviate performance bottlenecks.
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/automation-nation/a-college-intern-builds-a-go-plugin-for-opensource-timeseries-database-caff227276e1?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Intern builds Go plugin for opensource timeseries database</a></strong>
<p>I recently started working for Alpaca as an engineering intern. For my first task, I created a plugin for Alpaca’s open source timeseries database MarketStore server.</p>
</p>
<h2>Video</h2>
<p>
<strong style='display: block;'><a href="https://www.youtube.com/watch?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang&amp;v=Kcp43_Y6x7U">Introduction to Golang</a></strong>
<p>Geert-Johan gives an introduction for programming in Go. Only for real newbies that can handle low-quality audio.</p>
</p>
Weekly · <a href="https://medium.com/@veger" data-href="https://medium.com/@veger" data-anchor-type="2" data-user-id="e06b7bac5111" data-action-value="e06b7bac5111" data-action="show-user-card" data-action-type="hover" class="markup--user markup--p-user" target="_blank">Maarten Bezemer</a> · July 15 · <a href="https://www.getrevue.co/profile/golang/issues/master-the-world-of-golang-issue-9-120281?utm_campaign=Issue&amp;utm_content=view_in_browser&amp;utm_medium=email&amp;utm_source=Master+the+World+of+Golang" data-href="https://www.getrevue.co/profile/golang/issues/master-the-world-of-golang-issue-9-120281?utm_campaign=Issue&amp;utm_content=view_in_browser&amp;utm_medium=email&amp;utm_source=Master+the+World+of+Golang" class="markup--anchor markup--p-anchor" rel="nofollow noopener noopener nofollow noopener" target="_blank">Join for free</a> or add <a href="http://fetchrss.com/rss/5b27d6348a93f858388b4567878277344.xml" data-href="http://fetchrss.com/rss/5b27d6348a93f858388b4567878277344.xml" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">the newsletter rss</a>