Go Library
4.11K subscribers
20 photos
1 video
63 files
800 links
Go (Golang) Library

Реклама: @ostinostin
Контент: @mxssl
Download Telegram
Things You Never Wanted To Know About Go Interfaces

Lately I’ve been finding myself writing a bit of Go, and I’ve picked up various fun “layout secrets” that help inform how I write code to minimize hidden allocations, and generally be kind to the optimizer. This article is a series of notes on the topic.

This post is about Go implementation details, so they can probably break you at any time if you rely on it. On the other hand, Hyrum’s law is a bitch, so taking your chances may not be that bad. After all, they’re probably never going to be able to properly clean up the mess people made with //go:linkname with runtime symbols…

As with many of my other posts, I’ll assume a basic familiarity with being able to read assembly. I’m using x86 for this post, but it’s worth looking at my RISC-V post for a refresher.


https://mcyoung.xyz/2024/12/12/go-abi
netpoll

Netpoll is a high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance.


https://github.com/cloudwego/netpoll
Go 1.25 interactive tour

Go 1.25 is scheduled for release in August, so it's a good time to explore what's new. The official release notes are pretty dry, so I prepared an interactive version with lots of examples showing what has changed and what the new behavior is.


https://antonz.org/go-1-25
JSON evolution in Go: from v1 to v2

https://antonz.org/go-json-v2
Finding performance problems by diffing two Go profiles

https://www.dolthub.com/blog/2025-06-20-go-pprof-diffing
Counter Service: How we rewrote it in Rust

The Integrity Data Platform (IDP) team decided to rewrite one of our heavy Queries Per Second (QPS) Golang microservices in Rust. It resulted in 70% infrastructure savings at a similar performance, but was not without its pitfalls. This article will elaborate on:

- How we picked what to rewrite in Rust.
- Approach taken to tackle the rewrite.
- The pitfalls and speed bumps along the way.
- Was it worthwhile?


https://engineering.grab.com/counter-service-how-we-rewrote-it-in-rust
Comparing Rust, JavaScript and Go for authoring WASM Components

https://obeli.sk/blog/comparing-rust-javascript-and-go-for-authoring-wasm-components/
Don't mock the database: Data fixtures are parallel safe, and plenty fast

https://www.crunchydata.com/blog/dont-mock-the-database-data-fixtures-are-parallel-safe-and-plenty-fast
Comparing gzip, brotli and zstd compression in Go

https://blog.kowalczyk.info/a-5hum/compressing-for-the-browser-in-go.html
fang

The CLI starter kit. A small, experimental library for batteries-included Cobra applications.


https://github.com/charmbracelet/fang
unregistry

Push docker images directly to remote servers without an external registry


https://github.com/psviderski/unregistry
makefile-graph

makefile-graph is a Go module and CLI application, which parses GNU Make's internal database and generates a graph representing the relationships between the discovered Makefile targets.


https://github.com/dnaeon/makefile-graph
lazycontainer

A terminal UI to manage Apple Containers without stress. Written in Go with Bubbletea


https://github.com/andreybleme/lazycontainer
Generic interfaces

There is an idea that is not obvious until you hear about it for the first time: as interfaces are types themselves, they too can have type parameters. This idea proves to be surprisingly powerful when it comes to expressing constraints on generic functions and types. In this post, we’ll demonstrate it, by discussing the use of interfaces with type parameters in a couple of common scenarios.


https://go.dev/blog/generic-interfaces
Тест для Golang-разработчиков, проверьте свои знания, готовы ли вы к обучению на курсе.

💻 Ответьте на 20 вопросов за 30 минут и проверьте, готовы ли вы к обучению на онлайн-курсе «Golang Developer. Professional» от OTUS. Сейчас Go становится все востребованнее, благодаря своей производительности, масштабируемости и экосистеме.

После 5 месяцев обучения вы сможете:
— Писать production-ready код, многопоточные и конкурентные программы.
— Понимать синтаксис и внутреннее устройство языка Go.
— Разворачивать микросервисы с помощью Docker.
— Проектировать и реализовывать микросервисную архитектуру на Go.

Также вас ждет прокачка навыков на реальных коммерческих кейсах и под руководством экспертов в этой области. Старт курса 30 июля, успейте на курс. Возможна рассрочка.

👉 ПРОЙТИ ТЕСТ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru, erid: 2Vtzqxbv3Mz
This media is not supported in your browser
VIEW IN TELEGRAM
Для Серёжи рабочий день — не шум принтера и звук кофемашины. А друзья в команде, посиделки после работы и проекты по душе 😀

Сейчас Серёжа делает бэкенд всей VK более отказоустойчивым, и в его команде не хватает Go-разработчика, чтобы затащить эту цель. Возможно, это именно вы: откликайтесь, если откликается!