My GoLang
5 subscribers
240 photos
5 videos
8 files
537 links
Материалы для самостоятельного изучения и подготовки к собеседованию языка Golang. Делаю для себя, делюсь поисками, делитесь и вы 🎓
Download Telegram
Forwarded from Golang Portal
Дженерики в Go: Ваш дружелюбный гид по повторно используемому коду

В этом гайде рассказывается, что такое дженерики, как их использовать и зачем они нужны

👉 Читать

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Golang Portal
От 19 часов до менее секунды: создание сверхбыстрого TCP-сканера на Go

Статья о том, как команда переписала свой сканер сети с обычного TCP-connect метода на «half-open» SYN-сканирование на языке и добилась сокращения времени проверки сети из 19 часов до менее чем одной секунды

Читайте здесь

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Golang Portal
Understanding the Go compiler: The Parser

Статья объясняет, как парсер компилятора Go превращает поток токенов в абстрактное синтаксическое дерево (AST) с помощью рекурсивного спуска, разбирая ключевые функции и структуры на практических примерах

Читайте здесь

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Golang Portal
Построение конвейера «производитель–потребитель» в Go с использованием горутин и каналов

Статья рассказывает, как с помощью языковых механизмов Go (горутин и каналов) построить конвейер «производитель–потребитель», чтобы параллельно обрабатывать тяжёлые CPU-задачи и при этом безопасно записывать результаты в базу данных без конкуренции за запись

Читайте здесь

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻 Определите роль Go в своей AI архитектуре

В AI проектах Go лучше всего чувствует себя не в роли «я сам напишу модель», а в роли надежного каркаса вокруг моделей. Речь про сервисы, API, очереди, оркестрацию пайплайнов, интеграцию с другими системами.

Тяжелые вычисления и обучение обычно остаются на Python, C++ или готовых AI платформах, а Go берет на себя устойчивость, предсказуемое время ответа и нагрузку.

Допустим, у вас есть сервис с моделью на Python, поднятый через FastAPI или gRPC. Go слой выглядит как обычный HTTP или gRPC сервис, который:

• принимает запрос от клиента
• валидирует данные, обогащает контекст
• делает запрос к модельному сервису
• обрабатывает ответ, пишет логи и метрики
• возвращает результат пользователю

Где Go раскрывается по максимуму

— API слой и шлюзы

Go используют для API gateway и BFF (backend for frontend): высокая нагрузка, множество клиентов, разные типы аутентификации и трейсинг.

​AI здесь — всего лишь одна из зависимостей. Это позволяет не смешивать фронтовую и AI‑специфику.

— Оркестрация AI пайплайнов

Обработка данных, фичеринг, вызовы нескольких моделей по цепочке, запись результатов, ретраи, дедлайны — всё это удобно делать на Go в виде набора микросервисов либо централизованного оркестратора.

Go хорошо сочетается с:

• очередями (Kafka, RabbitMQ, NATS)
• workflow системами (Temporal, Cadence, Argo Workflows
• gRPC и protobuf для связи с Python сервисами.

— Реалтайм и стриминг

Если вам нужен стриминговый чат, онлайн‑анализ событий, веб‑сокеты или SSE поверх LLM — Go с его сетевой моделью и goroutine хорошо закроет эту задачу. Модель может отвечать стримом, а Go будет потоково прокидывать их клиенту, не блокируя остальную систему.

Что явно не стоит насильно тащить в Go

— обучение больших моделей и сложный

— эксперименты с фреймворками, где вся экосистема вокруг Python

— CUDA‑обвязка и кастомные GPU‑ядра без серьёзной причины

Удачная стратегия на 2026 год выглядит так: не превращать Go в ещё один ML язык, а использовать его как надёжный сервисный и оркестрационный слой вокруг AI.

🔹 Математика для разработки AI-моделей
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go-разработчика

#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
🔖System Programming Essentials with Go: System calls, networking, efficiency, and security practices with practical projects in Golang
Автор: Alex Rios (2024)

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

#Go@programmist_of

👉@programmist_of
Please open Telegram to view this post
VIEW IN TELEGRAM
🔖gRPC Microservices in Go
Автор: Huseyin Babal (2023)

Книга научит вас создавать готовые к производству микросервисы с помощью Go и gRPC. В нем вы научитесь создавать эффективные API на Go, использовать gRPC для сетевого взаимодействия, а также развертываться в облаке и Kubernetes. Полезные примеры, в том числе полное веб-приложение для электронной коммерции, облегчают понимание каждой концепции. Вы также получите представление о тестировании, развертывании и эффективных практиках DevOps для микросервисов.

#Go@programmist_of

👉@programmist_of
Please open Telegram to view this post
VIEW IN TELEGRAM
Подборка книг по Go!

🔸 Облачный Go, Мэтью Титмус

Docker, Kubernetes и Prometheus всё это написано на Go. В книге рассмотрены способы применения возможностей Go для разработки надёжных облачных решений.

🔸 Go: идиомы и паттерны проектирования, Джон Боднер

Книга научит вас думать как Go-разработчик. Изучите шаблоны и паттерны проектирования и научитесь писать понятный и идиоматический Golang код.

🔸Go на практике, Мэтт Батчер

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


#go@programmist_of

👉@programmist_of
Hands-On High Performance with Go
Автор: Bob Strecansky (2020)

Go - это простой в написании язык, популярный среди разработчиков благодаря своим фичам, таким как параллелизм, переносимость и способность снижать сложность. Эта книга о Golang научит вас создавать идиоматический код Go, который будет многоразовым и высокопроизводительным.

Во время чтения книги вы:
✔️Научитесь эффективно организовывать данные и управлять ими с помощью кластеров и очередей задач;
✔️Изучите часто применяемые структуры данных и алгоритмы Go;
✔️Напишете анонимные функции в Go;
✔️Научитесь развертывать, мониторить и итерировать программы с упором на производительность;
✔️Погрузитесь в управление памятью и параллелизм CPU и GPU в Go.

Скачать

👉 @golang_lib
Cloud Native Go
Matthew A. Titmus (2021)


Что общего у Docker, Kubernetes и Prometheus? Все эти облачные технологии написаны на языке программирования Go. В этой практической книге показано, как использовать сильные стороны Go для разработки масштабируемых и устойчивых облачных служб, действующих в непредсказуемом окружении. Вы узнаете, как конструировать такие приложения, познакомитесь с приемами создания низкоуровневых функций Go, шаблонами проектирования и архитектурными решениями.
Каждая глава основана на предыдущей и все они последовательно рассматривают создание простого, но полнофункционального распределенного хранилища пар ключ/значение на языке Go. Вы познакомитесь с передовыми практиками использования Go в качестве языка разработки для решения задач, связанных с управлением и развертыванием облачных приложений, а также:
Distributed Services with Go
Автор: Travis Jeffery (2021)

Это книга для тех, кто хочет научиться создавать распределенные системы. Вы знаете основы Go и хотите применить свои знания на практике? С помощью книги можно научиться создавать распределенные сервисы с высокой доступностью, отказоустойчивостью и масштабируемостью. Эта книга - именно то, что вам нужно, чтобы научиться грамотнее применять Go в реальных ситуациях. Начните улучшать свои инженерные навыки сегодня.

Скачать книгу

👉 @bfbook
100 Go Mistakes and How to Avoid Them
Автор: Teiva Harsanyi (2022)

Книга освещает распространенные ошибки в коде Go, о которых вы можете даже не подозревать. Вы изучите ключевые области языка, такие как параллелизм, тестирование, структуры данных и многое другое, и узнаете, как избежать и исправить ошибки в своих собственных проектах. По ходу дела вы разберетесь с тонкостями работы с данными JSON и сервисами HTTP, узнаете о лучших практиках организации кода на Go и научитесь эффективно использовать срезы.

Скачать книгу

👉 @bfbook
Software Development with Go: Cloud-Native Programming using Golang with Linux and Docker
Автор: Nanik Tolaram (2022)

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

Скачать книгу

👉 @bfbook
Full-Stack Web Development with Go: Build your web applications quickly using the Go programming language and Vue.js
Автор: Nanik Tolaram (2023)

Эта книга проведет вас через создание и разработку полного современного веб-сервиса, включая аутентификацию, промежуточное ПО, рендеринг на стороне сервера, базы данных, а также современные фронтенд-фреймворки и API на базе Go. Вы начнете со структурирования приложения и таких важных аспектов, как сетевое взаимодействие, а затем интегрируете все части вместе, чтобы создать полноценный веб-продукт. Далее вы узнаете, как создать и отправить полноценный продукт, начав с фундаментальных строительных блоков создания бэкенда на Go. Вы будете применять передовые методы работы с cookies, API и безопасностью, а также совершенствовать свои навыки работы с быстрорастущим фронтенд-фреймворком Vue. Когда ваше приложение с полным стеком будет готово, вы поймете, как вывести его в продакшн и будете готовы обслуживать клиентов.

Скачать книгу

👉 @bfbook
Everyday Go - The Fast Track for Golang
Автор: Alex
Ellis (2021)

Это быстрый способ изучить инструменты, методы и шаблоны на основе реальных инструментов, используемых в производстве.

“Everyday Go” - представляет собой сборник практических примеров, уроков и методик для разработчиков Go. Темы охватывают жизненный цикл программного обеспечения от изучения основ до тестирования программного обеспечения, распространения и мониторинга.

Скачать книгу

👉 @bfbook
My GoLang pinned «https://youtu.be/Bk85DZEVL44?is=SP5HrPmbMRwNhXzd»
Kafka устарела😳

Тут LinkedIn выкатили новый подход к Kafka.

Kafka стала де-факто стандартом для работы с большими данными.
Но LinkedIn рассказали про свою новую обвязку — Northguard и Xinfra. Давай разберем, что там за магия.

Короче, в чем соль? Почему им стало тесно в обычной Kafka?

У LinkedIn масштаб, который многим и не снился: сотни Kafka-кластеров, тысячи брокеров. И у них были классические «боли роста»:
🔵Клиенты были намертво привязаны к брокерам. Хочешь перенести топик на другой кластер для балансировки? Сорян, иди договаривайся с сотней команд, чтобы они поменяли у себя конфиги и перезапустились
🔵Операционный ад с репликацией. Стандартный инструмент для этого — MirrorMaker — превратился в их главного врага

Что такое MirrorMaker? Для тех, кто не в курсе: это стандартная утилита от Apache Kafka для репликации данных между разными Kafka-кластерами. Нужна для геораспределения или создания бэкап-кластера в другом дата-центре.


Проблема в том, что MirrorMaker — stateful (хранит в себе состояние оффсетов), сложен в управлении и жрал у них CPU как не в себя.

Что они придумали?

Они не стали пилить «убийцу Kafka». Вместо этого они построили над всем своим зоопарком кластеров абстракцию, очень похожую по философии на Control Plane в Kubernetes.

Представь: Kafka-кластеры — это твои worker-ноды, а новая система — это Kubernetes API Server + контроллеры, которые всем этим управляют.

1️⃣ Northguard — это и есть их Control Plane

Это «мозг» всей системы.

🔵Как работает: Разработчик больше не думает о физических кластерах. Он работает с логическим топиком. Например, profile-updates-logical
🔵Клиентское приложение при старте идет не в Kafka, а стучится по gRPC в Northguard Controller
🔵Контроллер лезет в свою базу метаданных (что-то типа их внутреннего ZooKeeper) и говорит клиенту: «Окей, твой логический топик profile-updates-logical сейчас физически лежит на кластере kafka-cluster-053 вот по этим адресам. Иди туда»
🔵Вся магия в миграции: Когда админам нужно перевезти топик (например, со старого железа на новое), они просто меняют эту запись в Northguard Controller. Клиенты автоматически подхватывают новый адрес и бесшовно, без даунтайма переключаются на новый кластер

2️⃣ Xinfra — движок репликации на стероидах

Это их замена для MirrorMaker

🔵Главная фишка — он stateless. Он не хранит оффсеты у себя. Как? Он просто использует стандартный механизм consumer groups в целевом кластере, чтобы коммитить туда прочитанные оффсеты. Упал инстанс Xinfra? Не беда, поднимаем новый, он читает последний коммит из Кафки и продолжает с того же места. Гениально и просто.
🔵За счет этого он легко горизонтально масштабируется: нужно больше пропускной способности — просто запускаешь больше его копий.
🔵Бонусом он умеет делать трансформацию сообщений и репартиционирование на лету во время репликации

Плюсы и минусы


🔵Просто космос для эксплуатации: Миграция топиков без простоя и без дергания сотен команд.
🔵Экономия: Выкинули 1000+ хостов со старым MirrorMaker, высвободив кучу CPU.
🔵Надежность: Убрали единую точку отказа в репликации.

Аналогия с K8s не случайна: Control Plane (Northguard), который отвечает за управление, полностью отделен от Data Plane — слоя, где живут и перемещаются сами данные. В этот Data Plane входят и сами Kafka-кластеры (как хранилище), и Xinfra (как движок репликации между ними). В будущем под этот Control Plane можно будет подсунуть любую другую систему очередей, а клиенты этого не заметят.

〰️
В статье, конечно, сплошная история успеха. О минусах и подводных камнях внедрения такой махины они тактично молчат. Но очевидно, что разработка и внедрение такого слоя — это адски сложная задача.


Результат

Система уже в проде и ворочает триллионами сообщений в день. А теперь самое интересное:

LinkedIn заявили, что находятся на пути к тому, чтобы ЗАОПЕНСОРСИТЬ Northguard и Xinfra!🔥

Так что скоро, возможно, мы все сможем пощупать этот «Kubernetes для Kafka» своими руками
Please open Telegram to view this post
VIEW IN TELEGRAM