Golang вопросы собеседований
13.7K subscribers
657 photos
5 videos
1 file
463 links
@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
Download Telegram
📁 doublestar — расширенная поддержка glob-паттернов в Go

Альтернатива стандартному path/filepath.Glob в Go, с поддержкой:

• ** — рекурсивных поддиректорий
• Расширенных классов символов ([[:alpha:]], [[:digit:]])
• Исключающих шаблонов (!(pattern), @(pattern), ?(pattern))
• Более гибких масок в стиле Bash/Zsh

go get github.com/bmatcuk/doublestar/v4

🔧 Использование:


matches, err := doublestar.Glob("**/*.go")


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

👉 Если filepath.Glob не хватает — doublestar легко заменяет его, не ломая привычный интерфейс.

github.com/bmatcuk/doublestar
🌀 RLX OS — минималистичная Linux-операционка, написанная на Go, запускаемая из одного файла

Проект — это легковесная, контейнерно-ориентированная Linux-система, которую можно запустить как один исполняемый файл. Идеально подходит для embedded-устройств, безопасных сред и DevOps-экспериментов.

### ⚙️ Основные особенности:

🚀 Монолитный исполняемый образ — всё в одном .efi`- или .iso`-файле
🧱 Immutable by design — неизменяемая, безопасная структура
📦 App Containers — встроенная поддержка запуска приложений как изолированных контейнеров
🌐 Zero-dependency init system — простая и быстрая загрузка
🛡️ Фокус на минимуме, скорости и контроле
💡 Поддержка Live Boot, конфигурации через YAML и кастомных сборок

📦 Отличный выбор для:
• DIY-дистрибутивов
• Специализированных рабочих станций
• Безопасной разработки без зависимости от сторонних пакетов

🔗 Репозиторий

@golang_interview
⚡️ Thunder — минималистичный фреймворк для API на Go

[Thunder](https://github.com/Raezil/Thunder) — это лёгкий и быстрый инструмент для создания API-серверов на Go. Он фокусируется на простоте, читаемости и строгой типизации без лишних абстракций.

🧩 Ключевые особенности:

🧼 Чистая архитектура — без лишнего "магического" кода
💡 Использует Go-дженерики для гибкости и типобезопасности
⚙️ Простое подключение middleware и обработчиков
🧪 Упрощённое тестирование маршрутов
🪶 Низкий порог входа и лёгкая интеграция в существующие проекты


👨‍💻 Пример:


thunder.Get("/ping", func(c thunder.Context) error {
return c.JSON(200, "pong")
})


Всё просто и по-Goшному.


📦 Подходит для:
• Быстрой сборки REST API
• Микросервисов и CLI-инструментов
• Тех, кто хочет full-control без тяжёлых фреймворков

🔗 GitHub
🧮 Парсим `lsblk` и анализируем диски на Go — без зависимостей

Вместо тяжёлых утилит можно легко написать парсер для анализа дисков прямо на Go.
В блоге Rezmoss показано, как создать свой анализатор дисков и разделов, используя lsblk и стандартную библиотеку Go.

🔍 Что делает утилита:
• Запускает lsblk -J и получает JSON
• Парсит структуру блок-устройств и их монтирования
• Выводит дерево разделов, меток и точек монтирования
• Работает без сторонних зависимостей

📦 Используются только:
os/exec для запуска lsblk
encoding/json для разбора вывода
• Стандартные структуры Go для представления дисков

🧠 Полезно для:
• CLI-утилит по управлению хранилищем
• системных тулов в Linux
• кастомных мониторингов и автоконфигурации

🔗 Читай подробнее: rezmoss.com/blog/disk-partition-analyzer-in-go/

#golang #linux #sysadmin #devtools #cli
🔥 7 000+ упражнений на 76 языках программирования

Exercism — бесплатная платформа для прокачки навыков программирования с нуля. Каждый язык — отдельный путь, наполненный практическими задачами.

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

https://exercism.org/
📦 Nubo — репозиторий формальных доказательств для Dedukti

Если вы работаете с формальными доказательствами и Dedukti — Nubo упрощает жизнь.

🔹 Это централизованный репозиторий библиотек с метаданными: имя, версия, зависимости, синтаксис, флаги.
🔹 Поддерживает загрузку (make download), проверку (make check) и упаковку (make package).
🔹 Работает через Makefile-сборку, автоматически управляя зависимостями и структурами.
🔹 Стандартизирует хранение и верификацию библиотек, пригоден для масштабирования и CI.

👨‍🔬 Полезно для исследователей, разработчиков Dedukti и формальных систем.

🔗 GitHub: https://github.com/nubolang/nubo
Вакансиb для Golang-разработчиков в Otello!

1️⃣ Разрабатываем сервис бронирования, где команда сама отвечает за архитектуру, консистентность данных и деплой.

2️⃣ Максимум ответственности и развитияТы сам проектируешь фичи, принимаешь решения и доводишь их до продакшена. У нас нет бюрократии и долгих согласований — есть автономные команды и возможность проявить лидерские качества.

3️⃣ Технологический стек, который радуетGo, PostgreSQL, Clickhouse, Kafka, Kubernetes, Prometheus, Grafana и многое другое. Пишем гексагональные REST-сервисы, разворачиваемся в четырех датацентрах. Любим архитектурные обсуждения, но технологии для нас — не самоцель, а инструмент.

4️⃣ Процесс, который не бесит. Работаем по Shape Up, поэтому без бесконечных таск-трекеров и бесцельных стендапов. Всегда задаем себе вопрос "Зачем?" и находим лучшие ответы на "Как?".

5️⃣ Классная команда и атмосфера. Мы ценим простые и эффективные решения, любим обсуждать архитектуру и масштабирование, а еще умеем работать динамично и с кайфом.

🔥 Если тебе близко —откликайся!
🚀 Production Go API Template — готовый шаблон для продакшн-бэкенда на Go

Репозиторий trakora/production-go-api-template — это минималистичный и структурированный старт для разработки API‑сервисов на Go, с учётом лучших практик.

📦 Что внутри:
• Чистая архитектура и модульная структура
• Поддержка PostgreSQL, Redis, миграций и хранилищ
• Встроенная обработка ошибок, логгирование, тесты
• JWT-аутентификация, конфигурация через .env
• Готовность к деплою в Docker и CI/CD

💡 Подходит для:
• Быстрого запуска продакшн‑сервисов
• MVP, стартапов, микросервисов
• Разработчиков, которые хотят "не изобретать велосипед"

🔗 GitHub: https://github.com/trakora/production-go-api-template

#golang #backend #api #webdev #goproject #архитектура
Офер в VK для бэкенд-разработчиков — попадите в команду за выходные

28–29 июня пройдёт VK Weekend Offer. Всего за 2 дня вы сможете пройти весь путь от знакомства с командами до приглашения на работу: встретиться с лидами, пройти технические собеседования и получить офер.

Языки программирования — Java, Go, Python, C++. Главное требование — от 3 лет реального опыта в бэкенде.

Читайте подробности на сайте и подавайте заявку до 25 июня!
👣 logporter - простой и легковесный экспортер (альтернатива cAdvisor), для получения метрик из контейнеров Docker, а также количества логируемых сообщений и отображение времени работы для всех контейнеров.

💡 В процессе анализа работы контейнеров, может быть полезно сравнение повышенной нагрузки с количеством логируемых сообщений, при этом, если приложение не является ресурсоемким, количество логов покажет возросшую нагрузку. Это также ускорьте анализ журнала, отображая, в какой момент времени было получено наибольшее количество сообщений из стандартного потока (stdout) и потока ошибок (stderr).

👉 Для проекта будет полезно получить обратную связь по актуальности и настройке текущего Dashboard для Grafana (изменения можно внести самостоятельно через Pull Request). Вы также можете предложить, какие еще кастомные метрики можно было бы реализовать.

🔐 Лицензия: MIT
Please open Telegram to view this post
VIEW IN TELEGRAM
🛡️ Инструмент для анализа Kerberos

KerbTool — это утилита для взаимодействия с Kerberos-протоколом, разработанная для тестирования безопасности и проведения атак на аутентификацию в Active Directory. Написана на Go.

🧰 Возможности:
• AS-REQ с любым именем пользователя (без предварительной аутентификации)
• Получение TGT и TGS
• Поддержка дешифровки и анализа билетов
• Brute-force и словарные атаки на учетные записи
• Поддержка режимов "kerberoasting" и "asreproasting"
• Работает в Linux, Windows и MacOS

🎯 Для чего используется:
• Red team-проверки
• Аудит конфигурации Kerberos
• Тестирование уязвимостей в аутентификации
• Извлечение хэшей из TGS/AS-REP без входа в систему

💡 Альтернатива таким инструментам как Impacket и Rubeus, но в удобной кроссплатформенной обёртке на Go.

https://github.com/jfjallid/kerbtool
Forwarded from Golang
🌀 Go 1.25 приносит мощный апгрейд JSON-библиотеки: encoding/json/v2 — переработанная с нуля система сериализации с гибкой настройкой, высокой скоростью и новым API

Что изменилось:

● Прямая работа с io.Writer и io.Reader
Новые функции MarshalWrite и UnmarshalRead позволяют писать и читать JSON напрямую, без создания Encoder/Decoder. Это упрощает потоковую работу и уменьшает аллокации.

● Потоковая обработка JSON
Появился модуль jsontext с функциями MarshalEncode и UnmarshalDecode, которые читают и пишут JSON по одному объекту за раз. Это критично для систем, обрабатывающих большие JSON-потоки, например, в Kubernetes.

● Гибкая настройка
Теперь функции Marshal и Unmarshal принимают опции, напрямую влияющие на формат вывода и поведение парсера:
- OmitZeroStructFields(true) — пропускать нулевые поля
- StringifyNumbers(true) — числа как строки
- MatchCaseInsensitiveNames(true) — имена полей без учёта регистра
- FormatNilMapAsNull(true)nil`-карты как `null
- WithIndent(" ") — отступы в JSON

Пример:

json.Marshal(
user,
json.OmitZeroStructFields(true),
json.StringifyNumbers(true),
jsontext.WithIndent(" "),
)


● Новое поведение по умолчанию
Теперь:

JSON-парсинг чувствителен к регистру

Дублирующиеся ключи запрещены

Неизвестные поля игнорируются, если не указано иное

Можно включить прежнее поведение опциями (например, MatchCaseInsensitiveNames)

● Ускорение десериализации
Внутренний движок полностью переписан — ускорение десериализации в 2.7–10.2 раз. При использовании потоковых API (UnmarshalJSONFrom) — прирост до 40×.

● Экспериментальный статус
API ещё может меняться. По умолчанию encoding/json использует новый движок, но json/v2 доступен отдельно и требует флага:



GOEXPERIMENT=jsonv2


Это — один из самых масштабных апдейтов стандартной библиотеки Go за последние годы. Подходит для тех, кто работает с тяжёлыми JSON-структурами, большими потоками или требует строгого контроля сериализации.

📌 Полный разбор и примеры

@golang_google

#golang #go #JSON
Тимлид, вам слово📣 Приглашаем на митап по управлению командами

Воспользуйтесь летним затишьем, чтобы посмотреть на практику коллег, промониторить «погоду» в своей команде и, возможно, обновить стратегию работы. Обсудим дела тимлидские на офлайн-встрече TeamLead Talks в офисе Lamoda.  

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

🍕 Наладить непринужденное общение помогут нетворкинг-разогрев, игра «IT-бункер», закуски и напитки.

Присоединяйтесь к Team Lead Talks:
📅 2 июля в 19:00.
📍 Офлайн, Москва, офис Lamoda.  
🔗Регистрируйтесь по ссылке, количество мест ограничено.

#реклама
О рекламодателе
👣 Что выведет код ?



package main

func oneStep(yield func() bool) {
yield()
}

func f() {
for range oneStep {
print("f ")
recover()
}
}

func g() {
for range 1 {
print("g ")
recover()
}
}

func checkPanic(loop func(), c chan<- struct{}) {
defer func() {
println(recover() != nil)
c <- struct{}{}
}()
defer loop()
panic(123)
}

func main() {
c := make(chan struct{}, 1)
go checkPanic(f, c)
<-c
go checkPanic(g, c)
<-c
}




🔗 Ответ

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM