Golang вопросы собеседований
13.8K subscribers
661 photos
7 videos
1 file
470 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
加入频道
🚀 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 #архитектура
👣 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
🔌 go-redis/cache — эффективное кэширование для Golang. Библиотека от создателей go-redis предлагает удобный способ организации двухуровневого кэша с Redis в качестве основного хранилища и локальным кэшем на основе TinyLFU.

Библиотека использует автоматическую сериализацию структур через MessagePack и поддержка распределённых Redis-конфигураций. Также интересно реализован механизм однократного вычисления значения для параллельных запросов через метод Once. Это упрощает работу с горячими ключами, когда несколько goroutines одновременно запрашивают одни и те же данные.

🤖 GitHub

@golang_interview
🔧 envconfig — удобное решение для работы с переменными окружения в Go-приложениях. Эта библиотека позволяет легко связывать переменные среды со структурой, поддерживая типы от простых строк до сложных map и пользовательских декодеров.

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

🤖 GitHub

@golang_interview
This media is not supported in your browser
VIEW IN TELEGRAM
🧑‍💻 Browsh — браузер для терминала с поддержкой HTML5, JS и даже видео

Browsh — это современный текстовый браузер, который работает прямо в терминале. Он использует headless Firefox и отображает веб‑страницы в виде ASCII‑графики.

🔹 Поддержка HTML5, CSS3, JS, WebGL
🔹 Работает через SSH или Mosh — идеален для слабого интернета
🔹 Можно смотреть YouTube прямо в терминале
🔹 Есть HTTP‑режим и Docker‑образ
🔹 Лёгкий, кроссплатформенный и минималистичный

📦 Установка:

brew install browsh # macOS
apt install browsh # Debian/Ubuntu
docker run -it browsh/browsh


🔗 GitHub

Подходит пользователям со слабыми ПК, для работы по SSH и когда нужен браузер без GUI.
🔧 envconfig — удобное решение для работы с переменными окружения в Go-приложениях. Эта библиотека позволяет легко связывать переменные среды со структурой, поддерживая типы от простых строк до сложных map и пользовательских декодеров.

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

🤖 GitHub

@golang_interview
⚡️ Ozon Tech набирает мидлов на курс по Go

Route 256 — бесплатные курсы Ozon Tech для качественного роста в профессии.

Курсы длятся 2 месяца. За это время вы исследуете возможности языка микросервисов в условиях работы с высоконагруженными системами.

Чтобы попасть, зарегистрируйтесь и пройдите отборочный контест 3 августа: https://s.ozon.ru/OqI3dtF
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
📂 Проект: fzfm — текстовый file‑manager с fuzzy‑поиском от ashish0kumar

🔎 Что это:
- Инструмент командной строки для навигации по директориям и файлам в стиле fzf — только встроенный интерфейс file‑manager.

🛠 Основные возможности:
- Быстрый fuzzy‑поиск файлов и папок прямо из терминала
- Простое перемещение и предварительный просмотр содержимого файлов
- Лёгкая установка и запуск — минимум зависимостей

👨‍💻 Кому пригодится:
- Тем, кто ищет компактный, быстрый file‑manager с fuzzy‑поиском без тяжеловесных UI
- Любителям CLI‑инструментов и поклонникам fzf, но с интегрированной файловой навигацией

Итог:
fzfm — удобная альтернатива fzf+ls, но с корпоративным подходом: всё в одном окне, без лишнего GUI, и с фокусом на быструю локальную навигацию.

💡 *Хочешь — могу помочь с примером использования CLI‑инструмента, установить его или интегрировать в твой workflow.*

https://github.com/ashish0kumar/fzfm

@golang_interview
📊 Go-Diagrams — создание архитектурных диаграмм через код.

Интересный Go-проект, позволяющий генерировать профессиональные схемы инфраструктуры и взаимодействия сервисов прямо из кода. Синтаксис напоминает популярную библиотеку Diagrams, но работает полностью на Go — без зависимостей от Python.

Библиотека использует декларативное описание компонентов (GCP, AWS, Kubernetes) и их связей, что удобно для документирования проектов и автоматического обновления схем при изменениях архитектуры. Результат экспортируется в Graphviz DOT-формат для последующей визуализации.

🤖 GitHub

@golang_interview
⚡️ Почему лучшие разработчики всегда на шаг впереди?

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

ИИ: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Мл собес t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
МЛ: t.me/machinelearning_ru
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://yangx.top/gamedev
Физика: t.me/fizmat

Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://yangx.top/addlist/mzMMG3RPZhY2M2Iy

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

📕Ит-книги: https://yangx.top/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.me/addlist/_zyy_jQ_QUsyM2Vi

Подпишись, чтобы всегда знать, куда двигаться дальше!