Библиотека Go для собеса | вопросы с собеседований
رفتن به کانال در Telegram
Вопросы с собеседований по Go и ответы на них. Покажем, как запустить своего ии-агента: https://clc.to/tvpmD По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197
نمایش بیشتر7 430
مشترکین
-124 ساعت
-137 روز
+730 روز
آرشیو پست ها
❓ Что выводит
%T в fmt.Printf
Выводит тип переменной.
fmt.Printf("%T\n", u)
// Вывод: main.User
🐸Библиотека Go для собеса❓ Что будет, если в пакете net/http зарегистрировано два маршрута и они соответствуют одному запросу
Если два маршрута пересекаются и оба соответствуют одному запросу, Go выберет первый зарегистрированный маршрут, который соответствует запросу. То есть, при обработке запроса, если два маршрута могут совпасть, Go будет использовать обработчик первого из них.
🐸Библиотека Go для собеса
❓ Что выводит
%#v в fmt.Printf
Показывает значение в виде Go-кода.
fmt.Printf("%#v\n", u)
// Вывод: main.User{Name:"Alice", Age:30}
🐸Библиотека Go для собесаОтлично знаете Go? Пройдите онлайн-собеседования за один день и присоединяйтесь к масштабному проекту по переносу ВКонтакте на сервисную архитектуру и новый технологический стек. Это VK One Day Offer для Go-разработчиков с опытом от трёх лет!
Зачем участвовать? Чтобы поработать с продуктами, которые выдерживают нагрузку свыше 2 млн RPS, стать частью команды с активно растущим Go-сообществом и собственным тулингом, работать над сложными архитектурными задачами и возможность влиять на то, каким станет ВКонтакте в ближайшие годы.
ВКонтакте переходит на сервисную архитектуру и строит единую платформу разработки на Go. Не упустите шанс участвовать в проекте, который упростит совершенствование продуктов VK и улучшит опыт миллионов пользователей.
Оставляйте заявку на участие.
❓ Чем отличаются
compress/gzip и compress/zlib
Они используют один и тот же алгоритм сжатия — DEFLATE, но оборачивают его в разные форматы контейнеров.
compress/gzip реализует стандарт GZIP (RFC 1952), который оборачивает данные в формат с более «тяжёлой» заголовочной частью: туда могут входить имя исходного файла, дата модификации, флаг CRC и другое. Этот формат часто используется при передаче данных в HTTP (например, сжатие HTTP-ответов) и в Unix-среде — с утилитами gzip, gunzip.
compress/zlib реализует формат ZLIB (RFC 1950), но имеет более лёгкую обёртку: минимальный заголовок и контрольную сумму Adler-32 вместо CRC32. Он чаще применяется в бинарных форматах, таких как PNG, PDF, а также в сетевых протоколах.
🐸Библиотека Go для собеса❓ Что выведет
%v в fmt.Printf
Выводит значение в читаемой форме без дополнительной информации.
u := User{"Alice", 30}
fmt.Printf("%v\n", u)
// Вывод: {Alice 30}
🐸Библиотека Go для собеса❓ Для чего используется пакет
expvar
Пакет expvar используется для экспорта переменных в формате JSON по HTTP, что позволяет отслеживать внутреннее состояние приложения — например, количество запросов, ошибки, статистику по памяти и другие метрики.
Если запустить код с картинки, то вы увидите переменную «count» и другую информацию.
🐸Библиотека Go для собесаRepost from Библиотека Go-разработчика | Golang
🧱 7 архитектурных паттернов, которые должен знать каждый программист
В быстро меняющемся мире разработки от программиста всё чаще требуется не просто писать код, а понимать, как правильно проектировать системы.
Архитектурные паттерны — это фундаментальные подходы, помогающие создавать масштабируемые, устойчивые и поддерживаемые решения.
В статье собрали и разобрали 7 архитектурных паттернов, которые сегодня стоит знать каждому разработчику — будь то разработка микросервисов, проектирование API или работа с распределёнными транзакциями.
➡️ Узнать паттерны
🐸Библиотека Go разработчика #буст
❓ Как работает
fmt.Sprintf и чем он отличается от fmt.Printf
fmt.Sprintf форматирует строку и возвращает её как результат, не выводя на экран.
fmt.Printf форматирует строку и сразу выводит её на экран.
🐸Библиотека Go для собеса❓ Можно ли добиться от быстрой сортировки времени выполнения O(n log n)
Классическая быстрая сортировка выбирает опорный элемент. Если выбор плохой — например, всегда крайний элемент массива — и массив уже отсортирован (или почти), происходит деградация: один подмассив получает почти все элементы, а другой — почти пустой. Это приводит к дереву рекурсии глубиной n, и итоговая сложность становится O(n²).
🐸Библиотека Go для собеса
❓ Что из себя представляет паттерн Strangler Fig
Название происходит от одноимённого тропического растения, которое растёт вокруг дерева-хозяина, постепенно вытесняя его. По аналогии, новая система «обрастает» старую, заменяя её части одну за другой, пока полностью не вытеснит.
Как это работает:
— Создаётся прокси/фасад перед старой системой.
— Новые функции разрабатываются сразу в новой архитектуре.
— Старые модули постепенно переписываются и переносятся.
— После переноса очередной части — обновляется маршрутизация, чтобы трафик шёл в новую реализацию.
— По завершении — старая система удаляется.
🐸Библиотека Go для собеса
💻Как работать с каналами в Go и сделать ваш код конкурентным?
🔥На открытом уроке «Использование каналов в Go на практике» от OTUS вы погрузитесь в одну из самых мощных особенностей языка Golang. Эти инструменты позволяют эффективно управлять параллельными процессами — ключ к созданию высокопроизводительных приложений.
❗️Что вас ждёт:
— Обзор теории: как работают каналы в Go и зачем они нужны.
— Практические примеры применения каналов в реальных задачах.
— Разбор частых ошибок и подводных камней при работе с каналами.
📗Урок пройдет в преддверии старта курса «Golang Developer. Professional», и все участники получат скидку на обучение.
➡️Встречаемся 14 мая в 20:00 МСК, регистрация открыта: https://clc.to/VVCJHg
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❓ Что такое пакет net/mail в Go и какие задачи он решает
Пакет net/mail используется для создания, парсинга и обработки почтовых сообщений в формате MIME. Он помогает работать с заголовками сообщений, такими как From, To, Subject, и позволяет парсить и формировать MIME-сообщения. Основной функцией пакета является работа с адресами электронной почты и создание сообщений, готовых к отправке через SMTP.
🐸Библиотека Go для собеса
🔥 Конкурс: 30 000 ₽ за самую смешную IT-новость
Напоминаем о конкурсе «Библиотеки программиста»: напишите самую смешную версию реальной новости про технологии.
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🎁 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
🏆 Как будем оценивать:
Мы выложим новости всех участников в одном из наших телеграм-каналов. Те новости, которые наберут больше всего охвата, войдут в шорт-лист. Из шорт-листа подписчики и жюри выберут победителя.
📅 Сроки: прием новостей до 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Осталась неделя — ждем ваших новостей!
❓ Что такое cookiejar в Go и для чего он используется
Библиотека cookiejar предоставляет механизм для управления HTTP-куками. Это часть стандартной библиотеки.
cookiejar позволяет автоматически сохранять и отправлять куки при работе с HTTP-запросами. Куки могут быть получены в ответах сервера и автоматически добавляться в будущие запросы, что позволяет поддерживать состояние между запросами (например, при аутентификации через сессии).
cookiejar инкапсулирует логику работы с куками, избавляя разработчиков от необходимости вручную извлекать и добавлять куки в запросы.
🐸Библиотека Go для собеса
❓ Какие варианты циклов есть в Go
1. Классический for
for i := 0; i < 10; i++ {
fmt.Println(i)
}
2. Условный for (как while)
i := 0
for i < 10 {
fmt.Println(i)
i++
}
3. Бесконечный цикл
for {
fmt.Println("infinite loop")
break // не забудь выйти
}
4. for range — итерация по коллекции
for index, value := range []string{"a", "b", "c"} {
fmt.Println(index, value)
}
🐸Библиотека Go для собеса📅 Итоги недели — нужна ваша реакция
Были интересные вопросы? Может сложновато или наоборот слишком скучно?
Можно просто:
🔥 — нравится
🌚 — так себе
😢 — скучно
Комментарии тоже приветствуются.
🐸Библиотека Go для собеса
❓ Как передавать множество результатов функции
В Go можно возвращать несколько значений из функции напрямую — это одна из встроенных возможностей языка.
🐸Библиотека Go для собеса
❓ Можно ли напрямую взять ссылку на значение в map в Go
❓Как взять ссылку на значение в мапе
В Go нельзя напрямую взять ссылку на значение в мапе — это ограничение языка, связанное с внутренним устройством мап. Значение по ключу в мапе
может перемещаться в памяти, Go может реорганизовывать хеш-таблицу.
Пример, который не скомпилируется:
m := map[string]int{"a": 1}
p := &m["a"]
🐸Библиотека Go для собеса
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
