---
title: "#160: Alternative Patterns for Method Overloading in Go"
publication: "Go Weekly"
issue: 160
published_at: "2017-05-18"
canonical_url: "https://golangweekly.com/issues/160"
---

Go Newsletter 160   . 

[Read this on the Web](http://golangweekly.com/issues/160) 

[Go Newsletter](http://golangweekly.com) Issue 160 — May 18, 2017     

Featured [Badger: A High-Perf Key/Value Storage Engine](https://open.dgraph.io/post/badger/?utm_source=golangweekly&utm_medium=email) An embeddable, persistent, simple and fast key-value store, written natively in Go. [GitHub repo.](https://github.com/dgraph-io/badger) Dgraph [Alternative Patterns for Method Overloading in Go](https://mymemorysucks.wordpress.com/2017/05/16/alternative-patterns-for-method-overloading-in-go/?utm_source=golangweekly&utm_medium=email) An overview of 3 approaches to deal with Go’s lack of method overloading: a functional way, an OO-style way, and a ‘JavaScript’-esque way. [Functional options](https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis) are also worth considering. Chris Tomich [Why Go Doesn't Use a Generational or Compacting Garbage Collector](https://groups.google.com/d/msg/golang-nuts/KJiyv2mV2pU/wdBUH1mHCAAJ?utm_source=golangweekly&utm_medium=email) A solid response from Ian Lance Taylor on the pros and cons of different garbage collection methods. Ian Lance Taylor [It's the Future](https://circleci.com/blog/its-the-future/?utm_source=cooperpress=newsletter=go-newsletter=may) "So I just need to split my simple CRUD app into 12 microservices, each with their own APIs which call each others’ APIs but handle failure resiliently, put them into Docker containers, launch a fleet of 8 machines which are Docker hosts…” CircleCIsponsored[![\](https://copm.s3.amazonaws.com/43d2fdb0.png)](https://circleci.com/blog/its-the-future/?utm_source=cooperpress=newsletter=go-newsletter=may) [4 Talks from GopherFest 2017](https://www.youtube.com/watch?v=giUatBmmb_Y&utm_source=golangweekly&utm_medium=email) video Live streamed from San Francisco a few days ago, the video consists of 4 talks including Francesc Campoy Flores on the state of Go, and Matt Ho on event sourcing. GopherFest 2017 [How To Install Go Using GVM (Golang Version Manager)](https://www.youtube.com/watch?v=7hFfkOs8gRg&utm_source=golangweekly&utm_medium=email) video It was just a matter of time before Go had a version manager. Here’s how to install it. BlueBot [Where Does Go's Concurrency (CSP) Fall Short?](https://www.quora.com/Where-does-Gos-concurrency-CSP-fall-short/answer/Sameer-Ajmani?utm_source=golangweekly&utm_medium=email) A look at Go’s concurrency approach as compared to other languages from the manager of the Go team at Google. Sameer Ajmani [Rewriting Web Analytics Tracking Infrastructure in Go](https://engineering.skroutz.gr/blog/rewriting-web-analytics-tracking-in-go/?utm_source=golangweekly&utm_medium=email) The tale behind replacing a monolithic, Rails-based system with a systemd binary that improved many aspects of performance. Agis Anastasopoulos [Godzilla: An ES2015 to Go Source Code Transpiler and Runtime](https://github.com/jingweno/godzilla?utm_source=golangweekly&utm_medium=email) A bit of an opposite to GopherJS. Jingwen Owen Ou Jobs [Technical Lead Developer - Ruby / Golang / Go - Lead Engineer](https://www.cv-library.co.uk/job/205873927/Technical-Lead-Developer-Ruby-Golang-Go-Lead-Engineer?s=100818&utm_source=golangweekly&utm_medium=email) People Source [Get Your Next Go Job Faster. Get Access to 6,000 Companies.](https://hired.com/join/?utm_source=petercooperpress&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-swe%29%28q2-17-go-weekly%29&utm_content=newsletter) Say goodbye to the pain of job hunting. Get Hired today Hired In Brief [Gogland EAP 8 Available: A Promising New Go IDE](https://blog.jetbrains.com/go/2017/05/12/gogland-eap-8-is-available/?utm_source=golangweekly&utm_medium=email) news JetBrains [Get Tighter Go Integration with Komodo IDE](https://www.activestate.com/blog/2017/05/get-tighter-go-integration-komodo-ide?utm_source=golangweekly&utm_medium=email) news Release 10.2.2 brings syntax highlighting, code completion, and more. ActiveState [Understanding Middleware in Go](https://lanreadelowo.com/blog/2017/04/25/go-middleware/?utm_source=golangweekly&utm_medium=email) tutorial Lanre-Adelowo [Another Introduction to Pointers in Go](https://golangbot.com/pointers/?utm_source=golangweekly&utm_medium=email) tutorial Naveen Ramanathan [Build your first app with MongoDB and Go](https://www.mongodb.com/cloud/atlas/lp/golang?jmp=&utm_campaign=WW_CP_newsletter_sponsorship_FY17Q2&utm_content=sponsored&utm_medium=&utm_source=gonewsletter0518) MONGODBsponsored [Mastering Go Programming: Slices](https://www.youtube.com/watch?v=fhdA-6LcOxk&utm_source=golangweekly&utm_medium=email) video A practical guide to slices in Go that covers the basics along with some memory management tips. Packt Video [How Go’s Type System Differs from Java](https://jaxenter.com/go-typing-system-java-oop-133912.html?utm_source=golangweekly&utm_medium=email) opinion From the perspective of a Java developer. JAXenter [On Package Names for Tests](https://lanreadelowo.com/blog/2017/05/17/on-package-naming-for-tests/?utm_source=golangweekly&utm_medium=email) opinion Should you keep your tests in the same package as your code or in a _test package? Lanre-Adelowo [Toxiproxy: A Framework for Simulating Network Conditions](https://github.com/Shopify/toxiproxy?utm_source=golangweekly&utm_medium=email) tools A TCP proxy to simulate network conditions for chaos and resiliency testing. Shopify [Gap-free tracing for Go apps](https://www.datadoghq.com/dg/apm/lpg/?utm_source=golangweekly&utm_medium=email&utm_campaign=CooperPress-GoAPM) tools Visualize key metrics, identify bottlenecks in end-to-end traces, and correlate with 150+ other technologies. Datadogsponsored [Go-rquad: Algorithms for Region Quadtrees](https://github.com/aurelien-rainone/go-rquad?utm_source=golangweekly&utm_medium=email) code And neighbor finding algorithms/techniques. Aurelien Rainone [Goldfish: A HashiCorp Vault UI Panel](https://github.com/Caiyeon/goldfish?utm_source=golangweekly&utm_medium=email) code A Go app that leans on Vue.js for the frontend. Tony Cai [Goka: A Stream Processing Library for Apache Kafka](https://github.com/lovoo/goka?utm_source=golangweekly&utm_medium=email) code Lovoo GmbH [A Source Code Editor Written in Pure Go](https://github.com/jmigpin/editor?utm_source=golangweekly&utm_medium=email) code Jorge Pinto [cronsun: A Distributed Cron-Style Job System](https://github.com/shunfei/cronsun?utm_source=golangweekly&utm_medium=email) code _Note: The documentation is in Chinese._ miraclesu [GJSON: Quickly Grab Values from a JSON Document](https://github.com/tidwall/gjson?utm_source=golangweekly&utm_medium=email) code Josh Baker [fsql: Search Your Filesystem Using SQL-esque Queries](https://github.com/kshvmdn/fsql?utm_source=golangweekly&utm_medium=email) code Kashav    

Go Newsletter is curated by [Peter Cooper](https://twitter.com/peterc) and [Glenn Goodrich](https://twitter.com/ruprict) [Read this issue on the Web](http://golangweekly.com/issues/160) [See our archives](http://golangweekly.com/issues) [Change your email address](*|UPDATE_PROFILE|*)  [Stop getting this newsletter](*|UNSUB|*)  

Published by [Cooperpress](https://cooperpress.com/)
Fairfield Enterprise Centre, Lincoln Way, Louth, LN11 0LS, UK
