Go Icon

Go

Go is a programming language built to resemble a simplified version of the C programming language.
266 Stories
All Topics

Go github.com

Use HTTP/2 Server Push to create fast and idiomatic client-driven REST APIs

Around the advent of GraphQL, I found myself asking its proponents if HTTP/2 solves any of the same performance problems. Most of the answers were along the lines of, “it might, but that hasn’t been realized yet.” Well, Vulcain is here to realize it.

Over the years, several formats have been created to fix performance bottlenecks impacting web APIs: over fetching, under fetching, the n+1 problem

Current solutions for these problems (GraphQL, JSON:API’s embedded resources and sparse fieldsets, …) are smart network hacks for HTTP/1. But these hacks come with (too) many drawbacks when it comes to HTTP cache, logs and even security.

Fortunately, thanks to the new features introduced in HTTP/2, it’s now possible to create true REST APIs fixing these problems with ease and class! Here comes Vulcain!

See also their comparison between Vulcain, GraphQL, and API formats.

Jon Calhoun calhoun.io

Why can't we settle on a single application structure in Go?

Go Time panelist Jon Calhoun ruminates on a conversation started on episode 94 of the show:

The goal of this article is it explore why exactly there isn’t a single app structure that is recommended to new Gophers, and the overall goal of this series is help newcomers to Go understand what choices are available to them so they can get started a little easier.

Go github.com

Muon – GPU based Electron on a diet

Muon is a lightweight alternative to Electron written in Golang in about ~300 LoC, using Ultralight instead of Chromium. Ultralight is a cross-platform WebKit rewrite using the GPU to target embeded desktop applications that resulted in a fast, lightweight, and low-memory HTML UI solution that blends the power of Chromium with the small footprint of Native UI.

Between this, NodeGui, and Catalina’s support for React Native, Electron is getting squeezed on all sides.

Go github.com

Rudder is an open source Segment alternative

I’ve been a big fan of Segment since way back before they became our sponsors. The adapter pattern for marketing/analytics tools is a great idea and they’ve executed on it very well. I’m also a big fan of open source alternatives to commercial products. 😀

If the “Why Rudder?” section of the README (privacy & security, processing flexibility, unlimited events) has you nodding in agreement, this is worth a deeper look.

Rudder is an open source Segment alternative

JSON github.com

JSONC is a superset of JSON which supports comments

JSON formatted files are readable to humans but the lack of comments decreases readability. With JSONC, you can use block (/* */) and single line (//) comments to describe the functionality. Microsoft VS Code also uses this format in their configuration files like settings.json, keybindings.json, launch.json, etc.

This is a Go-only implementation, but the concept is portable to any language (hint, hint).

JSONC is a superset of JSON which supports comments

Go Time Go Time #98

Generics in Go

Mat, Johnny, Jon, and special guest Ian Lance Taylor discuss generics in Go. What are generics and why are they useful? Why aren’t interfaces enough? How will the standard library change if generics are added to Go? How has the community contributed to generics? If generics are added, how will this negatively affect the language?

Go blog.arduino.cc

TinyGo on Arduino

Arduino announced they now work with TinyGo. To celebrate, they did a Q&A with Ron Evans on the Arduino blog.

Why choose TinyGo over other languages? If software is eating the world, then Go is eating the world of software. The popularity of Go is still rapidly expanding, and TinyGo helps bring the new “enterprise standard” language down to the smallest of processors. Also as a compiled language, TinyGo can offer substantially better performance and size efficiency than that of interpreted languages like JavaScript and Python.

If you haven’t yet, listen to our recent conversation with Ron Evans at OSCON 2019 to hear more about how “Go is eating the world of software.”

Go Time Go Time #94

Structuring your Go apps

Jon, Mat, Johnny, and special guest Cory LaNou discuss the ins and outs of structuring Go programs. Why is app structure so important? Why is it hard to structure Go apps? What happens if we get it wrong? Why do we confuse folder structures with application design? How should a new Go app be structured?

0:00 / 0:00