golang_interview | Unsorted

Telegram-канал golang_interview - Golang вопросы собеседований

14942

@notxxx1 - админ @Golang_google - Golang для разработчиков @itchannels_telegram - 🔥лучшие из ит @golangl - chat @golangtests - golang tests @golang_jobsgo - go chat jobs @ai_machinelearning_big_data - AI @data_analysis_ml РКН: clck.ru/3FmtKd

Subscribe to a channel

Golang вопросы собеседований

🛠️ Uncloud — лёгкий кластерный инструмент для управления контейнеризированными приложениями через сеть Docker-хостов.

Это мост между Docker и Kubernetes — без их сложности.

🚀 Ключевые возможности

- Децентрализованный кластер без единой точки управления — каждый узел хранит синхронное состояние
- WireGuard mesh — приватная сеть между хостами без лишней настройки
- Автоматическое обнаружение сервисов и балансировка с TLS через встроенный Caddy
- Знакомый Docker Compose — можно запускать привычные compose.yaml, без новой DSL
- Zero-downtime deploy — rolling-обновления и автоматический откат (в разработке)

🌍 Где использовать

- Облачные VM, bare-metal, гибридные кластеры
- Для разработчиков и self-hosting — альтернатива Kubernetes
- Домашние лаборатории — развёртывание на spare-хостах без усилий

⚡ Почему Uncloud?

- Убирает большую часть боли Kubernetes и Docker Swarm
- Предоставляет понятную и лёгкую инфраструктуру
- Даёт мощь multi-host окружения без операционных сложностей

https://github.com/psviderski/uncloud

👣 Полезные ресурсы Go 🚀Max

@golang_interview

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

Golang вопросы собеседований

🖥 Docker для начинающих за 60 секунд

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

Golang вопросы собеседований

Devhands онлайн-встреча: введение в Highload (3 часа)

13 марта пройдёт открытая онлайн-встреча «Введение в хайлоад» для backend-разработчиков уровня Junior+/Middle.

За 3 часа разберём базу высоконагруженных систем — от первых принципов до реального масштабирования.

В программе:

🤩 Что такое highload и как развивается этот навык
🤩 Миллион RPS и миллион DAU — почему это реальные цифры и как с ними работают системы
🤩 Live-демо бенчмарка Valkey
🤩 Разбор кейса: как система проходит путь от одного сервера к кластеру
🤩 Как проектируются производительные, масштабируемые и устойчивые IT-системы
🤩 Открытая Q&A-сессия

🗓 Когда: 13 марта, 10:00–13:00 (МСК)

Участие бесплатное. Формат участия — за пост: при регистрации нужно опубликовать пост в LinkedIn с анонсом встречи и ссылкой на страницу события.

🤩 Кто мы: R&D-центр Devhands.io, наш канал (/channel/rybakalexey). Основатель школы и ведущий встречи Алексей Рыбак, ex-СТО Badoo, с 20-летним опытом высоконагруженных проектов и и управления глобальными технологическими организациями, член программного комитета Highload.

📎 Регистрация и подробности.

Ждем вас!

Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzquyZtac

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

Golang вопросы собеседований

Безопасная обработка ошибок в Go- важнее, чем кажется.

В новом гайде от JetBrains разбирают, почему error handling в Go может становиться источником уязвимостей, если с ним работать неаккуратно. В Go ошибки — это обычные значения, которые можно передавать, оборачивать и анализировать. Но именно из-за этого они легко могут утекать наружу вместе с чувствительными данными.

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

- пути файлов
- SQL-запросы
- токены и идентификаторы
- stack trace

Такая информация может использоваться для атак или анализа внутренней архитектуры сервиса.

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

Также важно:

- не логировать сырые пользовательские данные
- переводить ошибки инфраструктуры (например SQL или API) в доменные ошибки
- не возвращать err.Error() напрямую в HTTP-ответах
- добавлять контекст к ошибкам, но только безопасный

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

https://blog.jetbrains.com/go/2026/03/02/secure-go-error-handling-best-practices/

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

Golang вопросы собеседований

JetBrains выложили Modern Go Guidelines - набор правил, который учит AI писать современный Go-код.

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

В репозитории JetBrains собрали правила, которые заставляют AI учитывать версию Go из go.mod и использовать возможности именно этой версии языка.

Например:
- вместо ручных циклов использовать slices.Contains
- вместо старых интерфейсов писать any
- для обработки ошибок использовать errors.Is
- использовать новые функции стандартной библиотеки

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

https://github.com/JetBrains/go-modern-guidelines

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

Golang вопросы собеседований

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

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

Что показывает pprof:

- CPU profile - какие функции реально съедают процессор
- Heap / allocs - где происходят аллокации и кто держит память
- Goroutine profile - стек всех активных горутин
- Block profile - где горутины блокируются
- Mutex profile - где возникает конкуренция за мьютексы

Самый быстрый способ включить профилирование - подключить пакет:


import _ "net/http/pprof"


После этого сервис автоматически получает debug-эндпоинты:


/debug/pprof/profile CPU профиль
/debug/pprof/heap snapshot памяти
/debug/pprof/goroutine все горутины
/debug/pprof/block блокировки
/debug/pprof/mutex конкуренция мьютексов
/debug/pprof/trace runtime trace


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


go func() {
log.Println(http.ListenAndServe("localhost:6060", nil))
}()


После этого можно снимать профиль прямо с работающего сервиса:

curl -o cpu.prof http://service:6060/debug/pprof/profile?seconds=30
go tool pprof cpu.prof

И анализировать:

(pprof) top
(pprof) list <function>
(pprof) web


Главная идея статьи - не оптимизируйте код вслепую.
Сначала снимите профиль, посмотрите flamegraph и оптимизируйте реальное узкое место, а не то, которое кажется медленным.

https://fulmenflux.co/blog/go/complete-guide-to-profile-golang-services-in-production/

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

Golang вопросы собеседований

🧠 Go interfaces - короткий “краш-курс”, который реально проясняет тему

Статья Jon Calhoun - это один из самых понятных разборов интерфейсов в Go без лишней теории.

Главная мысль:
В Go интерфейс - это набор требований, а не “иерархия классов”.
Go использует *duck typing*:
если у типа есть нужные методы - он автоматически подходит под интерфейс.

Пример из статьи (идея):
мы описываем интерфейс “умеет говорить”, а дальше любой тип, у которого есть метод Speak(), подойдёт.


package main

import "fmt"

type Speaker interface {
Speak() string
}

type Dog struct{}
func (Dog) Speak() string { return "woof" }

type Person struct{ Name string }
func (p Person) Speak() string { return "hi, I'm " + p.Name }

// функция принимает ИНТЕРФЕЙС, а не конкретный тип
func SaySomething(s Speaker) {
fmt.Println(s.Speak())
}

func main() {
SaySomething(Dog{})
SaySomething(Person{Name: "Gus"})
}


Что важно понять (самые полезные тезисы):
- интерфейс лучше объявлять там, где он используется, а не “в библиотеке заранее”
- интерфейсы в Go обычно маленькие (1-3 метода) - так код гибче
- типы не “наследуют” интерфейсы - они просто соответствуют им
- из этого рождается сильный стиль Go: “принимай интерфейсы - возвращай структуры”

Если ты раньше был в Java/C# - после этой статьи Go-интерфейсы начинают реально “щелкать”.

https://www.calhoun.io/crash-course-on-go-interfaces/

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

Golang вопросы собеседований

👣 Большинство изучают Go ради синтаксиса.

Ты научишься писать сервисы, которые работают в продакшене.

Это не про «Hello, World» и горутины ради галочки.
Это про бэкенд на Go, который:

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

Ты начнёшь видеть Go не как язык, а как инструмент для построения систем.

В итоге ты сможешь:

* писать высоконагруженные API
* создавать микросервисы
* работать с базами данных и очередями
* разбираться в конкурентности и производительности
* брать коммерческие backend-проекты

Это навык, который ценится на рынке.
Не «знаю Go», а умею делать быстрые и надёжные сервисы.

🎁 48 часов скидка 50% на Stepik: https://stepik.org/a/274119/

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

Golang вопросы собеседований

Офер за 2 дня в Яндекс через Weekend Offer Multitrack

Это формат быстрого найма для бэкенд-разработчиков с опытом работы от 5 лет на C++, Python, Java/Kotlin или Go. Приглашаем тех, кто умеет принимать архитектурные решения, проектировать сервисы и хорошо понимает многопоточность и низкоуровневые механизмы.

Все этапы отбора проходят в течение двух дней:


🟢 14 марта — технические секции.
🟢 15 марта — финальная секция и офер.

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

Этот подход позволяет сравнить разные проекты внутри Яндекса, оценить задачи изнутри и принять взвешенное решение.

Регистрация на участие в программе открыта до 6 марта. Подробности — по ссылке.

Реклама. ООО "Яндекс". ИНН 7736207543

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

Golang вопросы собеседований

🔍Тестовое собеседование с Go ТехЛидом из WildBerries в этот четверг

26 февраля(в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Go-разработчика.

Как это будет:
📂 Рамиль Мясоутов, ТехЛид из WildBerries, ex-Купер будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Рамиль будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Рамилю

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Go-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир →
@shortcut_go_bot

Реклама.
О рекламодателе.

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

Golang вопросы собеседований

☁️ Cloudness - опенсорс-платформа, чтобы деплоить свои проекты как в “мини-облаке”

Сохраняй себе: cloudness-io/cloudness - это open-source штука, которая помогает разворачивать и управлять приложениями на своих серверах так, будто у тебя свой Heroku / Vercel / PaaS.

Что даёт Cloudness:
- деплой проектов в пару кликов
- управление окружениями (dev/stage/prod)
- сервисы рядом (БД, кэш, очереди)
- удобный контроль ресурсов и состояния
- понятный интерфейс для DevOps без боли

Зачем это нужно
Когда проектов много, руками держать всё через docker-compose и ssh становится адом.
Cloudness превращает это в нормальный продуктовый деплой: быстро, повторяемо и удобно.

Идеально для:
- пет-проектов
- микросервисов
- командной разработки
- своего self-hosted продакшена

GitHub: github.com/cloudness-io/cloudness

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

Golang вопросы собеседований

👣 Один их лучших курсов по Go на Stepik: Golang: самое важное от основ до практики

Большинство курсов по Go - это теория и разрозненные примеры.

В итоге:
синтаксис знаете, а как собрать проект с нуля - непонятно.

Данный курс построен по-другому.

Вы проходите весь путь шаг за шагом:
• с полного нуля
• без перегрузки теорией
• с объяснением «зачем это в реальной работе»
• с постепенным усложнением, без резких скачков

Каждая тема - часть единой картины, а не отдельный кусок.

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

Это не про «посмотреть курс».

Это про то, чтобы наконец-то понять Go и начать на нём писать.

48 часов действует скидка 50 процентов.

📌 Начать учиться: https://stepik.org/a/274119/

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

Golang вопросы собеседований

👣 Go 1.26: go fix теперь реально модернизирует код

В Go 1.26 команда полностью переписала подкоманду go fix.
Теперь это не просто инструмент совместимости, а система для автоматической модернизации кода.

Что делает новый go fix

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

Как использовать


go fix ./...


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

Ключевая идея релиза
Self-service анализ.

Компании и мейнтейнеры смогут:

* добавлять собственные правила
* кодировать внутренние стандарты
* автоматически применять best practices ко всему проекту

Языки начинают сами улучшать код за разработчика.

Статический анализ становится частью инженерной культуры, а не отдельным инструментом.

https://go.dev/blog/gofix

🚀Max

@golang_interview

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

Golang вопросы собеседований

👣 В Go 1.26 логирование стало намного удобнее.

Добавили slog.NewMultiHandler, теперь можно отправлять логи сразу в несколько мест.

Что это даёт:

• Один вызов → несколько выходов
• В консоль — в текстовом виде
• В файл — в JSON
• Разные уровни для разных обработчиков

Пример:


h := slog.NewMultiHandler(
slog.NewTextHandler(os.Stdout, nil),
slog.NewJSONHandler(logFile, &slog.HandlerOptions{
Level: slog.LevelWarn,
}),
)

logger := slog.New(h)

logger.Info("hello")
// уйдёт в stdout (text)
// и в файл (json, если уровень Warn+)


Раньше приходилось:

• писать обёртки
• дублировать логгеры
• или использовать сторонние библиотеки

Теперь всё это есть в стандартной библиотеке.

https://www.youtube.com/shorts/zpXs8OUVlyQ

🚀Max

@golang_interview

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

Golang вопросы собеседований

👻 gh-ost - инструмент для миграций схемы MySQL без даунтайма.

Если тебе надо сделать ALTER TABLE на большой продовой таблице и не положить сервис - gh-ost это прям must-have.

Большинство online-schema-change тулов используют триггеры и создают лишнюю нагрузку.
А gh-ost идёт по другому пути:

Triggerless - вообще без триггеров
✅ Читает изменения через binlog stream и асинхронно применяет их к “ghost table”
✅ Даёт полный контроль над процессом миграции:
- пауза/резюм
- throttle (снижение нагрузки)
- аудит и статус
- безопасный cut-over

Как это работает (по-простому):
1) создаётся “ghost table” с новой схемой
2) данные копируются постепенно
3) параллельно изменения ловятся из binlog
4) в конце таблицы меняются местами почти мгновенно

Идеально для:
🔥 таблиц на десятки миллионов строк
🔥 production-систем
🔥 миграций без блокировок

📌 Репо: github.com/github/gh-ost

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

Golang вопросы собеседований

🔥 Нашёл production-grade репозиторий по Go microservices, который реально стоит изучить

Последние пару дней копался в этом GitHub repo - и это один из лучших примеров микросервисов на Go “по-взрослому”:

Что там особенно полезно (и что стоит забрать себе в проекты):

Vertical Slice Architecture
Фичи лежат по папкам *по функционалу*, а не по слоям (controllers/services/repo).
➡️ меньше хаоса, проще поддержка.

CQRS + Go-MediatR
Команды и запросы разделены, плюс есть pipeline behaviors
➡️ удобно встраивать логирование, валидации, retry.

Event-driven через RabbitMQ
Асинхронная коммуникация сервисов
➡️ меньше связности, больше масштабируемости.

OpenTelemetry + Jaeger
Распределённый трейсинг “из коробки”
➡️ наконец видно, где реально тормозит система.

gRPC для inter-service calls
Быстрее HTTP + строгие контракты.

uber-go/fx для dependency injection
Нормальная сборка зависимостей без адской ручной инициализации.

Полное тестирование
unit + integration + e2e
➡️ редкость для open-source микросервисов.

Это именно тот тип репозиториев, где видно:
как минимизировать coupling и максимизировать cohesion в реальной микросервисной архитектуре.

github.com/meysamhadeli/shop-golang-microservices

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

Golang вопросы собеседований

⚡️ Языки программирования и время, которое потребовалось для выпуска первой версии.

Многие думают, что язык программирования можно сделать быстро. Но на практике на это уходят годы. Rust разрабатывали девять лет, Kotlin и C++ около шести, Go и Java примерно пять. Даже Python готовили два года перед первым релизом.

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

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

🦀 Rust - 9 лет (2006 → 2015)
🤖 Kotlin - 6 лет (2010 → 2016)
⚙️ C++ - 6 лет (1979 → 1985)
☕ Java - 5 лет (1991 → 1996)
🐹 Go - 5 лет (2007 → 2012)
🍎 Swift - 4 года (2010 → 2014)
🔧 C - 3 года (1969 → 1972)
🧬 Scala - 3 года (2001 → 2004)
📊 Julia - 3 года (2009 → 2012)
🐍 Python - 2 года (1989 → 1991)
🌐 JavaScript - 10 дней (1995)
💎 Ruby - 2 года (1993 → 1995)
🐘 PHP - 1 год (1994 → 1995)
🔷 C# - 2 года (1998 → 2000)
🎯 TypeScript - 2 года (2010 → 2012)
🎯 Dart - 2 года (2009 → 2011)
⚡ Elixir - 2 года (2011 → 2013)
🧠 Haskell - 3 года (1987 → 1990)
🧩 Objective-C - 1 год (1983 → 1984)

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

Golang вопросы собеседований

🚀 LOAD BALANCER ЗА 1 МИНУТУ

Load Balancer - это «диспетчер трафика» между пользователями и серверами.

Когда пользователей становится много, один сервер перестаёт справляться:
- 500 пользователей — работает нормально
- 1 000 — начинает тормозить
- 10 000 — может упасть из-за перегрузки

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

Проблемы без Load Balancer:

- Один сервер = одна точка отказа
- Любой сбой или проблема с сетью — приложение полностью недоступно
- Ограниченная мощность
- При росте нагрузки — медленные ответы и падения

Как работает Load Balancer:

1. Все запросы сначала попадают в Load Balancer
2. Он проверяет, какие серверы работают и доступны
3. Распределяет трафик по серверам на основе:
- текущей нагрузки
- времени ответа
- доступности
4. Если сервер перестаёт отвечать — трафик автоматически перенаправляется на рабочие

В результате:
- нагрузка распределяется равномерно
- используются только «здоровые» серверы
- уменьшаются задержки
- система остаётся стабильной

Зачем нужен Load Balancer:

- Scalability — можно добавлять новые серверы без изменений на стороне клиента
- High Availability — если один сервер падает, система продолжает работать
- Better Performance — запросы обрабатываются быстрее
- Efficient resource usage — равномерное использование ресурсов и отсутствие узких мест

Главная идея:

Load Balancer — основа масштабируемых и отказоустойчивых систем. Без него любое приложение рано или поздно упрётся в предел одного сервера.

Подписывайся, больше фишек каждый день !


// Пример конфигурации Nginx как Load Balancer

http {
upstream backend {
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}

server {
listen 80;

location / {
proxy_pass http://backend;
}
}
}

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

Golang вопросы собеседований

👣 Golang: ПОЧЕМУ ВЫВОД НЕ [42 2 99]?

На собеседованиях по Go это одна из самых коварных задач. Нужно понять, почему данные "вроде изменились", но переменная в main этого не видит. Вся магия в том, как устроены slice и что делает append при нехватке capacity. Подписывайся, больше фишек каждый день !


package main

import "fmt"

func add(s []int) {
s = append(s, 99)
s[0] = 42
}

func main() {
a := []int{1, 2}
add(a)

fmt.Println("a:", a)
}

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

Golang вопросы собеседований

👣Вышли обновления Go 1.26.1 и Go 1.25.8

Команда Go выпустила новые минорные обновления языковой платформы. Основная причина релиза - исправления безопасности в стандартной библиотеке.

Закрыты несколько уязвимостей:

- CVE-2026-25679
- CVE-2026-27137
- CVE-2026-27138
- CVE-2026-27139
- CVE-2026-27142

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

Актуальные версии для установки сейчас:

- Go 1.26.1
- Go 1.25.8

🗣 Announcement: https://groups.google.com/g/golang-announce/c/EdhZqrQ98hk/m/41DopX_WAAAJ

⬇️ Download: https://go.dev/dl/#go1.26.1

🚀Max

@Golang_google

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

Golang вопросы собеседований

🧠 Go interfaces - короткий “краш-курс”, который реально проясняет тему

Статья Jon Calhoun - это один из самых понятных разборов интерфейсов в Go без лишней теории.

Главная мысль:
В Go интерфейс - это набор требований, а не “иерархия классов”.
Go использует *duck typing*:
если у типа есть нужные методы - он автоматически подходит под интерфейс.

Пример из статьи (идея):
мы описываем интерфейс “умеет говорить”, а дальше любой тип, у которого есть метод Speak(), подойдёт.


package main

import "fmt"

type Speaker interface {
Speak() string
}

type Dog struct{}
func (Dog) Speak() string { return "woof" }

type Person struct{ Name string }
func (p Person) Speak() string { return "hi, I'm " + p.Name }

// функция принимает ИНТЕРФЕЙС, а не конкретный тип
func SaySomething(s Speaker) {
fmt.Println(s.Speak())
}

func main() {
SaySomething(Dog{})
SaySomething(Person{Name: "Gus"})
}


Что важно понять (самые полезные тезисы):
- интерфейс лучше объявлять там, где он используется, а не “в библиотеке заранее”
- интерфейсы в Go обычно маленькие (1-3 метода) - так код гибче
- типы не “наследуют” интерфейсы - они просто соответствуют им
- из этого рождается сильный стиль Go: “принимай интерфейсы - возвращай структуры”

Если ты раньше был в Java/C# - после этой статьи Go-интерфейсы начинают реально “щелкать”.

https://www.calhoun.io/crash-course-on-go-interfaces/

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

Golang вопросы собеседований

🧩 Go утилита: конвертируй Markdown в PDF одной командой

Если ты пишешь документацию, гайды или README в Markdown - рано или поздно хочется быстро превратить это в красивый PDF (для клиентов, курсов, отчётов или Telegram-материалов).

go-md2pdf - минималистичный инструмент на Go, который делает ровно это: берёт .md файл и генерирует .pdf.

Почему удобно:
- идеально для документации и чек-листов
- можно встроить в CI/CD (сборка PDF на релизе)
- норм вариант для автогенерации PDF-методичек из Markdown

Кейс:
пишешь контент один раз в Markdown - получаешь и текст, и PDF-версию без ручной верстки.

github.com/alnah/go-md2pdf

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

Golang вопросы собеседований

👣 Go 1.26: `bytes.Buffer.Peek()` - заглянуть в буфер без чтения

В Go 1.26 добавили очень удобный метод: Buffer.Peek(n) в пакете bytes.

Что делает:
- возвращает следующие N байт
- не сдвигает указатель чтения
- то есть можно “подсмотреть”, что впереди, и не портить поток

Это идеальная штука для:
- парсеров протоколов
- stream processing
- проверок заголовков/сигнатур
- peek-before-read логики

Важный нюанс:
Peek() возвращает срез, который указывает прямо на внутренний буфер.
То есть:
- он валиден, пока буфер не изменился
- если ты поменяешь срез - поменяешь буфер (осторожно!)

Мини-юзкейс: сначала peek, потом решаешь - читать дальше или нет.

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

Golang вопросы собеседований

🌟 Wile: R7RS Scheme на чистом Go

Wile — это реализация R7RS Scheme, написанная на Go без использования CGo. Она предлагает полные гигиеничные макросы, продолжения и поддержку числовой башни, позволяя легко интегрировать Scheme в Go-программы.

🚀 Основные моменты:
- Полная совместимость с R7RS
- Гигиеничные макросы и продолжения
- Легкая интеграция с Go (без CGo)
- Поддержка точных и произвольных чисел
- Простота использования и быстрая компиляция

📌 GitHub: https://github.com/aalpar/wile

#go

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

Golang вопросы собеседований

👣 micro — консольный текстовый редактор на Go

brew install micro

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

🖥 GitHub
🟡 Страничка micro

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

Golang вопросы собеседований

♟ chess-3 - шахматы как проект для прокачки алгоритмов

Нашёл классный репозиторий chess-3 - отличный пример того, как можно построить шахматный движок/игру и параллельно прокачать реальные навыки разработки.

Почему стоит посмотреть:
- это не очередной “hello world”
- шахматы заставляют думать про алгоритмы, структуру данных и оптимизацию
- идеальная база для экспериментов: evaluation, minimax, alpha-beta, move generation

Подойдёт тем, кто хочет:
✅ понять как устроены шахматные движки
✅ потренировать архитектуру и производительность
✅ сделать свой pet-project с реальной сложностью

GitHub: https://github.com/paulsonkoly/chess-3

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

Golang вопросы собеседований

🐶 Watchdog на Go: уроки из реального мониторинга

Крутая статья о том, как автор собирал monitoring system на Go и какие грабли поймал по дороге.

Это не “теория про метрики”.
Это практический разбор:
- как проектировать watchdog/health-check систему
- как ловить зависания и деградации сервиса
- как правильно думать про таймауты, ретраи и алерты
- почему “просто ping” - вообще не мониторинг 😄

Если пишешь микросервисы на Go или строишь инфраструктуру - обязательно сохрани.

Ссылка: nightsnest.hashnode.dev/watchdog-lessons-from-building-a-monitoring-system-in-go

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

Golang вопросы собеседований

🚀 Управление браузером для AI-агентов

PinchTab — минималистичный инструмент для автоматизации браузера, созданный специально для AI.

Что внутри:

- Один Go-бинарник — всего 12 MB
- Ноль конфигурации — скачал и запустил
- Подход accessibility-first — управление через доступные элементы интерфейса, а не хрупкие селекторы

Почему это важно для AI-агентов:

- Стабильная работа даже при изменении верстки
- Меньше «ломается», чем классическая автоматизация через DOM
- Отлично подходит для:
- автономных агентов
- web-операций
- тестирования
- автоматизации задач в браузере

Тренд очевиден:

AI всё чаще работает не через API,
а напрямую с интерфейсами — как человек.

Лёгкий бинарник + Go + надёжность = отличный инструмент для агентных систем.

GitHub: https://github.com/pinchtab/pinchtab

#golang #ai #automation

🚀Max

@golang_interview

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

Golang вопросы собеседований

👣 Andurel - Rails-подобный фреймворк для Go

Если вам нравится скорость разработки в Rails, но вы хотите производительность и надёжность Go — стоит посмотреть на Andurel.

Главная идея:
минимум бойлерплейта — максимум скорости разработки.

Что даёт Andurel

Мгновенный CRUD
- Генерация полноценного ресурса одной командой
- Готовый backend, формы и логика
- Код остаётся вашим — можно свободно менять и расширять

Live Reload
- Горячая перезагрузка Go, шаблонов и CSS
- Быстрый цикл разработки без ручных перезапусков

Типобезопасность на всех уровнях
- SQLC — безопасный SQL
- Templ — типобезопасные HTML-шаблоны
- Go — вся бизнес-логика

Batteries Included
Встроено из коробки:
- Echo (HTTP)
- фоновые задачи
- сессии и аутентификация
- CSRF-защита
- email
- telemetry
- опционально: Docker, workflows, AWS SES

PostgreSQL-first
- pgx драйвер
- River для очередей
- UUID support

Философия

Сгенерировать всё один раз → дальше код полностью под вашим контролем.
Никакой магии, которая ломает архитектуру позже.

Почему это интересно

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

Andurel даёт опыт уровня Rails,
но с производительностью и простотой Go.
#golang

https://github.com/mbvlabs/andurel

🚀Max

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

Golang вопросы собеседований

👣 Go 1.26 - что нового в релизе

Вышел Go 1.26 - обновление, которое делает язык быстрее, стабильнее и удобнее для разработки продакшен-сервисов.

Вот ключевые изменения.

Производительность и компилятор
- Улучшена оптимизация компилятора — меньше аллокаций и быстрее выполнение
- Снижение времени сборки для крупных проектов
- Более эффективная работа с generics и inline-функциями

Runtime
- Улучшения в работе garbage collector — ниже паузы и лучшее использование памяти
- Оптимизация планировщика горутин
- Более стабильная работа под высокой нагрузкой

Стандартная библиотека
- Расширения и улучшения в net/http для более эффективной работы серверов
- Обновления криптографии и безопасности
- Улучшения в работе с файловой системой и сетью

Инструменты разработчика
- Улучшения в go vet — больше проверок потенциальных ошибок
- Улучшения диагностики компилятора и сообщений об ошибках
- Более стабильная работа go test и профилирования

Почему это важно

Каждый релиз Go делает фокус на:
- стабильности в продакшене
- предсказуемой производительности
- улучшении DX без усложнения языка

Go 1.26 — это не про новые «фичи», а про то, чтобы ваш код работал быстрее и надёжнее без изменений.

Документация: https://go.dev/doc/go1.26
Видео: https://www.youtube.com/watch?v=59_vyLcwh3g

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