Golang вопросы собеседований
14K subscribers
682 photos
7 videos
1 file
486 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
📖 goworker — Go-реализация фоновых воркеров, совместимая с Resque. Этот проект позволяет запускать ресурсоемкие задачи на Go, сохраняя простоту интеграции с Ruby-проектами через Redis-очереди.

Инструмент имеет возможность совместной работы Ruby и Go-воркеров в одной системе. Проект поддерживает настройку jколичества соединений, очередей с приоритетами и graceful shutdown.

🤖 GitHub

@golang_interview
🤔72👍2🔥2
✍️ Задача из собеседования на Go-разработчика.

— Можно ли передать значения через chan struct{}?

Ответ: Да, информацию можно отправить

@golang_interview
👍10🥱43🥰1😁1🤔1
⚡️ Прокачивайся через практику: лучшие ресурсы для пет-проектов

Хочешь расти как разработчик — пиши код, а не только читай!

Вот 4 крутых ресурса, где ты будешь учиться через реальные задачи:

App Ideas
Список проектов от джуна до про: калькуляторы, трекеры, приложения. Есть примеры и полезные ссылки.
👉 github.com/florinpop17/app-ideas

Build Your Own X
Хочешь создать свой Git, Redis, Docker или даже ОС? Тут есть всё: гайды, туториалы и код на разных языках.
👉 github.com/codecrafters-io/build-your-own-x

Project-Based Learning
Обучение в формате "берёшь проект — делаешь". Примеры с пошаговыми инструкциями для разных языков.
👉 github.com/practical-tutorials/project-based-learning

Frontend Mentor
Получаешь макет — верстаешь сам. Отлично тренирует HTML/CSS/JS. Идеально для портфолио.
👉 frontendmentor.io

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

@golang_interview
6👍3🔥3🥰1
💫 Большая шпаргалка по основным темам по GO

@golang_interview
11🔥3
📚 Огромная коллекция шпаргалок для разработчиков — на одном GitHub-репозитории:

Что внутри:
Языки (Python, JavaScript, Go, Rust, C++)
Инструменты (Git, Docker, Linux)
Алгоритмы и структуры данных
Системный дизайн и SQL
И даже темы по DevOps, Cloud, AI и Security

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

🔥 Забирай в закладки — пригодится каждому разработчику.

https://github.com/crescentpartha/CheatSheets-for-Developers
👍3🔥21
🔐 go-rate — простая библиотека для ограничения запросов на Go, которая помогает контролировать частоту обращений к API или защищаться от спама. Проект используется в продакшене и предлагает как блокирующие, так и неблокирующие методы.

Библиотека позволяет комбинировать несколько лимитеров, например, ограничивать запросы одновременно до 1 в секунду и 2 за 3 секунды. Код лаконичный и хорошо документирован — отлично подходит для изучения работы с горутинами и таймерами.

🤖 GitHub

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

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

ИИ: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Devops: t.me/DevOPSitsec
Базы данных: t.me/sqlhub
Мл собес t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
МЛ: t.me/machinelearning_ru
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
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://t.me/gamedev
Физика: t.me/fizmat
SQL: t.me/databases_tg

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

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

🖥 Chatgpt для кода в тг: @Chatgpturbobot -

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

Подпишись, чтобы всегда знать, куда двигаться дальше!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🥰1
📐 Базовая задача с собеседования на Go

Условие:
Нужно реализовать конвейер чисел:
1️⃣ В первый канал (naturals) последовательно пишутся числа
2️⃣ Числа читаются из первого канала, возводятся в квадрат
3️⃣ Результат записывается во второй канал (squares)
4️⃣ Главное — корректно закрыть каналы после работы

Решение:
package main

import "fmt"

func main() {
naturals := make(chan int)
squares := make(chan int)

// Горутина-писатель
go func() {
for x := 0; x <= 10; x++ {
naturals <- x
}
close(naturals) // Важно закрыть канал!
}()

// Горутина-обработчик
go func() {
for x := range naturals {
squares <- x * x
}
close(squares) // Важно закрыть канал!
}()

// Чтение результатов
for res := range squares {
fmt.Println(res)
}
}


Пояснение:
1️⃣ Создаем 2 канала: для исходных чисел и результатов
2️⃣ Первая горутина пишет числа 0-10 в naturals и закрывает канал
3️⃣ Вторая горутина читает из naturals, вычисляет квадраты и пишет в squares
4️⃣ Главная горутина выводит результаты
6️⃣ Закрытие каналов предотвращает deadlock

@golang_interview
12👍7🔥4🙏1
📑 go-sqlite3 — необычная реализация SQLite для Go, которая обходится без cgo. Вместо традиционных биндингов проект использует Wasm-сборку SQLite и рантайм wazero, что делает его полностью независимым от системных библиотек.

Драйвер остаётся совместимым с стандартным интерфейсом database/sql, но при этом предлагает прямой доступ к низкоуровневым функциям SQLite. Разработчики уделили внимание тестированию: поддержка множества архитектур и ОС, включая экзотические вроде RISC-V или Solaris.

🤖 GitHub

@golang_interview
4🔥2🥰1
200 идей для пет-проектов — от легких скриптов до хардкора с блокчейном.

Всё уже разложено по полочкам: по уровням, по стеку.

📌 Начать работать можно здесь
👍8🔥2🌚1
gocron — пакет для планирования задач в Golang, который превращает обычные функции в периодические джобы. В нем есть поддержка cron-формата, распределённое выполнение через механизм лидер-элекции и гибкие ограничения на параллельное выполнение.

Интересно реализована система событий: можно подписываться на статусы выполнения задач и собирать метрики. Для тестирования есть моки и FakeClock, что упрощает проверку сложных временных зависимостей.

🤖 GitHub

@golang_interview
👍51🔥1
🔍 prof — инструмент для анализа pprof-данных

📌 Что умеет:
• Автоматически объединяет и сравнивает профили pprof из разных запусков
• Выделяет ключевые различия и помогает быстро выявить узкие места
• Поддерживает как Go, так и Python

🌐 Используется для упрощённого анализа производительности Reddit

📁 GitHub: https://github.com/AlexsanderHamir/prof
7🔥3👍1
⚙️ Хочешь понять, как пишутся реально быстрые системы на Go?

Вот полезные исходники VictoriaLogs:

Выжимка из 10 фишек, как разрабы выжали максимум из Go:

1. Свои bloom-фильтры → меньше I/O и лишней обработки
2. Колонно-ориентированное хранение → лучше сжатие и кэш
3. mmap + fallback на pread → zero-copy чтение
4. Lock-free object pool’ы и ареновые аллокаторы
5. JSON‑парсеры без reflection — сотни МБ/с на ядро
6. HTML‑шаблоны компилируются → почти скорость printf
7. Сжатие Zstd с учётом словаря → баланс CPU и трафика
8. Параллелизм на всех этапах + адаптивные лимиты
9. Scatter‑gather запись → saturate сеть
10. Быстрые хеши и random без блокировок

📚 Читается как гайд по системному Go. Обязательно к изучению.

https://github.com/VictoriaMetrics/VictoriaLogs
👍9🔥2🥰1
LangChain + SQL? Да, если это YDB.

LangChain — крутая штука, но его всегда приходится как-то интегрировать с данными.
И вот тут возникает интересная пара: YDB + LangChain. Почему? Потому что YDB можно дергать напрямую из LangChain, и при этом вы не теряете гибкость SQL.

На вебинаре покажут:

— Как устроены таблицы с эмбеддингами
— Как выглядит реальный запрос с фильтрацией
— Как работают две версии поиска: точный и приближённый

Подойдёт тем, кто устал писать обвязку под каждую новую LLM-фичу.
🤣1
🔧 Задача для собеседования на Go: Реализация кастомной WaitGroup на семафоре

Условие:
Нужно реализовать аналог sync.WaitGroup с использованием семафора на базе канала. Семафор должен ожидать завершения N горутин, используя минимальные аллокации памяти.

Решение:
package main

import (
"fmt"
)

type sema chan struct{}

func New(n int) sema {
return make(sema, n)
}

func (s sema) Inc(k int) {
for i := 0; i < k; i++ {
s <- struct{}{}
}
}

func (s sema) Dec(k int) {
for i := 0; i < k; i++ {
<-s
}
}

func main() {
numbers := []int{1, 2, 3, 4, 5}
n := len(numbers)

sem := New(n)

for _, num := range numbers {
go func(n int) {
fmt.Println(n)
sem.Inc(1)
}(num)
}

sem.Dec(n)
}


Пояснение:
1️⃣ Семафор реализован как канал пустых структур chan struct{} для минимизации аллокаций
2️⃣ Буферизированный канал создается с размером, равным количеству горутин
3️⃣ Каждая горутина при завершении кладет значение в канал (Inc)
4️⃣ Главная горутина ожидает завершения всех горутин, вычитывая значения (Dec)
5️⃣ Когда все горутины завершатся, канал опустеет и выполнение продолжится

@golang_interview
9👍5🔥2🌚1