---
title: "Using Makefile(s) for Go"
publication: "Go Weekly"
issue: 292
published_at: "2019-12-13"
canonical_url: "https://golangweekly.com/issues/292"
---

The latest Go development news       

#292 — Decemeber 13, 2019 

[Read on the Web](https://golangweekly.com/issues/292)   

Golang Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1576195340/utw4da2rx2zayib1p18k.jpg)](https://conroy.org/introducing-sqlc)  

[Introducing `sqlc`: Compile SQL Queries to Type-Safe Go](https://conroy.org/introducing-sqlc) — sqlc generates readable, idiomatic Go from SQL so you can interact with your database without field tags or sacrificing type safety. 

Kyle Conroy   

[Using Makefile(s) with Go](https://danishpraka.sh/2019/12/07/using-makefiles-for-go.html) — We’ve seen a few articles around using `make`, but this one is especially detailed with an eye on being productive in a real scenario. 

Danish Prakash   [![\](https://copm.s3.amazonaws.com/f6c1e83e.png)](https://circleci.com/blog/adding-application-and-image-scanning-to-your-cicd-pipeline/) 

[Adding Application and Image Scans to Your CI/CD Pipeline](https://circleci.com/blog/adding-application-and-image-scanning-to-your-cicd-pipeline/) — Security should be the highest priority when developing and operating software - but it shouldn't slow you down. This blog will demonstrate how to adopt DevSecOps and implement security processes in CI/CD pipelines. 

CircleCI sponsor   

[Versioning with Branching Strategy](https://posener.github.io/branch-strategy/) — The Go team recently recommended copying different versions of your library into different directories. Here is an alternate (and, seemingly, better) approach based on Git tags and branches. 

Eyal Posener   

[Dynamically Scoped Variables in Go?](https://dave.cheney.net/2019/12/08/dynamically-scoped-variables-in-go) — _“This is a bad idea, no argument there. This is not a pattern you should ever use in production code. But, this isn’t production code, it’s a test, and perhaps there are different rules that apply to test code.”_ An interesting experiment, even if it doesn’t smell quite right.. 

Dave Cheney   

[Bill Kennedy's Go Reading List](https://github.com/ardanlabs/gotraining/blob/master/reading/README.md) — Whenever esteemed Go trainer Bill Kennedy comes across a significant interview, blog, historical piece, book, or similar thing about Go, he puts it in this list. If you’re looking for some Go-related Xmas reading, this could be ideal. 

William Kennedy   

💻 Jobs  

[Are You a Go Developer? Stream Has a Job for You](https://angel.co/company/stream/jobs/241159-backend-software-engineer-go) — Stream is looking for a talented Go developer with a passion for building scalable infrastructure. [Apply now](https://angel.co/company/stream/jobs/241159-backend-software-engineer-go). 

Stream   

[Sr. Software Engineer at CrowdStrike (Remote)](https://crowdstrike.wd5.myworkdayjobs.com/crowdstrikecareers/job/USA-Remote/Sr-Software-Engineer_R3806) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks. 

CrowdStrike   

[Find a Job Through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-golangweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77582) — Make a profile, name your salary, and connect with hiring managers from top employers. Vettery is completely free for job seekers. 

Vettery  

📘 Articles & Tutorials  

[Dependency Injection with Wire](https://scene-si.org/2019/12/11/dependency-injection-with-wire/) — [Wire](https://github.com/google/wire) is a compile-time DI solution built by Google themselves that uses code generation and reflection to produce injection code. 

Tit Petric   

[The Go Runtime Scheduler's Clever Way of Dealing with System Calls](https://utcc.utoronto.ca/~cks/space/blog/programming/GoSchedulerAndSyscalls) — When scheduling goroutines onto processors, Go has an optimistic and an pessimistic approch. In other words, is your processor half full or half empty? 

Chris Siebenmann   

[Processing Parquet Files in Go](https://eltonminetto.dev/en/post/2019-12-09-parquet-golang/) — Parquet is a binary format that stores data in a columnar fashion and is commonly associated with Hadoop. 

Elton Minetto   

[Sell Your API to Millions of Developers with One Integration](https://www.manifold.co/?utm_source=go&utm_medium=newsletter&utm_campaign=dec12) — Manifold helps API-first products distribute their services on the fastest growing cloud platforms. 

Manifold sponsor   

[Go Advanced Concurrency Patterns: Channels](https://blogtitle.github.io/go-advanced-concurrency-patterns-part-3-channels/) — To prove the power of using `select` with channels, Rob rewrites the `sync` package only using those constructs. Part 3 in a series. 

Roberto Clapis   

[Discussing Concurrency, Parallelism, and Async Design](https://changelog.com/gotime/109) — If you’ve ever felt intimidated by Go features like goroutines and channels or just concurrency in general, this will be 50 minutes well spent. 

Go Time Podcast   

[Parsing CSV Files with Go](https://blog.woohoosvcs.com/2019/12/parsing-csv-files-with-golang/) 

David Chapman   

[Going Serverless with OpenFaaS and Go - Building Optimized Templates](https://martinheinz.dev/blog/11) 

Martin Heinz   

[Parsing 18 Billion Lines JSON with Go](https://itnext.io/parsing-18-billion-lines-json-with-go-738be6ee5ed2?) — While this isn’t all about Go, the problem is interesting and using Go at that scale is impressive. 

Roffe  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1576195390/rd5wqyqcqssckk298fcs.png)](https://github.com/cdr/slog)  

[Slog: Minimal Structured Logging Library](https://github.com/cdr/slog) — Features first class `context.Context` and `testing.TB` support, both nice human readable text and machine readable JSON output, a minimal APIU surface, and more. 

Coder   

[go-locale: Cross Platform Locale Detection](https://github.com/Xuanwo/go-locale) — Checks a variety of things from environment variables on Linux to using the Win32 API and more. 

Xuanwo   

[Measure and Improve Go Code Performance With Blackfire.io](https://hello.blackfire.io/go?utm_source=golang_weekly&utm_medium=newsletter&utm_campaign=q4_2019) 

Blackfire.io sponsor   

[golicense: Analyze OSS Dependencies and Licenses from Go Binaries](https://github.com/mitchellh/golicense) — If you need to check licensing compliance, this tool could be invaluable. 

Mitchell Hashimoto   

[MongoDB Go Driver 1.2: The Official MongoDB Driver](https://github.com/mongodb/mongo-go-driver) — The big feature here is support for MongoDB’s new client-side field level encryption (as supported in MongoDB 4.2+) 

MongoDB, Inc.   

[ghw: A Go Hardware Discovery/Inspection Library](https://github.com/jaypipes/ghw) — Find out things about the memory, CPU, storage, network support, and similar things about the host computer. Aimed at Linux, with partial support for macOS. 

Jay Pipes   

[go-circuitbreaker: A Context Aware Circuit Breaker Library](https://github.com/mercari/go-circuitbreaker) 

Mercari, Inc.   

[DockerSlim: A Tool to Slim Down Docker Containers](https://github.com/docker-slim/docker-slim) — A tool that aims to ‘throw away what you don’t need’ both reducing the attack surface of your containers and their size too. 

docker-slim          

Curated by [Glenn Goodrich](https://twitter.com/ruprict) and [Peter Cooper](https://twitter.com/peterc). 

[Change your email address](https://golangweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
