Latest posts

Библиотека Go для собеса | вопросы с собеседований
18 Sept, 14:11edited
А вы уже забрали свой подарок ко Дню программиста?К вашему профессиональному празднику Tproger, Proglib, Столото, Центральный университет и SmartApe собрали целую коробку подарков. Переходите по ссылке, трясите коробку и забирайте свой презент: https://tprg.ru/tE1MРеклама. ИП Михайлишина Гузель Фаниловна, erid: 2W5zFJrVGHw


Библиотека Go для собеса | вопросы с собеседований
15 Sept, 13:02
❓ Какой максимальный размер бинарного файла можно собратьВ Go нет встроенного ограничения на размер бинарника. Теоретический предел это ресурсы машины, на которой идёт компиляция: свободное место на диске и доступная память.Размер бинарника растёт из-за нескольких вещей:Статическая линковка. Go по умолчанию собирает всё в один файл — рантайм, стандартная библиотека, все зависимости. Никаких внешних .so или .dll. Это удобно при деплое, но увеличивает размер даже у простой программы.Встроенные ресурсы. Через //go:embed можно упаковать в бинарник статику, шаблоны, миграции. Добавили папку с фронтендом — бинарник вырос на её размер.Отладочная информация. По умолчанию Go включает в бинарник DWARF-символы и таблицы имён. Это нужно для профилировщика и стектрейсов, но добавляет вес.Если размер важен, его можно уменьшить флагами линковщика:go build
Библиотека Go для собеса | вопросы с собеседований
15 Sept, 12:16edited
😭 Как не потратить недельный лимит AI-кодинга за три дня?Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода.🔘 Поговорим о том:— когда дорогая модель действительно нужна, а когда хватит дешёвой; — сколько стоит один прогон и куда уходят токены; — какие задачи можно отдавать субагентам; — как настроить маршрутизацию моделей; — что проверять в AI-коде перед merge.✏️ Покажем всё на конкретных цифрах и вживую: сравним расходы до и после.⬇️ 17 сентября, 19:00 МСК ⬇️ 1,5 часа · бесплатно ⬇️ Арсений Харланов и Олег Лайок💬 Пишите в комментариях, где упираетесь в лимиты и на что уходят деньги. Самые залайканные вопросы
Библиотека Go для собеса | вопросы с собеседований
4 Aug, 08:02
❓ Объясните разницу между безопасным доступом к байтам строки через срез и использованием unsafeКогда строку преобразуют в срез байтов, создаётся новая копия данных, и доступ к этим данным безопасен, но это также означает, что данные строки не изменяются.unsafe позволяет работать с указателями и памятью напрямую, что даёт больше гибкости, но это также приводит к неопределённому поведению, если использовать эти указатели для изменения данных.🐸 Библиотека Go для собеса
Библиотека Go для собеса | вопросы с собеседований
4 Aug, 07:00edited
Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механика. Нашли альтернативу ❓2,110Open in Telegram
Библиотека Go для собеса | вопросы с собеседований
4 Aug, 07:00
forwarded from @proglib_academy
👅 Самое сложное — выбрать не курс, а направлениеСегодня хочется разобраться в AI-агентах. Через пару недель появляется задача, где нужны алгоритмы. Потом понимаешь, что неплохо бы освежить Python или математику для Data Science.🔜 Именно поэтому подписка на обучение многим оказывается удобнее отдельных курсов. Можно спокойно переключаться между темами, когда меняются задачи, а не покупать новую программу каждый раз.В подписку Proglib Academy входят все основные направления — AI, ML, Python, алгоритмы, математика для DS и другие курсы, а ещё закрытый видеохаб с вебинарами практиков.Начать можно с пробного месяца. Если решите остаться, его стоимость зачтётся при оформлении подписки 😎🔗 Узнать подробнее🏃♀️ Progli
1,730Open in Telegram
Библиотека Go для собеса | вопросы с собеседований
31 Jul, 17:59
❓ Как создать свою кастомную ошибку в Go• Пакет errors — самый быстрый способПодходит для простых статичных ошибок. Такую переменную удобно объявить один раз и сравнивать через errors.Is. var ErrNotFound = errors.New("запись не найдена")• fmt.Errorf() — когда нужен контекстПозволяет подставить в текст детали. А глагол %w ещё и «оборачивает» исходную ошибку, сохраняя цепочку для errors.Is / errors.Unwrap.return fmt.Errorf("не удалось загрузить юзера %d: %w", id, ErrNotFound)• Кастомный тип через struct — максимум гибкостиНужен, когда к ошибке хочется прикрепить данные (код, поле, статус). Достаточно реализовать метод Error() string — и тип становится ошибкой. type ValidationError struct { Field string Msg string }
Библиотека Go для собеса | вопросы с собеседований
30 Jul, 17:59
❓ Что делает CGO_ENABLEDCGO_ENABLED — это переменная окружения, которая включает или выключает CGo при сборке Go-приложений. Принимает два значения: 1 (включено) и 0 (выключено). CGo — это механизм, позволяющий Go-коду взаимодействовать с C: вызывать C-функции и использовать C-библиотеки прямо из Go-программы.Зачем этим управлять:• CGO_ENABLED=0 даёт полностью статический бинарник без зависимостей от системных C-библиотек — удобно для минимальных Docker-образов (scratch, alpine) и упрощает кросс-компиляцию.• CGO_ENABLED=1 нужен, когда проект реально использует C-код или библиотеки, завязанные на cgoCGO_ENABLED=0 GOOS=linux go build -o appВажный нюанс: по умолчанию CGo включён, но при кросс-компиляции (когда GOOS/GOARCH отличаются от хостовых) Go автоматически отключает его, если не задан C-кросс-компилятор.🐸
Библиотека Go для собеса | вопросы с собеседований
30 Jul, 16:10
forwarded from @proglib_academy
🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе с AI-агентамиНо цель одна: перейти от случайных удачных запусков к управляемому процессу на реальном проекте — с понятными правилами, ревью, контролем расходов и безопасности ✔️На курсе «ИИ для разработчиков» участники выстраивают такой процесс на практике: подключают инструменты, задают границы для агента и учатся понимать, где ему можно доверять работу, а где требуется проверка.⚡️ Предзапись на осенний поток уже открыта🏃♀️ Proglib Academy


Библиотека Go для собеса | вопросы с собеседований
30 Jul, 16:10
Разработчику нужен стабильный результат, DevOps — контроль инфраструктуры, техлиду — правила для всей команды. Собрали это в одном посте 👇1,170Open in Telegram
Библиотека Go для собеса | вопросы с собеседований
29 Jul, 17:59
❓ Что делает переменная окружения GOOS в GoGOOS задаёт целевую операционную систему, под которую компилируется Go-приложение. Она используется при кросс-компиляции — когда код пишется на одной платформе, а собирается под другую (часто в паре с GOARCH, задающей архитектуру процессора). GOOS=linux GOARCH=amd64 go buildОсновные значения GOOS (именно в таком виде, в нижнем регистре): linux windows darwin — macOS (не macos) ios android freebsd openbsd netbsd plan9Полный актуальный список можно получить командой go tool dist list.🐸 Библиотека Go для собеса
Библиотека Go для собеса | вопросы с собеседований
28 Jul, 17:59
❓ Как работает пробинг в Swiss Table1. Считается хеш ключа и делится на две части.На поддерживаемых CPU используется aeshash, иначе — memhash. Полученный хеш разбивается на:H1 (старшие 57 бит) — выбирает стартовую группу; H2 (младшие 7 бит) — «отпечаток» (fingerprint) ключа.2. Внутри группы контрольные байты проверяются параллельно через SIMD. Каждая группа — это 8 слотов и 8-байтовый control word, где каждый байт хранит H2 своего слота. Одной SIMD-инструкцией H2 искомого ключа сравнивается сразу со всеми 8 байтами → получаем маску кандидатов. Только для совпавших по fingerprint слотов сверяется полный ключ.3. Если совпадений нет и пустого слота в группе тоже нет — переходим к следующей группе. Пробинг идёт по группам квадратично, но по треугольным числам: offset = (offset + i) mod size, i = 1, 2, 3, 4... → смещения: h, h+1, h+3, h+6, h+10, ...
Библиотека Go для собеса | вопросы с собеседований
27 Jul, 17:59
❓ Что будет, если вызвать time.Sleep(0)Вопреки распространённому мифу — практически ничего. time.Sleep с длительностью ≤ 0 сразу возвращает управление: горутина не «усыпляется» и не уступает планировщику. По сути это no-op.Часто думают, что time.Sleep(0) отдаёт управление планировщику Go и позволяет переключиться на другие горутины. Но за это отвечает другая функция: runtime.Gosched() // вот это уступает управление планировщику Gosched() снимает текущую горутину с процессора и ставит в очередь, давая шанс другим. А time.Sleep(0) этого не делает — если нужен именно yield, используйте runtime.Gosched().🐸 Библиотека Go для собеса1,370Open in Telegram
Библиотека Go для собеса | вопросы с собеседований
27 Jul, 17:02
forwarded from @proglib_academy
У вас в проекте есть файл вроде utils_v2_final_FIX.py, который все боятся трогать ❓Что делаете с таким легаси?❤️ Не трогаю: работает — и ладно 👍 Переписываю с нуля и надеюсь на лучшее 🔥 Сначала покрываю тестами, потом рефакторю по частям 👾 У нас такого нет — честно-честноНа курсе «ИИ для разработчиков» разберём третий подход: как с помощью агента зафиксировать текущее поведение легаси-кода тестами, а затем менять его небольшими безопасными шагами — без одного огромного PR на тысячу файлов.До 31 июля действует скидка и бессрочный доступ к материалам.🔗 Занять место со скидкой🏃♀️ Proglib Academy


Библиотека Go для собеса | вопросы с собеседований
27 Jul, 17:02
Когда название файла уже само по себе считается техническим долгом 👇1,340Open in Telegram
Библиотека Go для собеса | вопросы с собеседований
26 Jul, 14:59
❓ Что такое fallthrough в Gofallthrough — это ключевое слово внутри switch, которое передаёт управление следующему case, не проверяя его условие.В отличие от C и многих других языков, в Go switch по умолчанию не «проваливается» дальше: выполнение завершается сразу после первого совпавшего case, без явного break. fallthrough включает обратное поведение — принудительный переход к следующему блоку.switch n { case 1: fmt.Println("один") fallthrough case 2: fmt.Println("два") // выполнится, даже если n == 1 default: fmt.Println("другое") }Важные нюансы:• fallthrough передаёт управление безусловно — условие следующего case игнорируется.
Библиотека Go для собеса | вопросы с собеседований
25 Jul, 14:59
❓ В чём разница между //go:build и // +buildОбе директивы — это build constraints (ограничения сборки), которые указывают компилятору, при каких условиях включать файл в сборку. Разница в синтаксисе и возрасте.// +build — старая форма, использовавшаяся до Go 1.17:• Размещается в начале файла, до объявления пакета.• После блока директив обязательна пустая строка.• Условия комбинируются неочевидно: пробел означает «И», запятая — «ИЛИ», а несколько строк — тоже «И». Это часто путало.//go:build — новая форма, введённая в Go 1.17:• Использует привычные логические выражения с &&, ||, ! и скобками.• Читается гораздо понятнее.// Старая форма: // +build linux,amd64 darwin
Библиотека Go для собеса | вопросы с собеседований
24 Jul, 17:10edited
❓ Что особенного в chan struct{}chan struct{} — это канал, по которому передаётся не данные, а сам факт сигнала. Пустая структура struct{} не занимает памяти (0 байт), поэтому такой канал явно говорит читателю кода: «здесь важно только событие, а не его содержимое».Типичные сценарии:• Сигнал завершения / отмены. Закрытие канала (close(done)) разом оповещает всех, кто его слушает.• Синхронизация горутин. Одна горутина ждёт, пока другая пошлёт сигнал ch <- struct{}{}.• Семафоры и ограничение параллелизма, где важен сам факт занятости слота, а не передаваемое значение.done := make(chan struct{})go func() { // ... работа ... close(done) // сигнализируем о завершении }()<-done // ждём сигнал
Библиотека Go для собеса | вопросы с собеседований
24 Jul, 16:10
forwarded from @proglib_academy
📈 Скоро фраза «умею пользоваться AI» в резюме будет звучать так же странно, как сегодня «умею пользоваться Git»Это просто станет частью профессии. А вот умение встроить AI в процесс разработки так, чтобы он действительно ускорял работу команды, останется конкурентным преимуществом 💡🔜 На курсе «ИИ для разработчиков» участники работают со своими проектами и учатся делать AI частью ежедневной разработки: планировать задачи, писать код, проверять изменения, готовить PR и автоматизировать рутину.До конца июля действует специальная цена — 59 990 ₽ вместо 79 990 ₽ 🥳 И получить бессрочный доступ ко всем материалам курса.🔗 Посмотреть, как устроен курс🏃♀️ Proglib Academy


Библиотека Go для собеса | вопросы с собеседований
24 Jul, 16:10
😮💨 До конца июля сохраняются две приятные вещи: специальная цена и бессрочный доступ к материалам курса. Подробнее — в посте 👇1,180Open in Telegram
Related Channels
Other channels in the same section of the catalogue.
