Golang вопросы собеседований
14.6K subscribers
720 photos
11 videos
1 file
511 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
🚀 Ошибки с sync.WaitGroup в Go и что нового в Go 1.25

В статье “Avoiding Common sync.WaitGroup Mistakes in Go” Джон Калхаун разбирает, как Go 1.25 помогает избежать частых ошибок при использовании sync.WaitGroup.

### 🔹 Ошибка: wg.Add внутри горутины
Часто встречающийся неправильный код:


for i := 0; i < 5; i++ {
go func() {
wg.Add(1)
defer wg.Done()
// работа…
}()
}
wg.Wait()


Проблема: wg.Add(1) вызывается уже внутри горутины. Она может не успеть выполниться до wg.Wait(), из-за чего программа зависает или ведёт себя некорректно.

В Go 1.25 go vet теперь предупреждает:
“WaitGroup.Add called from inside new goroutine”

Правильный вариант:

for i := 0; i < 5; i++ {
wg.Add(1)
go func() {
defer wg.Done()
// работа…
}()
}
wg.Wait()


🔹 Новый метод wg.Go()

Go 1.25 добавил удобный метод Go, который сам вызывает Add и Done:


for i := 0; i < 5; i++ {
wg.Go(func() {
// работа…
})
}
wg.Wait()


Этот код эквивалентен такому:


wg.Add(1)
go func() {
defer wg.Done()
f()
}()


Итог

- go vet теперь ловит ошибки, когда wg.Add вызывается внутри горутины.

- Новый метод wg.Go(...) упрощает код и снижает риск ошибок.

Подробнее: https://www.calhoun.io/avoiding-common-sync-waitgroup-mistakes/
30👍9👏6🎉3🥰1
🚀 Docker + Go pro tip

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


# Этап сборки
FROM golang:1.23 AS builder
WORKDIR /src
COPY . .
RUN go mod download
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app .

# Финальный минимальный образ
FROM scratch
WORKDIR /app
COPY --from=builder /src/app .
ENTRYPOINT ["./app"]


💡 Такой приём:

- даёт контейнер весом в несколько МБ,
- убирает лишние зависимости,
- ускоряет доставку и запуск приложения.

@golang_interview
12🥱8👍4🔥2
🖥 Полный гайд по реальным SQL-вопросам с собеседований

Введение. Собеседования на позиции, связанные с данными (аналитики, инженеры, ученые данных), всё чаще включают нестандартные и продвинутые вопросы по SQL.

Большие технологические компании (Google, Amazon и др.) предъявляют высокие требования: важна не только правильность запроса, но и умение оптимизировать его и разбираться в реальных бизнес-данных.

В этом гайде мы разберем категории наиболее распространенных сложных SQL-задач с реальных собеседований – от платформ вроде DataLemur, LeetCode, StrataScratch – и подробно поясним решения.

Каждая задача сопровождена анализом: условие, оптимальный подход, используемые SQL-конструкции, возможные ошибки и финальное решение (для PostgreSQL и MySQL, с указанием различий где необходимо).

В конце добавлен отдельный раздел о современных базах данных, включая векторные БД (Pinecone, Weaviate, Milvus и др.), с примерами того, что могут спросить про них на собеседовании и как выглядят SQL-подобные запросы для работы с векторами.

📌 Читать гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍32
🚀 Микросервисная платформа для страхования

Yosef — это открытая микросервисная платформа для финансовой страховой отрасли, разработанная на .NET, Python, TypeScript и Golang. Она обеспечивает масштабируемость, гибкость и высокую наблюдаемость для современных страховых приложений.

🚀 Основные моменты:
- Микросервисная архитектура для легкости масштабирования
- Централизованное управление идентификацией и доступом
- Полный цикл страхования от оценки до создания полиса
- Высокая наблюдаемость с использованием Grafana и Prometheus
- Интеграция с современными инструментами безопасности

📌 GitHub: https://github.com/elyosemite/Yosef

#csharp
👍42🔥2🌚2🌭2🐳1
Хотите попробовать себя в бэкенде, но страшно уйти от фронта? 

Это чувство знакомо каждому фронтендеру: сложно оставить родной JS и Webpack и отправиться в неизведанный мир API, баз данных и Docker.

На открытом уроке мы покажем, что переход на Golang — это проще, чем кажется. Вместе разберём, как перенести знакомые фронтендеру навыки в мир Go, создадим работающий API всего за 15 минут и убедимся, что Go — это удобно, логично и выгодно.

📅 Не упускайте шанс открыть для себя новые горизонты в разработке! Встречаемся 17 сентября в 20:00 МСК.

👉 Запишитесь на открытый урок → https://tglink.io/e9b05b52aa38?erid=2W5zFG1cUV6

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🤣5
👣 frizzante — минималистичный веб-сервер, написанный на языке Go, который использует Svelte в качестве шаблонизатора для серверного рендеринга страниц!

🌟 Проект предназначен для упрощения создания веб-приложений, сочетая производительность Go с современными возможностями Svelte.

🔐 Лицензия: GPL-2.0

🖥 Github
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔6👍2🔥2🥰1
Совет на 2025 год — переходите на Go.

На Go собирают банки, маркетплейсы и highload-сервисы. Зарплаты мидлов начинаются от 200 000 ₽, а у сеньоров доходят до 600 000 ₽.

А чтобы освоить его всего за 3 месяца — изучите канал Максима Аверина.

Его бэкграунд: Senior Golang/Python (X5, Lamoda, BestDoctor), 7 лет в бэкенде, экс-тимлид и PM, 300+ собеседований с 2018

На канале вы найдёте:

Советы, которые в разы повысят ваши шансы на перекат в Go

— Как легко выбивать себе ту ЗП, которую желаете: скрипты переговоров и шаблоны писем

— Как сделать мощный проект с code-review и уже через три недели пойти на собесы.

Огромный опыт, который ты можешь перенять абсолютно бесплатно. Переходи и изучай: @maksim_golang
🤣18👍31
🧩 Кастомизируемый JavaScript-парсер с минимальным ядром

Идея проста: ядро парсера — максимально маленькое. Все «дорогие» фичи JS включаются опционально. Так вы получаете нужный синтаксис без лишних накладных расходов.

🔧 Что это даёт
- Меньше зависимостей и памяти.
- Быстрее разбор там, где не нужен весь JS (например, без `class/async/regex`).
- Гибкая сборка под конкретный продукт: от валидации шаблонов до мини-рантайма.

🧱 Архитектура
- Feature flags: подключайте только нужные конструкции (например, import, jsx, template, `async`).
- Модульный AST: узлы для отключённых фич не создаются.
- Стримовый лексер: позволяет парсить большие файлы без полного буфера.
- Sandbox-режим: строгие лимиты глубины/времени для безопасной обработки.

▶️ Пример (Go, условный API)

package main

import (
"context"
"time"

"example.com/jsparser"
)

func main() {
ctx, cancel := context.WithTimeout(context.Background(), 200*time.Millisecond)
defer cancel()

p := jsparser.New(jsparser.Options{
Features: jsparser.Enable(
jsparser.Base, // идентификаторы, выражения, блоки
jsparser.ImportESM, // поддержка import/export
jsparser.TemplateLit, // шаблонные строки
// jsparser.Class, // можно не включать
// jsparser.Async, // можно не включать
// jsparser.JSX, // включайте по надобности
),
MaxDepth: 512,
MaxTokens: 2_000_000,
})

ast, err := p.Parse(ctx, []byte(`import x from "./m.js"; const s = `+"`hi ${x}`"+`;`))
if err != nil {
panic(err)
}
_ = ast // используйте AST для анализа/трансформаций
}


https://github.com/xjslang/xjs
🔥31
🛠️ Управление оповещениями с Keep

Keep — это платформа для управления оповещениями и AIOps, предлагающая единый интерфейс для обработки инцидентов. Она включает функции дедупликации, фильтрации и интеграции с различными инструментами мониторинга.

🚀 Основные моменты:
- 🔍 Удобный интерфейс для управления инцидентами
- 🛠️ Многофункциональные инструменты для обработки оповещений
- 🔄 Глубокая интеграция с инструментами мониторинга
- Автоматизация процессов с помощью GitHub Actions
- 🤖 AI-поддержка для корреляции и обобщения данных

📌 GitHub: https://github.com/keephq/keep

#go
2🔥2👍1
⚡️SQL на собеседованиях: где тренироваться

Принесли вам отличный ресурс, который собрал огромное количество практических задач по SQL.

Там можно найти всё: от базовых упражнений до сложных вопросов, включая отдельный блок с заданиями от FAANG.

Но самое ценное здесь не сами вопросы, а структура подачи:
- Формулировка задачи в формате собеседования
- Подробное решение с объяснением
- Встроенный редактор, чтобы попробовать свои силы прямо на месте

И главное — доступ полностью бесплатный.

Начать тренироваться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Stack Overflow жив, но меняется.

С появлением ChatGPT активность снизилась, зато изменился характер вопросов:
🔹 Их стало меньше, но они длиннее и сложнее.
🔹 Кода стало больше (Python +21%).
🔹 Ответы стали содержательнее.

Учёные проанализировали данные за 2 года:
- Общее число вопросов падает.
- Простых вопросов меньше.
- Средних — больше.
- Сложные остаются на том же уровне.

👉 Итог: простые задачи люди решают через ChatGPT, а на Stack Overflow остаются сложные и контекстные вопросы.

Полное исследование: https://arxiv.org/abs/2509.05879

Видеоразбор: https://www.youtube.com/watch?v=8PgVhqdZo1I
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
🚀 Удобный интерфейс для работы с Kubernetes-кластерами

Aptakube — это мощный инструмент для управления Kubernetes-кластерами с интуитивно понятным интерфейсом. Он поддерживает одновременное подключение к нескольким кластерам и предлагает функции, такие как агрегированный просмотр логов и возможность изменения объектов.

🚀Основные моменты:
- 💯 Подключение к нескольким кластерам одновременно
- ⚡️ Агрегированный просмотр логов
- ⚖️ Сравнение ресурсов
- 🎉 Никакой конфигурации не требуется
- Совместимость с любым Kubernetes-кластером

📌 GitHub: https://github.com/aptakube/aptakube

#go
🔥51👍1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Уже 23 октября узнаем больше о хакрдкорной разработке dev-to-dev решений

Техплатформа Городских сервисов Яндекса проводит митап, на котором эксперты поделятся опытом создания архитектуры нагруженный системы, обрабатывающей сотни тысяч rps в брокере сообщени на MongoDB, и как писать IO-bound сервисы под высокими нагрузками на С++ так же как на Go. 

В программе выступления Антона Полухина, Ромы Елизарова, Лёши Иванова и Влада Назарова, а также нетворкинг в неформальной атмосфере. 

Если интересуетесь разработкой dev-to-dev решений и вы опытный разработчик, обязательно приходите.

👉 23 октября, сбор гостей с 18:00 
👉 Москва, офлайн 

Регистрируйтесь и зовите коллег!

Мероприятие бесплатное. Количество мест ограничено — пожалуйста, дождитесь нашего подтверждения.
1👍1🔥1🌭1
🔥 Google выпустил Mangle — инструмент для декларативного логического программирования и работы с данными через правила.

Что это такое:
- Основан на языке Datalog, но расширяет его возможностями: агрегаты, функции, опциональная типизация.
- Можно объединять данные из разных источников и описывать связи правилами и рекурсией.
- Реализован на Go и работает как библиотека, которую легко встроить в приложение.

Зачем это нужно:
- Позволяет описывать вычисления не кодом «пошагово», а в виде правил.
- Подходит для задач со сложными связями: графы, зависимости, анализ версий, обработка свойств.
- Сохраняет баланс: простота декларативного подхода + реальная функциональность для практических кейсов.

Ограничения:
- Некоторые расширения ломают гарантии «чистого» Datalog (например, не всегда есть гарантия завершения вычислений).
- Проект пока развивается (версия 0.3.0), экосистема ещё небольшая.

Когда использовать:
- Для интеграции данных из разных источников (базы, API, файлы).
- Для анализа сложных структур вроде графов или систем зависимостей.
- Когда важна читаемость и поддерживаемость логики — правила легче поддерживать, чем запутанный код.

🔗 Репозиторий: https://github.com/google/mangle
👍31🔥1🥰1🤔1
📌 В Go есть два разных способа собирать пути, и это важно понимать:

👉 Нужно указать путь к файлу на диске?
Используй filepath.Join из пакета path/filepath.
Он сам подставит правильные разделители:
- / на Linux и macOS
- \ на Windows

👉 Нужно собрать путь со слешами, например для URL?
Используй path.Join из пакета path.
Он всегда будет использовать / и работать одинаково на всех ОС.

⚠️ На Linux оба варианта могут выглядеть одинаково, но на Windows результат будет другим.

#golang #go #programming #backend
👍172