#287 — November 8, 2019 |
Golang Weekly |
Introducing Pkger: Static File Embedding in Go — There are already a few ways to embed static files into Go binaries (such as Packr or Statik) but when the creator of Packr says he’s ‘rethought’ the problem and has come up with a new solution.. I listen! There’s a 20 minute screencast too, if you want a truly complete tour. GitHub repo. Mark Bates |
Go Modules: v2 and Beyond — The last in a series of posts on the official Go blog about using modules, as introduced in Go 1.11 and made a default feature in Go 1.13. On this outing, the focus is on versions and how to create and publish major new versions of your modules. Jean de Klerk and Tyler Bui-Palsulich |
Future-Proof Your Platform with a Video Stack That Scales — Keep up with new devices and new formats without extra work. Mux handles scaling so you don't have to. Mux sponsor |
Staticcheck in Action — An introduction to the static analysis tool Staticcheck for analyzing and then improving Go code. Shawn Smith |
How Many Go Developers Are There? — Russ has an update to some research he did a couple of years ago, complete with a new estimate: “As of November 2019, my best estimate is between 1.15 and 1.96 million.” To the 2.5% of you who subscribe to this newsletter, thank you! 😄 Russ Cox |
Finding a Memory Leak in a Go App with Kir Shatrov |
TiDB in the Browser: Running a Go-Based Database on WebAssembly — An interesting demo. The author wonders if a database like TiDB written in Go can run in a web browser, what about other complex Go apps? Go’s WebAssembly future is looking quite positive. Queeny Jin |
💻 Jobs |
Golang Developer at X-Team (Remote) — Work with the world's leading brands, from anywhere. Travel the world while being part of the most energizing community of developers. X-Team |
Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring — Like coding in Go? We do too. Stream is hiring in Amsterdam. Apply now. Stream |
Find a Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started. Vettery |
📘 Articles & Tutorials |
Separate Your Go Tests with Build Tags — ‘Build tags’ are directives that can be placed at the top of Go source files and used as a way to logically separate tests. Josh Michielsen |
Building Sustainable Microservices, Our Opinions and Advice — A ‘semi opinionated guide’ that answers some questions that Echo is often asked internally by new developers who are new to the company, (micro)services, Go or distributed systems in general. Alex Barlow |
Instrumenting Go Code En Masse via AST Manipulation — With a large number of API handlers to instrument, Mattermost took a novel approach of finding and editing them all. Eli Yukelzon |
GopherCon 2019 Spotlight — What were GopherCon attendees excited about? Mattel, GitHub, Microsoft, and others share Go integrations and their work. Heroku sponsor |
Unit Testing Jamie Thompson |
Managing CPU Load in Golang — Patterns for handling requests, including worker pools, buffered channels, and offloading to third parties. Ellation |
Analyzing Go Executables with JEB — JEB is a commercial reverse engineering tool and it can be used to analyse Go binaries in various ways, as seen here (where the focus is on analyzing malware written in Go). Joan Calvet |
Realizing That Go Constants Are Always Materialized Into Values Chris Siebenmann |
Instrumenting Your Go Distributed Application for Tracing with Jaeger — If you are building an application from microservices, tracing is paramount to production success. Carlos Eduardo |
🛠 Code & Tools |
goque: Persistent Stacks and Queues for Go Backed by LevelDB — Now also supports encoding/decoding objects as JSON which can make storing complex objects easier. Conner Hewitt |
lungoDB: A MongoDB-Compatible Embeddable Database and Toolkit — Imagine something like SQLite but MongoDB flavored. There are numerous possible use cases, well outlined in the README here. Joël Gähwiler |
Go DNS: A Library to Work with DNS from Go — It’s technical and you need to be prepared to dig around a bit but this library supports an incredible amount of DNS related RFCs and features. Miek Gieben |
Speed Up Frontend Development with FaunaDB's Auth and Native GraphQL FaunaDB sponsor |
Stripe CLI: A Command Line Development Environment for Stripe Users — Stripe has become somewhat ubiquitous in the payment processing space and their focus on developers is pretty neat, not least in this new (Go powered!) tool for building and testing integrations. Tomer Elmalem |
sqlhooks: Attach Hooks to Any Gustavo Chaín |
Viper: A Complete Configuration Solution for Go Apps — A mature project used by projects like Hugo, Nanobox and Docker Notary for their configuration needs. Steve Francia |