Golang вопросы собеседований
14.1K subscribers
684 photos
7 videos
1 file
488 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
📑 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
👍61🔥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
11👍6🔥3🌚1
📘 На Stepik вышел курс — «Golang - микросервисная архитектура, проектирование API»
Уже знакомы с Go и хотите перейти на следующий уровень? Этот курс — именно то, что нужно, чтобы прокачать свои навыки.

• Полный путь от сетевых протоколов до Kubernetes: HTTP/REST, gRPC, RabbitMQ и Kafka, PostgreSQL, Redis, Docker, Prometheus + Grafana
• Практика на реальных кейсах: проектируем API, пишем микросервисы, покрываем тестами, выкатываем CI/CD
• 180+ интерактивных заданий с автопроверкой — код прямо в браузере, в любое удобное время
• Итоговый pet-project: к финалу курса у вас будет рабочая мини-экосистема из нескольких сервисов

🎓 Сертификат по завершении — добавьте его в резюме или профиль LinkedIn

🚀 Прокачайте Golang с пользой и удовольствием. Начните уже сегодня и получите скидку 25%, которая действительна в течение 48 часов

👉 Пройти курс на Stepik
🥴6👍5
🐹 Совет по использованию переменных в Go

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

Для таких случаев используйте пустой идентификатор (_) в качестве заглушки. Например, когда нужно проигнорировать возвращаемое значение функции или временно отключить проверку неиспользуемого импорта.

@golang_interview
😁14👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Офер в Яндекс за 48 часов: ищем бэкендеров

В команду нужны опытные бэкенд-разработчики на C++, Python, Java и Go. Приглашаем на Мультитрек — онлайн-программу быстрой адаптации.

Всего за 2 дня вы можете получить офер:
• До 18 августа подать заявку и пройти предварительный отбор
• 23 августа решить задачи на технических секциях
• 24 августа пройти финальное собеседование и получить офер
После этого будет возможность поработать с тремя командами и выбрать проект по душе.

Создаём технологии, которые меняют мир. Присоединяйтесь! Оставляйте заявку на сайте.

Реклама. ООО "Яндекс". ИНН 7736207543
🤣24🥴5
Прорыв в алгоритмах: найден способ считать кратчайшие пути быстрее Дейкстры

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

📌 Что изменилось
— Дейкстра много лет считался почти пределом скорости: O(m + n log n).
— Новый алгоритм ломает эту границу и делает это за O(m log^(2/3) n).
— Особенно заметно ускорение на разреженных графах (где рёбер гораздо меньше, чем n²).

💡 Как это работает (вкратце)
— Вместо глобальной сортировки всех вершин — разбивка задачи на мелкие управляемые части.
— Используется смесь идей из Дейкстры и Беллмана–Форда: приоритеты + несколько проходов по рёбрам.
— Такая “умная” обработка фронтира экономит время и обходит старое узкое место.

🚀 Зачем это нужно
— Быстрее решаются задачи в навигации, графах дорог, сетях и планировании.
— Доказано, что Дейкстра — не предел, и можно ещё ускорять поиск кратчайших путей.

📚 Читать cтатью полностью

@golang_interview
👍46🔥165