Master the World of Golang - Issue #12
Tags: go, programming, backend, grpc
Published: 2018-07-23 13:52:08

---
title: Master the World of Golang - Issue #12
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, grpc
---

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 22 · <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>

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

<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>News</h2>
<p>
<strong style='display: block;'><a href="https://jaxenter.com/go-modules-land-go-1-11-146903.html?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Go modules lands in Go 1.11</a></strong>
Go 1.11 (expected to be released in August 2018) adds experimental support for modules. Let’s take a look and see what this means for Go developers.
</p>
<p>
<strong style='display: block;'><a href="https://dave.cheney.net/2018/07/14/taking-go-modules-for-a-spin?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Taking Go modules for a spin</a></strong>
<p>I wanted to play with Ubuntu 18.04 on a spare machine. This gave me an excuse to try out the modules feature recently merged into the Go 1.11 development branch.</p>
</p>
<a href="https://twitter.com/_rsc/status/1019743820299341824"><img src="https://thepracticaldev.s3.amazonaws.com/i/c93aqmu0yiv8iz2bl18n.png"</a></img>
<h2>Fundamentals</h2>
<p>
<strong style='display: block;'><a href="https://carolynvanslyck.com/blog/2018/07/building-go-from-source/?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Building Go from source</a></strong>
<p>Before we can become Go contributors, the very first step is being able to build Go from source.<br></p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/@geghamjivanyan/types-in-go-and-python-9aa0fbc25882?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Types in Go and Python</a></strong>
<p>Despite of other properties programming languages are statically typed (eg. GO) and dynamically typed (eg. Python).</p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/@yliu224/goroutines-on-mergesort-12a2a7a43cc2?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Goroutines on merge sort</a></strong>
<p>I had to use multithreading to implement one of the sorting algorithms <i>bucket sort</i>, <i>merge sort</i> and <i>bitonic sort</i>. I used Goroutines to implement the merge sort.<br></p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/@anshujhaa/beginners-guide-to-testing-in-golang-cd33b025dafe?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Beginners guide to testing in GoLang</a></strong>
<p>I recently started learning GoLang and spent some time in learning about the various testing concepts in GoLang.</p>
</p>
<h2>Best-practices</h2>
<p>
<strong style='display: block;'><a href="https://medium.com/@diego_pacheco/writing-a-simple-repl-in-go-24a274228954?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Writing a simple REPL in Go</a></strong>
<p>I want to show how easy is to write a simple REPL in Go. REPLs are quite popular in Functional Programming community like Scala, Clojure, and Haskell.<br></p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/@gilcrest_65433/basic-redis-examples-with-go-a3348a12878e?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Basic Redis examples with Go</a></strong>
<p>Redis is pretty great. It is the #1 most loved database for the second year in a row, according to a recent Stack Overflow survey.</p>
</p>
<a href="https://twitter.com/chimeracoder/status/1019331017302298632"><img src="https://thepracticaldev.s3.amazonaws.com/i/0fuzwo9jcxych0vb2njc.png"</a></img>
<p>
<strong style='display: block;'><a href="https://www.zachjohnsondev.com/posts/lambda-go-middleware/?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Writing Go middleware for AWS Lambda</a></strong>
<p>This post assumes a base level of knowledge in AWS Lambda functions written in Go.<br></p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/jexia/from-ruby-to-golang-ruby-each-equivalent-in-go-1a78e371c520?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">From Ruby to Golang — Ruby ‘each’ equivalent in Go</a></strong>
<p>We create an array with 4 items, then using each, we create a block iterating over the fruits array, with a local variable fruit, then we print the value of fruit using puts.</p>
</p>
<h2>Tutorials</h2>
<p>
<strong style='display: block;'><a href="https://golangbot.com/read-files/?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Read files using Golang </a></strong>
Learn how to read an entire file and also how to read a file in small chunks using Go. This tutorial also deals with bundling static files inside go binaries.
</p>
<p>
<strong style='display: block;'><a href="http://forgelib.com/lib/17Ppqko9UDD9h9PQs45wZTIlldq?How%2Bto%2Bwrite%2Btestable%2Bgolang%2Bcode&amp;utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">How to write testable Golang code</a></strong>
<p>In this article, the emphasis is on how to write the testable code and how to block out some unrelated operations.<br></p>
</p>
<a href="https://twitter.com/rakyll/status/1019455441300963328"><img src="https://thepracticaldev.s3.amazonaws.com/i/k84cxqiurjafrtih8kpt.png"</a></img>
<p>
<strong style='display: block;'><a href="https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Get-started-with-GoLang-maps-A-tutorial?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Get started with GoLang maps: a tutorial</a></strong>
GoLang is an increasingly popular programming language with a unique approach to data manipulation. Here we look at how GoLang maps are programmed.
</p>
<p>
<strong style='display: block;'><a href="https://searchitoperations.techtarget.com/tutorial/Follow-a-Kubernetes-and-Go-tutorial-in-your-home-lab?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Follow a Kubernetes and Go tutorial in your home lab</a></strong>
The container orchestration tool Kubernetes is based on Google's Go language. Use Minikube in this Kubernetes and Go tutorial to manage application dependencies.
</p>
<h2>Tools</h2>
<p>
<strong style='display: block;'><a href="https://blog.usejournal.com/contributing-to-go-with-go-critic-88a25e162bf6?gi=1c3f33b1292a&amp;utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Contributing to Go with go-critic</a></strong>
<p>We’ve verified golang/go repository and have send few patches, that are fixing found problems. In this post, we will inspect the suggested changes.</p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/@arschles/project-athens-the-components-fc20112d61b1?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Project Athens: the Components</a></strong>
<p>You get thegithub.com/arschles/assert package from Athens, not directly from Github. Athens got it from Github, but it stores the package in its own place.</p>
</p>
<a href="https://twitter.com/fatih/status/1019643295490871296"><img src="https://thepracticaldev.s3.amazonaws.com/i/rlvfc0kw8idfn6rh3lr2.png"</a></img>
<p>
<strong style='display: block;'><a href="https://github.com/rtr7/router7?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Pure-Go small home internet router</a></strong>
<p>Router7 is a pure-Go implementation of a small home internet router. It comes with all the services required to make a fiber7 internet connection work (DHCPv4, DHCPv6, DNS, etc.).<br></p>
</p>
<p>
<strong style='display: block;'><a href="https://medium.com/@errata.ai/introducing-prose-v2-0-0-bringing-nlp-to-go-a1f0c121e4a5?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Introducing prose v2.0.0: bringing NLP to Go</a></strong>
<p>We’re pleased to announce the v2.0.0 release of prose, a natural language processing (NLP) library for Go.</p>
</p>
<a href="https://twitter.com/neo4j/status/1019943617744515082"><img src="https://thepracticaldev.s3.amazonaws.com/i/lk52qnk5hubsf8nd0yk9.png"</a></img>
<h2>Talks about Golang</h2>
<p>
<strong style='display: block;'><a href="https://blog.golang.org/ismmkeynote?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Getting to Go: journey of Go&#39;s garbage collector</a></strong>
<p>Go features goals and use cases have forced us to rethink the entire garbage collection stack and led us to a surprising place. This talk describes our journey.<br></p>
</p>
<p>
<img width="140" height="140" alt="Episode 124. nil and AST · " style="float: right; margin-left: 20px; margin-bottom: 20px;" src="https://s3.amazonaws.com/revue/items/images/003/240/196/thumb/cover.png?1532117990" />
<strong style='display: block;'><a href="http://golangshow.com/episode/2018/06-17-124-en/?utm_campaign=Revue%20newsletter&amp;utm_medium=Newsletter&amp;utm_source=Master%20the%20World%20of%20Golang">Episode 124. nil and AST · </a> &mdash; <a href="http://golangshow.com/episode/2018/06-17-124-en/">golangshow.com</a></strong>
<p>Episode 124 [en]. nil and AST. Bonus: an Interview with @bradfitz and @bketelsen at @GopherConRu.</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 22 · <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>

<div id="revue-embed">
  <form action="https://www.getrevue.co/profile/golang/add_subscriber" method="post" id="revue-form" name="revue-form"  target="_blank">
  <div class="revue-form-group">
    <label for="member_email">Email address</label>
    <input class="revue-form-field" placeholder="Your email address..." type="email" name="member[email]" id="member_email">
  </div>
  <div class="revue-form-group">
    <label for="member_first_name">First name <span class="optional">(Optional)</span></label>
    <input class="revue-form-field" placeholder="First name... (Optional)" type="text" name="member[first_name]" id="member_first_name">
  </div>
  <div class="revue-form-group">
    <label for="member_last_name">Last name <span class="optional">(Optional)</span></label>
    <input class="revue-form-field" placeholder="Last name... (Optional)" type="text" name="member[last_name]" id="member_last_name">
  </div>
  <div class="revue-form-actions">
    <input type="submit" value="Subscribe" name="member[subscribe]" id="member_submit">
  </div>
  </form>
</div>