golang_books | Unsorted

Telegram-канал golang_books - Golang Books

17178

Библиотека Golang разработчика По всем вопросам- @haarrp @Golang_google - Golang @golangl - golang chat @GolangJobsit - golang channel jobs @golangtests golang tests @itchannels_telegram - 🔥лучшие ит-каналы № 5032829002

Subscribe to a channel

Golang Books

Apache Kafka 4.x - продвинутый бесплатный практический курс 2026 года

https://github.com/justxor/KAFKAFREECOURSR/tree/main

Читать полностью…

Golang Books

🔥 Один из лучших обучающих курсов на StepiK по SQL

SQL можно знать годами и всё равно теряться, когда запрос внезапно начинает тормозить в проде.

Этот курс про уровень, где ты не просто пишешь SELECT, а понимаешь, что происходит внутри MySQL, почему запрос работает медленно и как ускорить его без новых проблем. Здесь разбираются EXPLAIN, индексы, CTE, оконные функции, транзакции, аналитические паттерны, legacy SQL и работа с AI-ассистентами.

Каждый урок - с практикой и реальными SQL-задачами на MySQL 8 с автопроверкой.

После курса ты сможешь увереннее разбирать чужой код, находить узкие места и предлагать решения, которые действительно работают.

Для подписчиков скидка - 49% в течение 2 суток: https://stepik.org/a/298827/

Читать полностью…

Golang Books

Участвуй во всероссийском ИТ-чемпионате МТС True Tech Champ 2026 c призовой фондом 10 250 000 рублей.

Если тебе нравятся алгоритмы, структуры данных и задачи на чистую логику — участвуй в алгоритмическом треке с индивидуальным зачетом.

Решай задачи разного уровня сложности: от базовых до тех, что проверяют скорость мышления и умение оптимизировать решения за ограниченное время.

В финале лучшие 120 участников алгоритмического трека сразятся в лайв-кодинге за шесть призовых мест и 2 750 000 рублей. Всех финалистов ждут:
— Лимитированный мерч;
— Сертификаты об участии;
— Масштабное мероприятие с выступлениями хэдлайнеров и фестивальными активностями.

Успей зарегистрироваться и пройти отборочный этап до 27 сентября.

Erid: 2VSb5xcjq1c

Читать полностью…

Golang Books

🔥 Хочешь расти в IT быстрее остальных? Перестань учиться в одиночку

Можно годами смотреть курсы, читать документацию и всё равно топтаться на месте.

А можно попасть в правильное окружение, где каждый день обсуждают новые инструменты, вакансии, реальные кейсы, ошибки и то, что уже завтра станет стандартом.

Здесь собраны папки и каналы по разным направлениям IT, чтобы ты быстрее находил нужных людей, идеи и полезный контент - без бесконечного поиска.

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: /channel/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_ci
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: /channel/gamedev
Haskell: t.me/haskell_tg

Собеседования и карьера:

DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview

Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка Frontend: /channel/addlist/mzMMG3RPZhY2M2Iy

Полезное сверху:

ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: /channel/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy

Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg

Подпишись и сохрани, здесь регулярно появляются новые подборки, инструменты и материалы, которые реально помогают расти быстрее.

Читать полностью…

Golang Books

А что, если посмотреть на AI-агентов не как на отдельные приложения, а как на полноценную инфраструктуру?

Именно такую платформу сейчас строят в Ozon Tech. Базовая платформа и LLM-шлюз уже есть, а дальше — SDK, Tool Hub, оркестрация, инструменты observability и evaluation для AI-агентов.

Под задачу собирают новую команду и ищут Senior-разработчиков. Стек не принципиален — важнее сильный инженерный опыт и интерес к AI.

→ подробнее о вакансии

Читать полностью…

Golang Books

Spinifex - open-source платформа с AWS-совместимым API для запуска инфраструктуры на собственном железе.

Проект позволяет поднимать сервисы, похожие на:

- EC2
- VPC
- S3
- EBS

Всё работает на bare metal и остаётся под полным контролем владельца инфраструктуры.

Spinifex рассчитан на сценарии, где обычное облако использовать нельзя или нежелательно:

- edge-площадки
- частные дата-центры
- среды с плохой связью
- изолированные и высокорисковые инфраструктуры

Идея простая: получить привычную облачную модель AWS, но без зависимости от публичного облака.

Проект написан на Go и открыт на GitHub:

https://github.com/mulgadc/spinifex

Читать полностью…

Golang Books

Go: горутина - это не поток ОС.

В хорошем разборе func25 показано, что go doSomething() не вызывает функцию напрямую. Go создаёт новую goroutine, помещает её в очередь планировщика и сразу продолжает выполнение текущего кода. Поэтому main может завершиться раньше, чем новая goroutine вообще получит CPU.

Из-за этого time.Sleep() - плохой способ ждать завершения работы. Для синхронизации нужен, например, sync.WaitGroup.

Почему goroutine дешевле системного потока:

- стартует с маленьким стеком, минимум около 2 КБ
- стек растёт по мере необходимости
- создание не требует отдельного системного потока
- Go runtime сам распределяет множество goroutine по меньшему числу OS threads
- переключение между goroutine часто обходится дешевле переключения потоков через ядро ОС
-
Отдельно важно понимать GOMAXPROCS: он ограничивает число потоков, которые могут одновременно выполнять Go-код.

С Go 1.25 runtime также учитывает CPU-лимиты контейнера. Например, на хосте может быть 64 CPU, но при лимите контейнера в 2 CPU GOMAXPROCS будет около 2.
И ещё одна важная деталь:

GOMAXPROCS(1) убирает параллельность, но не конкурентность.

Несколько goroutine всё равно существуют одновременно и могут чередоваться, просто в конкретный момент Go-код выполняет только одна из них.

https://func25.dev/posts/go-goroutines-basics/

Читать полностью…

Golang Books

Go: почему код может «работать», но всё равно быть неправильным

Хороший разбор Go memory model и data races без академической перегрузки.

Внутри:

— почему одна goroutine не обязана сразу видеть изменения другой
— как компилятор и CPU могут переупорядочивать операции
— что на самом деле гарантирует happens-before
— когда нужны atomic, mutex и channels
— почему «у меня всё работает» ещё не означает, что код корректен

Особенно полезно тем, кто пишет конкурентный Go-код и хочет понимать не только API синхронизации, но и то, что реально происходит с памятью.

https://func25.dev/posts/go-memory-visibility/

#golang #go

Читать полностью…

Golang Books

👣 Alibaba выкатила skill-up - инструмент на Go для тестирования и прокачки skills у AI-агентов.

Вместо папок с разрозненными промптами, скриптами и eval-файлами здесь используется декларативный YAML-формат. Skill можно описать как конфиг и гонять одинаково локально или в CI.

Поддерживаются три стратегии оценки: обычные правила, скрипты и judge на базе другого агента. Есть совместимость с форматом Anthropic и импорт evals.json.

Здесь есть интересный цикл улучшения: skill-up может находить провальные кейсы, помогать расширять eval-набор и итеративно чинить сам skill.

То есть идея примерно такая: написал skill → прогнал eval → увидел, где агент ломается → обновил → снова прогнал.

https://github.com/alibaba/skill-up

#AI #Golang #AgenticAI #DevOps

Читать полностью…

Golang Books

🔥 Нашёл отличный бесплатный ресурс по Harness Engineering - тому, что делает coding agents реально надёжными

Курс посвящён не очередному «как написать хороший промпт», а инженерии окружения вокруг Codex, Claude Code и других AI-агентов.

Разбирают:

* почему сильные агенты всё равно проваливают задачи;
* как сохранять контекст между длинными сессиями;
* зачем нужны AGENTS.md, feature_list.json и progress-файлы;
* как не дать агенту объявить задачу завершённой слишком рано;
* как встроить тестирование, observability и контроль в сам harness.

Есть теория, практические проекты и готовые шаблоны для репозиториев. Причём среди базовых материалов авторы прямо ссылаются на подходы OpenAI и Anthropic.

Главная идея очень правильная:

не пытаться бесконечно делать модель умнее промптами, а построить вокруг неё систему, в которой ошибаться сложнее.

И да - есть русская версия.

https://walkinglabs.github.io/learn-harness-engineering/ru/

Читать полностью…

Golang Books

🚀 Go 1.27: что нового в следующем большом обновлении Go

Go продолжает развивать не синтаксис ради синтаксиса, а то, что реально влияет на production-сервисы.

Главные изменения:

🧬 Generic methods

Методы смогут иметь собственные type parameters:


type Box[T any] struct {
Value T
}

func (b Box[T]) Map[R any](fn func(T) R) Box[R] {
return Box[R]{fn(b.Value)}
}


Это открывает новые возможности для обобщённых библиотек.


⚡ Улучшения работы с памятью

Компилятор получил оптимизации для маленьких аллокаций.

Результат:

- меньше overhead при создании объектов;
- быстрее работа с большим количеством мелких структур;
- улучшения для allocation-heavy приложений.


📦 Новый encoding/json/v2

Появляется экспериментальная новая версия JSON-пакета:


import "encoding/json/v2"


Цель - решить старые ограничения encoding/json и сделать работу с JSON более современной.

🔍 Улучшения runtime

Изменения затронули:

- профилирование goroutine;
- trace;
- таймеры;
- внутренние оптимизации runtime.

Go 1.27 показывает привычный подход команды Go:

меньше магии - больше предсказуемости и производительности в production.

Не революция, а очередная шлифовка языка, который уже лежит в основе Kubernetes, облаков и высоконагруженных систем.

Подробнее:
https://victoriametrics.com/blog/go-1-27/

Читать полностью…

Golang Books

📚 Бесплатный учебник по математике для Computer Science и Machine Learning обновили — теперь это более 2200 страниц.

Algebra, Topology, Differential Calculus, and Optimization Theory for Computer Science and Machine Learning — фундаментальный разбор математики, которая стоит за современными алгоритмами:

— линейная и абстрактная алгебра;
— топология и геометрия;
— дифференциальное исчисление;
— теория оптимизации;
— математическая база ML.

Полезный справочник для разработчиков, ML-инженеров и исследователей, которым нужно понимать методы глубже уровня готовых библиотек.

Скачать PDF:
https://cis.upenn.edu/~jean/gbooks/geomath.html

Читать полностью…

Golang Books

Rust, который наконец становится понятным 🦀

Давно хочешь выучить Rust, но ownership, borrowing и lifetimes выглядят как отдельный вид боли?

Этот курс проведёт тебя с самого начала до уровня, где ты уже пишешь реальные системные и сетевые программы.

Ты разберёшь:
Ownership → Borrowing → ошибки → коллекции → Generics → Traits → модули → тесты → сетевой код

Никакого бесконечного чтения документации. После каждого урока ты сразу пишешь код, проходишь тесты и решаешь задачу с автопроверкой.

🔥 Rust с нуля
🔥 5–6 часов в неделю
🔥 Практика после каждого урока
🔥 Подойдёт после Python, JavaScript, Java и других языков
🔥 Можно начать сразу

В конце у тебя будет понимание Rust, с которым уже можно писать быстрые backend-сервисы, сетевые приложения и системные утилиты, а не смотреть на borrow checker как на врага.

Пора добавить Rust в свой стек. Начинай курс и пиши первый код уже сегодня: https://stepik.org/a/294885/

Читать полностью…

Golang Books

Каждый год в середине лета мы с друзьями собираемся на E-CODE. Ещё относительно молодая конфа Ozon Tech стала уже своего рода легендой. Не удивительно: хардовость официальной части здесь не уступает громкости афтерпати.

На E-CODE 2026 нас по части бэкэнда ждут:

• Runtime Async с его + и –
• трассировка с eBPF
• ускорение на SIMD
• построение кастомной real-time системы видеоаналитики
• сравнительный анализ алгоритмов сборки мусора

Фишка этого года — брейнринг разработчиков и ИИ. Эксперты разберут сложные кейсы и сравнят свои подходы с тем, что предложит машина. Победителя выберет зал.

Регистрируйтесь сейчас, чтобы услышать это всё вживую: https://ecode.ozon.tech/

12 и 13 сентября, Москва. До встречи на E-CODE!

Читать полностью…

Golang Books

Как LLM генерирует ответ: вся магия - в одном цикле

Вышло понятное введение в инференс - процесс, который происходит, когда уже обученная модель отвечает на запрос.

Упрощённо работу LLM можно представить так:


nextToken(input, frozenWeights) → token


Модель получает текст и неизменяемые веса, предсказывает следующий токен, добавляет его к контексту и повторяет вычисление:


prompt → token → token → token → ...


В статье по шагам разобраны:

- токенизация входного текста;
- преобразование токенов в числовые векторы;
- получение оценок для возможных продолжений;
- выбор токена через temperature, top-k и top-p;
- KV-кэш, который не даёт пересчитывать весь контекст заново;
- загрузка весов в оперативную память и VRAM.

Отдельная часть посвящена формату GGUF. Один такой файл может содержать почти всю модель: веса, архитектуру, гиперпараметры, словарь токенизатора и шаблон чата.

Автор объясняет механику на примере llama.cpp и показывает фундамент для локального запуска моделей из Go через Yzma и Kronk.

https://internals-for-interns.com/posts/go-ai-inference-what-is-inference/

#golang #ai #llm #inference

Читать полностью…

Golang Books

🔥 Большой гайд по миграции с Go на Rust - без банального «Rust просто быстрее»

Главная мысль: для backend-команд переход обычно упирается не в скорость, а в гарантии корректности, runtime trade-offs и ergonomics.

Внутри подробно сравниваются:

go build → cargo build
go test → cargo test
go vet → cargo clippy
nil → Option<T>
error → Result<T, E>
interfaces → traits
goroutines → async/await
-race → compile-time ограничения через Send / Sync

Отдельно хорошо показано, где Rust действительно выигрывает: data races, lifetime ресурсов, typed errors, отсутствие GC-пауз и более жёсткие гарантии компилятора.

Но автор не агитирует переписывать всё подряд: для большинства backend-сервисов Go остаётся достаточно быстрым и очень удобным. Rust имеет смысл там, где цена runtime-багов уже выше, чем цена более сложной разработки.

Есть и практический раздел про постепенную миграцию сервисов, а не «rewrite from scratch».

https://corrode.dev/learn/migration-guides/go-to-rust/

Читать полностью…

Golang Books

🔥 Как Kronk управляет локальными LLM и не убивает VRAM

Kronk — Go SDK и model server поверх llama.cpp, который позволяет запускать модели локально прямо внутри Go-приложения без Python-стека и отдельного inference-сервера. :contentReference[oaicite:0]{index=0}

Самое интересное — model management.

Когда вы загружаете модель, системе мало просто открыть GGUF. Нужно понять:

модель → файлы → параметры железа → доступная RAM/VRAM → context size → конфигурация запуска

Kronk автоматически подбирает настройки под конкретное железо и учитывает память не только под веса модели, но и под KV cache, compute buffers и параллельные запросы. :contentReference[oaicite:1]{index=1}

Внутри также есть:

- continuous batching
- общий экземпляр весов для нескольких запросов
- отдельный KV cache для каждой активной сессии
- кеширование уже обработанного контекста
- автоматическая загрузка совместимых llama.cpp библиотек и моделей

В итоге приложение работает с локальной LLM почти как с обычным API, а большая часть низкоуровневой возни с памятью, загрузкой и inference остаётся внутри Kronk.

https://internals-for-interns.com/posts/kronk-model-management/

Читать полностью…

Golang Books

🔥 Самые мерзкие вопросы по Go, которые легко завалят даже сильного разработчика

Не про slice и goroutine, а про реально подкапотные вещи.

Например:

- как вызвать приватную функцию из другого пакета через //go:linkname
- почему два new(struct{}) могут иметь одинаковый адрес
- как получить ID текущей goroutine, хотя нормального API для этого нет
- чем на самом деле отличаются panic, fatal и throw
- почему concurrent read/write в map может завершить процесс через fatal
- почему recover() в родительской goroutine не поймает panic из дочерней
- почему map после delete не обязательно отдаёт память обратно
- как defer может изменить именованное возвращаемое значение
- почему len(slice) возвращает int, а не uint
- почему Go plugins настолько неудобны, что Terraform предпочёл gRPC
- как заставить generic-функцию работать с методами на pointer receiver, сохранив []T
- почему перестановка полей структуры может уменьшить её размер с 24 до 16 байт
- когда Go может девиртуализировать вызов интерфейса
- что обычно быстрее: atomics, mutex или channels

Хороший пример с layout:


type X struct {
a bool
b bool
c int32
d int64
e bool
}


может занимать 24 байта.

А если расположить поля так:


type Y struct {
d int64
c int32
a bool
b bool
e bool
}


получится уже 16 байт из-за меньшего padding.

И ещё один важный момент: panic внутри отдельной goroutine нельзя поймать recover() из вызывающей goroutine. Если panic не обработан там, где возник, процесс завершится.

Такие вопросы почти не встречаются в обычной разработке, но отлично показывают, насколько глубоко человек понимает runtime, memory layout, compiler optimizations и concurrency в Go.

Читать полностью…

Golang Books

✔️ Госсектор США переходит на коммерческие тарифы OpenAI

OpenAI закрывает пилотную программу для федеральных ведомств, по которой доступ к её технологиям стоил 1 доллар в год. С 1 октября вступит в силу двухлетний контракт - чиновники перейдут на оплату по факту потребления со скидкой 50% от стандартного прайса.

По данным Управления общих служб правительства США, за год пилота доступ к ChatGPT получили 3,5 млн госслужащих, а заявленная экономия бюджета за это время составила 1,4 млрд долларов.

Ожидается, что переход на новые тарифы упростит ведомствам внедрение и использование будущих моделей OpenAI.
bloomberglaw.com

✔️ Palantir и Nebius объединят инфраструктуру

Компании договорились развернуть платформу Palantir AIP на мощностях Nebius AI Cloud. Расчёт на госсектор и корпоративных клиентов с жёсткими требованиями к локализации данных.

Клиенты Palantir получат доступ к европейским GPU-кластерам Nebius для распределённого обучения и инференса, с возможностью разворачивать изолированные ИИ-контуры по стандартам GDPR.

Аналитические и агентные инструменты Palantir теперь работают на дата-центрах Nebius. Основные заказчики - оборонные, финансовые и промышленные предприятия.
nebius.com

✔️ Экс-глава Sora и сооснователь DreamWorks запускают стартап по генерации видео

Билл Пиблз, бывший руководитель проекта Sora в OpenAI, сооснователь DreamWorks Джеффри Катценберг и экс-финансовый директор Dropbox Суджай Джасва запускают компанию для обучения собственных моделей видеогенерации под профессиональную киноиндустрию.

Проект пока привлекает финансирование, идут переговоры с венчурными фондами. Название и целевая оценка не раскрываются.

Техническое направление возглавил Пиблз - один из авторов Diffusion Transformer, архитектуры, лежащей в основе Sora и большинства современных видеогенераторов.

Из OpenAI он ушёл в апреле этого года, чтобы заниматься исследованиями в видеосинтезе вне жёстких продуктовых графиков корпорации.
theinformation.com

✔️ Anthropic следит за анти-ИИ активистами

По данным The American Prospect, служба безопасности Anthropic отслеживает протестные движения и анти-ИИ активистов с помощью инструментов сбора сведений из открытых источников и коммерческой платформы анализа рисков Samdesk.

Согласно расследованию издания, аналитики компании следят за перемещениями участников акций в реальном времени, ведут списки лиц, представляющих интерес, и прогнозируют инциденты рядом с офисами или топ-менеджерами. Собранные сведения передаются в полицию США.

Отдельно The American Prospect указывает на случаи, когда Anthropic сообщала правоохранителям об угрозах от пользователей в переписке с Claude, но отказывалась выдавать логи чатов, ссылаясь на политику приватности.
prospect.org

✔️ Вышло приложение Gemini для Windows

Google выпустила десктопный клиент Gemini для Windows 10 и 11. Интерфейс работает компактным оверлеем поверх активных окон, вызывается сочетанием Alt + Space.

В полноэкранном режиме приложение интегрируется с Gmail и Google Drive, а многоэтапные задачи можно делегировать агенту Gemini Spark.

Кроме работы с текстом, клиент генерирует изображения через Nano Banana и видео через Gemini Omni. Работает в фоне и уже доступно для скачивания.
blog.google

@ai_machinelearning_big_data

#news #ai #ml

Читать полностью…

Golang Books

Go 1.27: 20 готовых примеров с кодом для продвинутого разработчика

В статье – примеры для разработчика, который уже пишет сервисы на Go: ограничение конкурентности, владение памятью, отмена операций, строгий разбор входных данных и диагностика. Некоторые API появились раньше, но остаются актуальными. Отдельно отмечены возможности Go 1.27.

Каждый блок Go – самостоятельный файл отдельного пакета. Примеры 17–19 нужно сохранить с суффиксом _test.go; остальные – с .go. Для запуска используйте модуль с go 1.27.0 и toolchain Go 1.27.1. Внешние зависимости для компиляции не нужны; пример транзакции предполагает, что приложение передаёт уже настроенный *sql.DB.

https://uproger.com/go-1-27-20-gotovyh-primerov-s-kodom-dlya-prodvinutogo-razrabotchika/

Читать полностью…

Golang Books

ХОЧЕШЬ ПОВЫСИТЬ ГРЕЙД В 2026 ГОДУ? 🚀

Чтобы стать Senior Golang разработчиком сегодня, нужно не только знать язык программирования и фреймворки. Нужно уметь строить гибкую архитектуру приложения, которую легко тестировать и менять под задачи бизнеса. Стань экспертом в построении гибкой архитектуры приложения!

👉 Стартуем 9 сентября.

Курс ведет действующий архитектор и Principal Engineer Кирилл Ветчинкин.

Ты научишься:
✅ Разбивать приложение на слои в соответствии с Clean Architecture
✅ Формировать Domain Model и применять тактические паттерны DDD
✅ Реализовывать Use Case как Command/Query
✅ Делать синхронные и асинхронные интеграции, не загрязняя ядро приложения
✅ Писать 3 вида тестов для разных слоев приложения

Полная программа ТУТ 👉 https://microarch.ru/courses/ddd/languages/go?utm_source=posev&amp;utm_medium=erid:2Vtzqxks7KR&amp;utm_campaign=1

А главное — ты с нуля разработаешь и запустишь микросервис, который максимально приближен к реальности "Диспетчеризация заказов на курьеров". Это будет крутым проектом в портфолио или основой для рабочих задач.

А еще:
✅ Проверим все домашки
✅ Поддержим в чате
✅ Проведем живые разборы
✅ Ответим на все вопросы

📕 Сертификат об участии по итогам прохождения курса.

🔥 Не откладывай свой рост на потом: https://microarch.ru/courses/ddd/languages/go?utm_source=posev&amp;utm_medium=erid:2Vtzqxks7KR&amp;utm_campaign=1

Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2Vtzqxks7KR

Читать полностью…

Golang Books

Утёкшие горутины теперь ищет сборщик мусора. Проверил, где он молчит

Пятьдесят из шестидесяти трёх горутин в моём тестовом сервисе не проснутся никогда. Я узнал это одной командой, без чтения дампов и без гадания по стекам.

19 августа вышел Go 1.27, и в нём из эксперимента вышел профиль goroutineleak. В релиз-ноутах ему отведено полтора абзаца, что для такой штуки маловато. Я собрал тулчейн, написал под него десяток мелких программ и полез в runtime смотреть, как это устроено внутри. Ниже то, что получилось.

https://habr.com/ru/articles/1076654/

Читать полностью…

Golang Books

🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку

Окружение решает больше, чем кажется.

Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: /channel/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: /channel/+S4hinvO3QI43ZjNi
Kubernetes: t.me/kubernetc
GameDev: /channel/gamedev
Haskell: t.me/haskell_tg

Собеседования и карьера:

DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview

Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка Frontend: /channel/addlist/mzMMG3RPZhY2M2Iy

Полезное сверху:

ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: /channel/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy

Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg

Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.

Читать полностью…

Golang Books

🐹 В Kubernetes Go-сервис может иметь лимит `2 CPU` и при этом вести себя так, будто у него 64 ядра.

До Go 1.25 GOMAXPROCS по умолчанию ориентировался на CPU хоста, а не на cgroup-лимит контейнера. На ноде с 64 ядрами pod с limits.cpu: "2" мог получить GOMAXPROCS=64.

И вот тут начинается неприятное: Go scheduler создаёт слишком много P, быстро выжигает CPU-квоту контейнера, после чего Linux начинает throttling до следующего CFS-периода. Средняя загрузка CPU при этом может выглядеть нормально, а p99 latency улетает вверх.

До Go 1.25 проблему обычно решали через uber-go/automaxprocs, который считывал cgroup quota и выставлял корректный GOMAXPROCS.

Начиная с Go 1.25 runtime умеет делать это сам: читает CPU limit контейнера и автоматически подстраивает GOMAXPROCS. Причём значение может обновляться, если лимит контейнера изменился.

Но есть ловушка: если в Deployment остался старый GOMAXPROCS=8 или код вручную вызывает runtime.GOMAXPROCS(), новый container-aware механизм уже не сработает.

После миграции стоит проверить:


grep -r "GOMAXPROCS" deploy/ k8s/ helm/
grep -rn "runtime.GOMAXPROCS" .
grep -rn "automaxprocs" .


И логировать на старте:


log.Printf("NumCPU=%d GOMAXPROCS=%d",
runtime.NumCPU(),
runtime.GOMAXPROCS(0),
)


Для pod с лимитом 2 CPU на 64-ядерной ноде нормальная картина в Go 1.25+:

NumCPU=64 GOMAXPROCS=2

Редкая мелочь в runtime, которая может напрямую влиять на tail latency продового Go-сервиса.

Статья:
https://dev.to/gabrielanhaia/gomaxprocs-is-lying-to-your-kubernetes-pod-costing-you-cpu-1a0c

Читать полностью…

Golang Books

Вам доклады по Go или Java? VK приглашает на митап с двойной начинкой
26 августа VK собирает Go- и Java-инженеров, чтобы прокачать знания.

В программе два трека — Go и Java, по три доклада в каждом.

Трек Go:
• «Компиляция Go в динамическую либу, или как мы ускорили выкатку фичи в два раза, но нам не понравилось», Михаил Кичигин, бэкенд-разработчик, Avito Tech
• «Go-платформа VK: как мы построили единую основу для создания Go-сервисов», Александр Апанасенко, руководитель команды SDK Backend, VK
• «Почтальон от Kubernetes до Palo Alto. Как осуществляется доставка информации об адресах», Дарья Кулькина, бэкенд-разработчик, Точка Банк

Трек Java:
• «Перформанс-трюки в поисковой платформе Ozon», Пётр Портнов, ведущий разработчик среднего поиска, Ozon
• «Архитектура современного движка платёжной системы и переход к новой архитектуре», Игорь Крикунов, технический лидер разработки DBC, Альфа-Банк
• «Переход от федерации S3-кластеров в пользу коммунального и мультитенантного кластера», Кирилл Боблак, ведущий разработчик One-cloud, VK

А ещё будет мастер-класс по прокачке навыка, который сделает вас звездой любого вечера, и афтепати, чтобы обсудить доклады в неформальной обстановке.

Встречаемся в 17:00, начало в 18:00. Участие бесплатное, регистрация обязательна.

Читать полностью…

Golang Books

🐹 `go func()` без контроля - тихая мина в продакшене

Fire-and-forget выглядит удобно: запустили горутину и сразу вернули ответ. Но под нагрузкой такие задачи начинают бесконтрольно множиться, наследуют уже отменённый request.Context(), теряются при остановке сервера, а одна паника может уронить весь процесс.

Практичный вариант - отправлять фоновые задачи в небольшой worker pool:

- фиксированное число воркеров ограничивает параллелизм;
- буфер создаёт backpressure вместо бесконечного роста горутин;
- recover изолирует панику отдельной задачи;
- каждая задача получает собственный timeout;
- graceful shutdown завершает уже принятые задачи перед выходом.

Важная деталь: сервер нужно остановить раньше пула. Тогда новые запросы больше не создают задачи, а очередь спокойно опустошается.

Но это всё ещё in-memory решение. При падении процесса очередь пропадёт. Для критичных задач, повторных попыток и гарантированной доставки нужен полноценный durable queue.

Главное правило Go остаётся прежним:

не запускайте горутину, пока не понимаете, кто и как её остановит.

https://rednafi.com/go/supervised-fire-and-forget/

#Go #Golang #Concurrency #Backend #Programming

Читать полностью…

Golang Books

IRIS - open-source автодополнение на Go, которое рисует меню подсказок прямо внутри TTY.

Инструмент индексирует историю команд и aliases, после чего предлагает подходящие команды в реальном времени. Работает на Linux и macOS, включая SSH, Tmux и обычные виртуальные терминалы.

Внутри - один нативный Go-бинарник:

https://github.com/versenilvis/iris

Читать полностью…

Golang Books

🐧 Нашёл легендарную книгу по внутренностям Linux в открытом PDF

Understanding the Linux Kernel, Third Edition Даниэля Бове и Марко Чезати - почти 950 страниц про то, как Linux устроен под капотом.

Внутри:

• процессы и планировщик
• управление памятью
• системные вызовы
• прерывания и синхронизация
• VFS и файловые системы
• драйверы и I/O
• page cache и IPC

Книга старая и разбирает ядро эпохи Linux 2.6, поэтому для современных деталей одной её недостаточно. Но фундаментальные механизмы ядра объяснены очень глубоко.

И тот самый момент, когда радуешься, что учил английский: такую книгу хочется читать медленно, параллельно открывая исходники и проверяя всё руками.

📖 PDF: https://cs.utexas.edu/~rossbach/cs380p/papers/ulk3.pdf

Читать полностью…

Golang Books

✔️ Kubernetes - публичная версия идей, на которых Google построила свою инфраструктуру

Google открыла Kubernetes, но код своей внутренней системы управления дата-центрами так и не показала.

Эта система называется Borg. Её начали разрабатывать ещё в начале 2000-х для запуска Search, Gmail, YouTube и других сервисов Google. Borg распределяет задачи по серверам и управляет дата-центрами как единым пулом ресурсов.

Kubernetes появился в 2014 году и унаследовал многие идеи Borg: декларативное управление, планирование контейнеров, автоматическое восстановление и масштабирование.

В 2015 году Google опубликовала научную статью с описанием архитектуры Borg. Схемы и принципы стали публичными, исходный код остался внутри компании.

В итоге весь рынок строит инфраструктуру на Kubernetes, пока Google продолжает использовать собственную закрытую систему.

Лучшие внутренние инструменты редко покидают компании, которые их создали.

Читать полностью…

Golang Books

Fyne 2.8: Go-интерфейсы получили GPU-шейдеры, нормальный Markdown и новые оконные API

Вышел Fyne 2.8, один из крупнейших релизов кроссплатформенного GUI-фреймворка за последнее время: более 1000 коммитов от 39 разработчиков и изменения в 800+ файлах.

Что добавили:

- GPU-ускоренные Ellipse, BezierCurve, ArbitraryPolygon, Blur, тени и собственные GLSL-шейдеры
- анимацию шейдеров через canvas.NewShaderAnimation
- таблицы, чек-листы, зачёркивание, вложенные списки и цитаты в RichText
- более быструю прокрутку длинных Markdown-документов
- управление позицией окна, режимом Always on Top и полноэкранным выводом на второй монитор
- запланированные уведомления, cache API, multi-touch drag и базовую поддержку accessibility

Минимальная версия теперь Go 1.22. Windows 7/8 и macOS 10.14 больше не поддерживаются.

Обновление:


go get fyne.io/fyne/v2@v2.8.0
go mod tidy


Это заметный апгрейд графики, текста и оконной системы.

https://fyne.io/blog/2026/07/13/fyne-v2.8-released/

#golang #go #fyne #gui

Читать полностью…
Subscribe to a channel