#Собес #golang
🤔 Опишите шаги тестирования в Golang?
💬 Кратко:
В Go тестирование пакетов осуществляется через файлы, которые заканчиваются на
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
В Go тестирование пакетов осуществляется через файлы, которые заканчиваются на
_test - go, содержащие функции с префиксом Test . Для выполнения тестов используется команда go test . Это помогает автоматизировать процесс проверки корректности работы программ.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😵 Две структуры с одинаковыми полями могут иметь разный размер
Это явление называется «выравнивание» (alignment), концепция, заимствованная из C++, но применимая и в Go.
Посмотрим на пример
У структур A и B одинаковые поля; простая перестановка их порядка делает структуру A вдвое больше. Размер A возрастает до 32 байт, тогда как структура B остаётся меньше - 16 байт.
Подробнее об этом можно прочитать в этой статье:
Struct Optimization — A Small Change
👉 Новости 👉 База вопросов
Это явление называется «выравнивание» (alignment), концепция, заимствованная из C++, но применимая и в Go.
Посмотрим на пример
У структур A и B одинаковые поля; простая перестановка их порядка делает структуру A вдвое больше. Размер A возрастает до 32 байт, тогда как структура B остаётся меньше - 16 байт.
Подробнее об этом можно прочитать в этой статье:
Struct Optimization — A Small Change
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#Собес #for #loop #iteration
🤔 Как в Go реализованы конструкции циклов?
💬 Кратко:
В Go существует только один вид цикла —
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как в Go реализованы конструкции циклов?
💬 Кратко:
В Go существует только один вид цикла —
for. Он может включать три компонента: инициализацию, условие и пост-выражение. Эти части могут быть опущены или использоваться по-разному, что делает цикл гибким и удобным.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #git_push #git_pull
🤔 Что делают команды git push и git pull?
💬 Кратко:
Команда
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что делают команды git push и git pull?
💬 Кратко:
Команда
git push отправляет ваши локальные изменения в удаленный репозиторий. Команда git pull скачивает изменения из удаленного репозитория и объединяет их с вашей локальной версией.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #dto #mapping
🤔 Почему нельзя прокидывать одну и ту же DTO через все слои, и как разделять модели?
💬 Кратко:
DTO служит транспортом для API, доменная модель — для бизнес-логики, модель хранения — для БД. Их цели различны; смешение ведёт к хрупкости. Делайте явный маппинг между слоями.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Почему нельзя прокидывать одну и ту же DTO через все слои, и как разделять модели?
💬 Кратко:
DTO служит транспортом для API, доменная модель — для бизнес-логики, модель хранения — для БД. Их цели различны; смешение ведёт к хрупкости. Делайте явный маппинг между слоями.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
Ошибки в Go: современные подходы
Обработка ошибок в Go эволюционировала с появлением новых возможностей языка. Вот текущие лучшие практики.
Базовые принципы
Ошибки в Go — это значения, реализующие интерфейс error. Стандартный подход предполагает проверку ошибок после каждого вызова функции, который может завершиться неудачей.
Сравнение ошибок
Для проверки типов ошибок используйте errors.Is и errors.As вместо простого сравнения. Эти функции работают с обернутыми ошибками и позволяют проводить проверки по цепочке.
Создание ошибок
Пакет errors предоставляет функции New, Is, As и Unwrap. Для форматирования ошибок используйте fmt.Errorf с %w для сохранения исходной ошибки. Это позволяет создавать цепочки ошибок с сохранением контекста.
Кастомные типы ошибок
Создавайте собственные типы ошибок для передачи дополнительной информации. Реализуйте методы Error() string и Unwrap() error для совместимости со стандартными функциями.
Логирование и обработка
Разделяйте логику обработки ошибок и их логирования. В коде возвращайте ошибки с достаточным контекстом, а в обработчиках верхнего уровня решайте, как их представить пользователю или записать в лог.
Практические рекомендации
Избегайте паники в обычном потоке выполнения. Используйте recover только в особых случаях, например, при обработке внешних библиотек, которые могут паниковать.
Документируйте возможные ошибки в комментариях к функциям. Это помогает другим разработчикам понимать, какие сценарии нужно обрабатывать.
Для сложных приложений рассмотрите использование пакетов для структурированных ошибок, таких как pkg/errors, которые предоставляют дополнительные возможности для трассировки и форматирования.
Помните, что качественная обработка ошибок — это не только про техническую корректность, но и про удобство отладки и понимания кода.
Обработка ошибок в Go эволюционировала с появлением новых возможностей языка. Вот текущие лучшие практики.
Базовые принципы
Ошибки в Go — это значения, реализующие интерфейс error. Стандартный подход предполагает проверку ошибок после каждого вызова функции, который может завершиться неудачей.
Сравнение ошибок
Для проверки типов ошибок используйте errors.Is и errors.As вместо простого сравнения. Эти функции работают с обернутыми ошибками и позволяют проводить проверки по цепочке.
Создание ошибок
Пакет errors предоставляет функции New, Is, As и Unwrap. Для форматирования ошибок используйте fmt.Errorf с %w для сохранения исходной ошибки. Это позволяет создавать цепочки ошибок с сохранением контекста.
Кастомные типы ошибок
Создавайте собственные типы ошибок для передачи дополнительной информации. Реализуйте методы Error() string и Unwrap() error для совместимости со стандартными функциями.
Логирование и обработка
Разделяйте логику обработки ошибок и их логирования. В коде возвращайте ошибки с достаточным контекстом, а в обработчиках верхнего уровня решайте, как их представить пользователю или записать в лог.
Практические рекомендации
Избегайте паники в обычном потоке выполнения. Используйте recover только в особых случаях, например, при обработке внешних библиотек, которые могут паниковать.
Документируйте возможные ошибки в комментариях к функциям. Это помогает другим разработчикам понимать, какие сценарии нужно обрабатывать.
Для сложных приложений рассмотрите использование пакетов для структурированных ошибок, таких как pkg/errors, которые предоставляют дополнительные возможности для трассировки и форматирования.
Помните, что качественная обработка ошибок — это не только про техническую корректность, но и про удобство отладки и понимания кода.
👍5🔥2🤔1
#Собес #golang #metrics #logs
🤔 Middle+ Golang Backend-разработчик в «Альфа»
Техническое собеседование. Осень 2025. Вилка 250к+.
Проект: внутренние сервисы Альфы - без подробностей
Опыт в резюме — 3.5 года. Очень много вопросов по БД
💬 Вопросы:
- Как в Kafka реализовать exactly-once обработку? Какие подводные камни?
- Что такое connection pool в базе данных и зачем он нужен?
- Как реализовать идемпотентность при работе с Kafka?
- Какие сложности бывают при интеграции с Kafka?
- Что такое профилирование и как его использовать в Go?
👉 Все вопросы из этого собеседования (13)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle+ Golang Backend-разработчик в «Альфа»
Техническое собеседование. Осень 2025. Вилка 250к+.
Проект: внутренние сервисы Альфы - без подробностей
Опыт в резюме — 3.5 года. Очень много вопросов по БД
💬 Вопросы:
- Как в Kafka реализовать exactly-once обработку? Какие подводные камни?
- Что такое connection pool в базе данных и зачем он нужен?
- Как реализовать идемпотентность при работе с Kafka?
- Какие сложности бывают при интеграции с Kafka?
- Что такое профилирование и как его использовать в Go?
👉 Все вопросы из этого собеседования (13)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
❤1
#Собес #relation #table #view
🤔 Что такое отношение (relation) в PostgreSQL?
💬 Кратко:
В PostgreSQL отношение — это таблица, которая состоит из строк и столбцов. Каждое отношение представляет собой сущность базы данных, хранящую данные в структурированном виде. Отношения могут быть как обычными таблицами, так и представлениями или индексами.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое отношение (relation) в PostgreSQL?
💬 Кратко:
В PostgreSQL отношение — это таблица, которая состоит из строк и столбцов. Каждое отношение представляет собой сущность базы данных, хранящую данные в структурированном виде. Отношения могут быть как обычными таблицами, так и представлениями или индексами.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
#documentation #библиотеки
📚 Стандартная библиотека Go
Хорошей практикой для Go-разработчиков считается читать стандартную библиотеку языка — там всё очень подробно и классно комментируется. Умеешь читать стандартную библиотеку, значит, понимаешь, как развивался и создавался язык, глубже погружаешься в него и качественнее пишешь свои продукты.
Она огромная, и лучше не читать её полностью, а заглядывать время от времени. Например, не знаешь, как работает та или иная функция, — находишь и читаешь подробное описание.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Стандартная библиотека Go
Хорошей практикой для Go-разработчиков считается читать стандартную библиотеку языка — там всё очень подробно и классно комментируется. Умеешь читать стандартную библиотеку, значит, понимаешь, как развивался и создавался язык, глубже погружаешься в него и качественнее пишешь свои продукты.
Она огромная, и лучше не читать её полностью, а заглядывать время от времени. Например, не знаешь, как работает та или иная функция, — находишь и читаешь подробное описание.
Перейти к материалу
👉 База вопросов 👉 Новости
❤2
Forwarded from YeaHub
Что для вас было бы наиболее полезным?
Anonymous Poll
29%
Парсер навыков по специальностям с HH
30%
Сервис тестов с вариантами ответов
41%
Сервис лайвкодинга (аналог leetcode)
7%
Горячий режим
31%
Полный роадмап по специальностям
23%
Автоотклики на HH
28%
Шаблонизатор резюме
27%
Агрегатор вакансий
❤1
#Собес #message_broker #kafka #socket
🤔 Чем сокеты отличаются от брокеров сообщений (например, Kafka)?
💬 Кратко:
Сокеты — инструмент для прямой передачи данных между клиентом и сервером. Брокеры сообщений (Kafka, RabbitMQ) — промежуточные системы: принимают сообщения от отправителей, хранят их и доставляют получателям. Kafka устойчив к сбоям, поддерживает очереди и сложную маршрутизацию.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Чем сокеты отличаются от брокеров сообщений (например, Kafka)?
💬 Кратко:
Сокеты — инструмент для прямой передачи данных между клиентом и сервером. Брокеры сообщений (Kafka, RabbitMQ) — промежуточные системы: принимают сообщения от отправителей, хранят их и доставляют получателям. Kafka устойчив к сбоям, поддерживает очереди и сложную маршрутизацию.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤2
Метрики в Go: инструменты и практики сбора
Сбор метрик — важная часть разработки современных приложений. В Go для этого есть несколько проверенных инструментов.
Библиотеки для работы с метриками
Prometheus клиент — наиболее популярное решение. Он предоставляет готовые типы метрик: счетчики, гистограммы, гауссы и сводки. Библиотека потокобезопасна и эффективна.
Expvar — встроенный пакет для экспорта переменных. Подходит для простых случаев, когда не нужны сложные типы метрик. Легко интегрируется с стандартными инструментами мониторинга.
OpenTelemetry — современный стандарт для сбора телеметрии. Поддерживает не только метрики, но и трассировку. Хорошо подходит для распределенных систем.
Типы метрик и их применение
Счетчики (Counters) используйте для мониторинга количества событий: запросов, ошибок, обработки элементов. Они только увеличиваются и сбрасываются при перезапуске.
Гистограммы (Histograms) полезны для измерения распределения значений: времени ответа, размера запросов, нагрузку на систему. Они автоматически группируют значения в корзины.
Гауссы (Gauges) подходят для значений, которые могут увеличиваться и уменьшаться: объем памяти, количество горутин, размер очереди.
Практические советы
Добавляйте метрики постепенно, начиная с самых критичных показателей: время обработки запросов, ошибки, использование ресурсов.
Используйте метки (labels) для детализации, но не переусердствуйте. Каждая комбинация меток создает новую временную серию, что может увеличить нагрузку.
Регулярно проверяйте актуальность метрик. Удаляйте неиспользуемые и добавляйте новые по мере развития приложения.
Для высоконагруженных участков кода используйте возможности пакета expvar или специализированные библиотеки, которые минимизируют накладные расходы.
Интеграция с системами мониторинга
Настройте автоматическое обновление метрик в фоне, если используете тяжеловесные операции для их сбора.
Экспортируйте метрики в формате, понятном вашей системе мониторинга. Большинство современных решений поддерживают Prometheus формат.
Не забывайте про документацию: описывайте назначение каждой метрики и ее меток. Это поможет команде эффективно использовать данные для диагностики проблем.
Помните, что метрики — это не только про технический мониторинг, но и про понимание поведения приложения в реальных условиях. Правильно настроенная система метрик помогает быстро обнаруживать и диагностировать проблемы.
Сбор метрик — важная часть разработки современных приложений. В Go для этого есть несколько проверенных инструментов.
Библиотеки для работы с метриками
Prometheus клиент — наиболее популярное решение. Он предоставляет готовые типы метрик: счетчики, гистограммы, гауссы и сводки. Библиотека потокобезопасна и эффективна.
Expvar — встроенный пакет для экспорта переменных. Подходит для простых случаев, когда не нужны сложные типы метрик. Легко интегрируется с стандартными инструментами мониторинга.
OpenTelemetry — современный стандарт для сбора телеметрии. Поддерживает не только метрики, но и трассировку. Хорошо подходит для распределенных систем.
Типы метрик и их применение
Счетчики (Counters) используйте для мониторинга количества событий: запросов, ошибок, обработки элементов. Они только увеличиваются и сбрасываются при перезапуске.
Гистограммы (Histograms) полезны для измерения распределения значений: времени ответа, размера запросов, нагрузку на систему. Они автоматически группируют значения в корзины.
Гауссы (Gauges) подходят для значений, которые могут увеличиваться и уменьшаться: объем памяти, количество горутин, размер очереди.
Практические советы
Добавляйте метрики постепенно, начиная с самых критичных показателей: время обработки запросов, ошибки, использование ресурсов.
Используйте метки (labels) для детализации, но не переусердствуйте. Каждая комбинация меток создает новую временную серию, что может увеличить нагрузку.
Регулярно проверяйте актуальность метрик. Удаляйте неиспользуемые и добавляйте новые по мере развития приложения.
Для высоконагруженных участков кода используйте возможности пакета expvar или специализированные библиотеки, которые минимизируют накладные расходы.
Интеграция с системами мониторинга
Настройте автоматическое обновление метрик в фоне, если используете тяжеловесные операции для их сбора.
Экспортируйте метрики в формате, понятном вашей системе мониторинга. Большинство современных решений поддерживают Prometheus формат.
Не забывайте про документацию: описывайте назначение каждой метрики и ее меток. Это поможет команде эффективно использовать данные для диагностики проблем.
Помните, что метрики — это не только про технический мониторинг, но и про понимание поведения приложения в реальных условиях. Правильно настроенная система метрик помогает быстро обнаруживать и диагностировать проблемы.
🔥3👍2❤1🤔1
#Собес #panic #recover #goroutine
🤔 Что произойдёт, если в горутине произойдёт panic?
💬 Кратко:
Если в горутине случается panic, она завершится аварийно. Это не влияет на другие горутины, но может привести к потере данных или недопониманию, если не используется recover.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что произойдёт, если в горутине произойдёт panic?
💬 Кратко:
Если в горутине случается panic, она завершится аварийно. Это не влияет на другие горутины, но может привести к потере данных или недопониманию, если не используется recover.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
#course #ии
📚 Мини-курс о применении ИИ в разработке
Он рассчитан на начинающих, пройти его можно всего за час. Конспекты доступны на русском языке
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Мини-курс о применении ИИ в разработке
Он рассчитан на начинающих, пройти его можно всего за час. Конспекты доступны на русском языке
Перейти к материалу
👉 База вопросов 👉 Новости
❤1
#Собес #map_iteration #random_order #non-deterministic
🤔 В каком порядке перебираются элементы мапы?
💬 Кратко:
Порядок обхода мапы рандомизирован и меняется при каждом запуске программы. Go не гарантирует детерминированный порядок
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 В каком порядке перебираются элементы мапы?
💬 Кратко:
Порядок обхода мапы рандомизирован и меняется при каждом запуске программы. Go не гарантирует детерминированный порядок
for range m. Это сделано для безопасности и предотвращения зависимости кода от порядка.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
#Собес #pattern #outbox #transaction
🤔 Что такое transactional outbox и зачем он нужен?
💬 Кратко:
Transactional outbox — это способ гарантированной доставки сообщений между сервисами. Он сохраняет сообщение в БД в рамках бизнес-транзакции, а затем отправляет его асинхронно.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое transactional outbox и зачем он нужен?
💬 Кратко:
Transactional outbox — это способ гарантированной доставки сообщений между сервисами. Он сохраняет сообщение в БД в рамках бизнес-транзакции, а затем отправляет его асинхронно.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Кубернетес для Go-разработчика: основы
Разработчику на Go не нужно быть экспертом в Kubernetes, но понимание основных концепций обязательно.
Базовые объекты
Deployment управляет созданием и обновлением подов. В манифесте описывается образ контейнера, реплики, стратегия обновления.
Pod — минимальная единица развертывания. Один под может содержать несколько контейнеров, но обычно это один контейнер с приложением.
Service обеспечивает сетевой доступ к подам. LoadBalancer и Ingress управляют внешним доступом.
ConfigMap и Secret хранят конфигурацию. Используйте их вместо переменных окружения в коде.
Практические аспекты
Liveness и Readiness пробы критически важны для Go-приложений. Liveness проверяет работоспособность, Readiness — готовность принимать трафик.
Resource requests и limits предотвращают потребление всех ресурсов ноды. Всегда устанавливайте лимиты памяти и CPU.
Horizontal Pod Autoscaler автоматически масштабирует приложение на основе нагрузки. Настройте целевой показатель использования CPU или кастомные метрики.
Сбор логов и метрик
Используйте stdout/stderr для логов. Kubernetes автоматически собирает их через драйвер логирования.
Экспортируйте метрики в формате Prometheus. Настройте ServiceMonitor для их автоматического сбора.
Для трассировки используйте OpenTelemetry. Инжектируйте агент или настройте sidecar-контейнер.
Локальная разработка
Minikube и Kind позволяют развернуть локальный кластер. Настройте hot-reload для ускорения разработки.
Telepresence и Skaffold упрощают отладку в облачном кластере.
kubectl — основной инструмент для взаимодействия с кластером. Изучите основные команды для диагностики проблем.
Разработчик должен понимать, как приложение работает в Kubernetes, чтобы создавать cloud-native приложения. Этого достаточно для большинства позиций.
Разработчику на Go не нужно быть экспертом в Kubernetes, но понимание основных концепций обязательно.
Базовые объекты
Deployment управляет созданием и обновлением подов. В манифесте описывается образ контейнера, реплики, стратегия обновления.
Pod — минимальная единица развертывания. Один под может содержать несколько контейнеров, но обычно это один контейнер с приложением.
Service обеспечивает сетевой доступ к подам. LoadBalancer и Ingress управляют внешним доступом.
ConfigMap и Secret хранят конфигурацию. Используйте их вместо переменных окружения в коде.
Практические аспекты
Liveness и Readiness пробы критически важны для Go-приложений. Liveness проверяет работоспособность, Readiness — готовность принимать трафик.
Resource requests и limits предотвращают потребление всех ресурсов ноды. Всегда устанавливайте лимиты памяти и CPU.
Horizontal Pod Autoscaler автоматически масштабирует приложение на основе нагрузки. Настройте целевой показатель использования CPU или кастомные метрики.
Сбор логов и метрик
Используйте stdout/stderr для логов. Kubernetes автоматически собирает их через драйвер логирования.
Экспортируйте метрики в формате Prometheus. Настройте ServiceMonitor для их автоматического сбора.
Для трассировки используйте OpenTelemetry. Инжектируйте агент или настройте sidecar-контейнер.
Локальная разработка
Minikube и Kind позволяют развернуть локальный кластер. Настройте hot-reload для ускорения разработки.
Telepresence и Skaffold упрощают отладку в облачном кластере.
kubectl — основной инструмент для взаимодействия с кластером. Изучите основные команды для диагностики проблем.
Разработчик должен понимать, как приложение работает в Kubernetes, чтобы создавать cloud-native приложения. Этого достаточно для большинства позиций.
❤2
#Собес #golang #channels #memory
🤔 Middle+ Golang Backend-разработчик в Smartway
Техническое собеседование. Лето 2025. Вилка 260к+. Проект: Отели и бронирования. Опыт в резюме — 3.5 года. Было много вопросов по: Go, конкурентности, работе с каналами, управлению памятью, структурам данных, работе с контекстами.
💬 Вопросы:
- Как с помощью context регулировать время ожидания в Go?
- Почему линейный поиск может быть неэффективен?
- Почему нельзя хранить context в структуре надолго?
- Когда и как стоит использовать panic в Go?
- Что такое анонимные структуры в Go и зачем они нужны?
👉 Все вопросы из этого собеседования (15)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle+ Golang Backend-разработчик в Smartway
Техническое собеседование. Лето 2025. Вилка 260к+. Проект: Отели и бронирования. Опыт в резюме — 3.5 года. Было много вопросов по: Go, конкурентности, работе с каналами, управлению памятью, структурам данных, работе с контекстами.
💬 Вопросы:
- Как с помощью context регулировать время ожидания в Go?
- Почему линейный поиск может быть неэффективен?
- Почему нельзя хранить context в структуре надолго?
- Когда и как стоит использовать panic в Go?
- Что такое анонимные структуры в Go и зачем они нужны?
👉 Все вопросы из этого собеседования (15)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
❤2
#Собес #feature #gitflow
🤔 Что такое рабочий процесс Gitflow?
💬 Кратко:
Gitflow — это стратегия ветвления, которая делит разработку на несколько веток:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое рабочий процесс Gitflow?
💬 Кратко:
Gitflow — это стратегия ветвления, которая делит разработку на несколько веток:
main для релизов, develop для активной разработки и дополнительные ветки для новых функций, исправлений багов и релизов. Этот процесс удобен для крупных проектов с чёткими этапами разработки.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍1
#video #архитектура
📚 Чистая архитектура и как её готовить
Чистая архитектура хороша тем, что разные составляющие кода в ней разделены: если что-то поменять в одном «слое», то в другом ничего не сломается. Такие системы легче масштабировать и совершенствовать. Чтобы понять, что такое чистая архитектура и как она работает, можно прочитать какую-нибудь книгу — но видео объясняет тему не хуже.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Чистая архитектура и как её готовить
Чистая архитектура хороша тем, что разные составляющие кода в ней разделены: если что-то поменять в одном «слое», то в другом ничего не сломается. Такие системы легче масштабировать и совершенствовать. Чтобы понять, что такое чистая архитектура и как она работает, можно прочитать какую-нибудь книгу — но видео объясняет тему не хуже.
Перейти к материалу
👉 База вопросов 👉 Новости
#Собес #server_shutdown #waitgroup #resource_cleanup
🤔 Как правильно подключить http.Server.Shutdown с воркерами и ресурсами?
💬 Кратко:
Создайте общий context.WithCancel, передайте его воркерам, а при сигнале: Shutdown(ctx) для HTTP, закройте входящие каналы, дождитесь WaitGroup, освободите ресурсы (БД/кэш), соблюдая таймаут.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как правильно подключить http.Server.Shutdown с воркерами и ресурсами?
💬 Кратко:
Создайте общий context.WithCancel, передайте его воркерам, а при сигнале: Shutdown(ctx) для HTTP, закройте входящие каналы, дождитесь WaitGroup, освободите ресурсы (БД/кэш), соблюдая таймаут.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1