Go
July 4, 2023

Habr. Подборка статей по Go

2023

[2023-01-31] Bittorrent с нуля на Go

[2023-01-19] Что такое фаззинг и зачем он нужен?

[2023-01-19] Fuzzing-тесты в Go после v1.18: знакомство и практика

[2023-06-30] Эффективная работа с битами при помощи Go

[2023-01-13] Эволюция кода: путь к лучшему дизайну

[2023-01-11] Go 1.20 и арена памяти

2022

[2022-07-14] Как мы себя обманываем, только бы продолжать пользоваться Golang

[2022-05-27] Go против Rust — производительность вне конкуренции

[2022-06-13] Возрождение простых сайтов. Статика, 0kB JS, ничего лишнего

[2022-07-18] Предотвращаем утечки памяти в Go, ч. 2. Особенности рантайма

[2022-09-06] Как Go выполняет встраивание

[2022-07-12] Предотвращаем утечки памяти в Go, ч. 1. Ошибки бизнес-логики

[2022-01-17] Делаем асинхронность асинхронной, разбираемся в планировщике Go, ругаем Linux

[2022-11-16] Как сделать программу на Go быстрее на 42%, изменив один символ

[2022-06-30] Что Go грядущий нам готовит? Разбираем долгожданный релиз 1.19

[2022-04-09] Дженерики могут замедлить ваш код на Go

[2022-06-22] Go, Allure и HTTP, или Как мило тестировать HTTP-сервисы на Go

[2022-03-06] Собеседование Golang разработчика (теоретические вопросы), Часть I

[2022-11-23] Полезные ресурсы для погружения в Go: выбор сотрудников Selectel

[2022-10-12] Как запускать SQL в Go с максимальным комфортом

[2022-08-30] Как и почему перешли с Python на Go в основном сервисе рекомендаций Авито

[2022-07-02] Имплементируем WebSocket протокол на Go

[2022-04-01] Вопросы и ответы для собеседования Go-разработчика

[2022-08-26] Есть ли жизнь на Go после C#?

[2022-11-24] Рассматриваем под лупой отладчик Delve для Go-разработчиков

[2022-11-14] Пишем обёртку для API Токийской фондовой биржи на Golang

[2022-12-12] Hashmap(map) по версии Golang вместе с реализацией на дженериках

[2022-04-13] Изменения функции append в Go 1.18

2021

[2021-10-17] Перестаньте врать себе. Я middle, а вам нужен senior

[2021-02-25] Почему язык Go стал стандартом для DevOps-инженеров

[2021-11-22] Доводим распределённые действия до конца с использованием простейшего паттерна Saga

[2021-08-19] Как в восемь раз уменьшить количество DNS-запросов в Go

[2021-05-14] Самописный антиспам-сервис Gotoh, или как мы боролись за «белизну» IP-адресов

[2021-12-28] Почему я перешёл с Python на Go: choose your fighter

[2021-06-02] Дженерики в языке Go

[2021-10-18] Go и MySQL: настраиваем пул соединений

[2021-05-28] Разработка REST-серверов на Go. Часть 1: стандартная библиотека

[2021-08-25] Я сделал StackOverflow из IT-чатов Telegram

[2021-06-17] Разработка REST-серверов на Go. Часть 3: использование веб-фреймворка Gin

[2021-09-05] Сборка собственного RPM-пакета, содержащего простую Go-программу

[2021-01-27] Оптимизация микросервиса на Go на живом примере

[2021-12-01] Микрооптимизация кода на Go на примере простого веб-сервиса

[2021-02-01] Популярные задачи для собеседований бэкенд-разработчиков на Go и их решения

[2021-04-13] Go: распространенные антипаттерны

[2021-06-29] gRPCurl — curl для gRPC-серверов

2020

[2020-06-26] Ozon go school: Как не нужно проводить отбор

[2020-10-02] Коллеги, вы меня огорчаете

[2020-01-25] Почему Rust лидирует в TechEmpower Framework Benchmark

[2020-04-30] Я перехожу на JavaScript

[2020-09-22] eBPF: современные возможности интроспекции в Linux, или Ядро больше не черный ящик

[2020-07-15] Go и кэши CPU

[2020-05-23] GO Scheduler: теперь не кооперативный?

[2020-11-25] Масштабируем WebSocket соединения на Go

[2020-04-14] Унифицируй это: как Lamoda делает единообразными свои Go сервисы

[2020-09-14] Пишем движок полнотекстового поиска на Go

[2020-11-05] Оптимизация работы с PostgreSQL в Go: от 50 до 5000 RPS

[2020-10-29] Система под контролем: как автоматизировать интеграционные тесты

[2020-10-27] Go Channels Internals

[2020-04-15] Модифицирующий MQTT Proxy

[2020-05-15] Go, Vue и 3 дня на разработку: система реального времени для мониторинга пациентов

[2020-12-11] Оптимизация размера Go-бинарника

[2020-02-28] Дзен Go

[2020-08-04] Go-swagger как основа взаимодействия микросервисов

[2020-04-03] Отладка высоконагруженных Golang-приложений или как мы искали проблему в Kubernetes, которой не было

[2020-11-24] Внедряем кросс-платформенные пуш-уведомления: дополнительные возможности

2019

[2019-09-19] Sampler. Консольная утилита для визуализации результата любых shell команд

[2019-07-25] Модели дженериков и метапрограммирования: Go, Rust, Swift, D и другие

[2019-07-24] Какой язык — D, Go или Rust имеет лучшие перспективы заменить C и почему?

[2019-05-16] Bitmap-индексы в Go: поиск на дикой скорости

[2019-09-30] Сложность простоты

[2019-09-26] Внутренности Go: оборачиваем переменные цикла в замыкании

[2019-08-01] Как работать с Postgres в Go: практики, особенности, нюансы

[2019-11-18] Пишем на Go простой балансировщик

[2019-10-07] Зачем нужны дженерики в Go?

[2019-10-29] Работа с ошибками в Go 1.13

[2019-03-16] Beego — это уже не Go

[2019-02-26] Практичный Go: советы по написанию поддерживаемых программ в реальном мире

[2019-09-17] Как не ошибиться с конкурентностью в Go

[2019-01-27] Изучая go: пишем p2p мессенджер со сквозным шифрованием

[2019-02-05] Дефективное встраивание функций в Go

[2019-06-15] Шпаргалка по структурам данных в Go

[2019-02-12] Повышаем информативность ошибок в Go – github.com/ztrue/tracerr

[2019-03-13] Наша проблема c зависимостями

[2019-08-09] Разбираемся с интерфейсами в Go

[2019-10-08] Как мы пересадили всю команду на другой язык за один день (на самом деле нет)

[2019-09-17] Правда ли, что GOPATH и GOROOT больше не нужны?

[2019-08-09] Продуктовая разработка на Go: история одного проекта

[2019-27-27] Как писать Go-пакеты

[2019-06-04] Wasmer: самая быстрая Go-библиотека для выполнения WebAssembly-кода

[2019-11-26] Профилирование кода Go-проекта и решение проблемы с выделением памяти

[2019-12-29] ELFийские трюки в Go

[2019-05-14] LLVM с точки зрения Go

[2019-03-22] GraphQL и Golang

[2019-03-21] Изучаем Go: подборка видеозаписей докладов

[2019-03-07] Механизмы выделения памяти в Go

[2019-07-25] Golang: специфические вопросы производительности

2018

[2018-11-21] Передача данных через анимированные QR на Gomobile и GopherJS

[2018-04-20] Go: Хороший, плохой, злой

[2018-08-05] Крестики-нолики на DNS

[2018-07-04] Рефакторинг программы на Go: ускорение в 23 раза

[2018-12-26] За что я не люблю Go

[2018-12-25] RoadRunner: PHP не создан, чтобы умирать, или Golang спешит на помощь

[2018-04-04] Знакомство с гео-библиотекой S2 от Google и примеры использования

[2018-12-20] Если вы подумываете начать писать на Go, то вот что вам следует знать

[2018-07-12] Centrifugo v2 — будущее сервера real-time сообщений и библиотека для Go

[2018-12-26] Безликий код убьет программирование, и ничего мы с этим не сделаем

[2018-09-02] Обработка ошибок в Go 2

[2018-09-06] bytes.Buffer в Go: оптимизации, которые не работают

[2018-08-13] Знакомство с Go, часть 2: пишем граббер изображений с балансировщиком и извращениями

[2018-06-03] Изучаем многопоточное программирование в Go по картинкам

[2018-06-30] Компилятор Go: язык описания правил SSA оптимизаций

[2018-02-19] Самый медленный способ ускорить программу на Go

[2018-11-10] Контроль консистентности кода в Go

[2018-06-05] Как готовить mysql binlog с go

[2018-08-27] Введение в систему модулей Go

[2018-06-07] Статический анализ в Go: как мы экономим время при проверке кода

[2018-02-20] GCCGO против «стандартной» реализации

2017

[2017-09-19] Go быстрее Rust, Mail.Ru Group сделала замеры

[2017-12-10] Почему дизайн Go плох для умных программистов

[2017-06-28] Миллион WebSocket и Go

[2017-12-07] Отладка злого бага в рантайме Go

[2017-06-19] Архитектура и алгоритмы индексации аудиозаписей ВКонтакте

[2017-05-16] Сервисы на Go: как мы их пишем и поддерживаем

[2017-03-30] Что я изменил бы в Go

[2017-01-03] Современный подход к сборке мусора

[2017-10-29] Как новичок в Go контрибьютил

[2017-05-10] Лекции Техносферы: Программирование на Go

[2017-03-23] Профилирование и оптимизация веб-приложений на Go

[2017-12-28] Обзор реализаций округления в Go

[2017-07-10] Инструменты для разработчика Go: знакомимся с лейблами профайлера

[2017-05-15] Логирование, интерфейсы и аллокации в Go

[2017-03-21] Вызов функций Go из других языков

[2017-02-28] История одного толстого бинарника

[2017-01-17] Создание кастомных Go-профилей с помощью pprof. Запоминаем стеки

[2017-09-04] Создатель Node.js: «Для серверов я не могу представить другой язык кроме Go»

[2017-10-07] Полное руководство по написанию утилиты для Go

[2017-11-28] Как Discord каждый день изменяет размер 150 млн картинок с помощью Go и C++

[2017-09-07] RustGo: вызов Rust из Go с почти нулевым оверхедом

[2017-07-14] На пути к Go 2

[2017-10-03] Зачем в Go амперсанд и звёздочка (& и *)?

[2017-07-03] Многопользовательская игра на Go через telnet

[2017-04-03] Как не наступать на грабли в Go

2016

[2016-04-15] Dcoin на IOS… и Катя. Финал

[2016-01-31] Визуализация concurrency в Go с WebGL

[2016-12-13] Спроси backend-разработчиков Badoo. Часть 1. Платформа

[2016-12-21] Архитектура ассемблера Go

[2016-10-09] 50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

[2016-05-17]Лучшие практики Go, шесть лет в деле

[2016-06-29] Go глазами java программиста

[2016-05-27] Профилирование и оптимизация программ на Go

[2016-08-19] Безопасное использование языка Go в веб-программировании

[2016-07-13] Путь Go: как ускорялась сборка мусора

[2016-08-16] Релиз Go 1.7

[2016-02-26] Go с точки зрения PHP программиста

[2016-08-02] Разбираемся в Go: пакет io

[2016-08-18] Как устроены каналы в Go

2015

[2015-10-08] Перевод: Один год с Go

[2015-02-25] Компилятор Go переписан на Go

[2015-06-06] Разработка OS на Go+asm. Part 0x00, Part 0x01

[2015-02-02] Кросс-компиляция в Go

[2015-01-26] Главное преимущество Go

[2015-06-17] Почему Go и Rust не враги, а друзья

[2015-10-23] С чего начать новичку в Go

[2015-06-19] Организация «чистого» завершения приложений на Go

[2015-09-29] Разработка менеджера закачек на GO

[2015-06-10] gb — менеджмент зависимостей для Go

[2015-11-20] Интервью: Брайан Керниган и Алан Донован

[2015-07-08] Обработка 1 миллиона запросов в минуту c Go

[2015-07-11] Эволюция Go

2014

[2014-09-14] Опыт применения Go в продакшене Яндекса

[2014-07-14] О плюсах и минусах Go

[2014-07-05] TJ Holowaychuk: Прощай Node.js

[2014-04-15] Язык Go для начинающих

[2014-11-18] Golang и ООП

[2014-06-12] Является ли Go языком ООП?

[2014-01-13] Повторное использование кода в Go на примере

[2014-03-13] Используем nginx, docker, skydns и skydock для обновления кода на лету (zero-downtime deployment)

2013

[2013-03-14] Как мы перешли с 30 серверов на 2: Go

[2013-02-27] Протокол Railgun для сжатия трафика

[2013-10-15] Знакомство с Go — пишем граббер веб страниц с многопоточностью и блудницами

[2013-09-27] Go: Два года в продакшне

[2013-10-18] Java vs Go

[2013-12-03] Релиз Go 1.2

[2013-08-24] Написание своего Web-приложения на Go

[2013-01-27] Объектно-дезориентированный язык

2012

[2012-04-05] Go for IT. Часть первая

[2012-04-21] TCP/IP proxy на Go

[2012-04-18] Goblog: Самодельный статический движок для блога на Go

2011

[2011-12-31] Go: производительность горутин