Подборка объединяет вопросы, отмеченные на этапах интервью в BWG (Black Wall Group). Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: backend, concurrency, async.
Mutex и RWMutex: эксклюзивная запись и параллельное чтение синхронизация потоков в многопоточных приложениях Mutex: монопольный доступ и блокировка всех операций RWMutex: отдельные режимы блокировки для чтения и…
Роль папок в Go-проекте: cmd, adapters и delivery Разделение кода по зонам ответственности cmd: точка запуска и основной исполняемый файл adapters: связь с внешними системами (БД, API, сервисы) delivery: передача…
Как в Go передавать данные между горутинами с помощью каналов и sync? - Go поддерживает конкурентность на основе goroutine - Каналы (channels) служат структурированным механизмом обмена данными - Через каналы…
Как в Go реализовать graceful shutdown с defer, контекстом и обработкой ошибок в группах горутин? управлять завершением приложения через context.Context (cancel/cancellation) применять defer для освобождения ресурсов,…
Слайс представляет собой структуру поверх массива, содержащую указатель, длину и capacity Когда length становится равен capacity, для слайса выделяется новый массив Чтобы не выполнять копирование при каждом…
Полиморфизм: динамическое поведение обеспечивают интерфейсы Инкапсуляция: реализация скрывается с помощью неэкспортируемых полей и методов Встраивание структур (composition): добавление функциональности без построения…
Как устроен планировщик горутин в Go и какую роль играют GOMAXPROCS и ядра ОС В Go используется M:N модель: большое количество горутин распределяется между меньшим числом системных потоков (OS threads). За…
Антипаттерны аварийного завершения программы Exit внутри глубоко расположенного кода — неожиданный вызов exit/abort из функций Пропуск обработки ошибок — отсутствие реакции на ошибки при критическом fail-fast…
буферизированные: обладают ёмкостью и не блокируют операции сразу небуферизированные: отправитель и получатель блокируются до момента согласования каналы с направлением: односторонние, только для отправки или…
Чем горутины отличаются от потоков ОС и как работает планировщик Go? горутина — легковесный поток, которым управляет runtime Go, а не операционная система создание и завершение горутин требуют минимальных ресурсов:…
Чем отличаются интерфейсы Go и абстрактные классы C#? интерфейс Go описывает только наблюдаемые методы и не содержит реализации абстрактный класс может включать реализацию методов и состояние в Go действует утиный…
небуферизированный канал обеспечивает синхронное взаимодействие горутин при операции send горутина ждёт, пока другая горутина не примет значение одновременная запись нескольких горутин не даёт гарантии порядка, но сам…