💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат и результаты по 6 тематическим шкалам с объяснениями и практическими рекомендациями.
Вопрос 22 из 30
На ревью разбирают тему «Тестирование и наблюдаемость». Что здесь следует изменить прежде всего?
Bash Тестирование и наблюдаемость: фрагмент на ревью Копировать
go test -run=^$ -bench=. -count=10 > old.txt
go test -run=^$ -bench=. -count=10 > new.txt
benchstat old.txt new.txt
# Задача: выбрать безопасную правку или способ проверки.
Использовать короткий контролируемый таймаут, синхронизацию запуска и отдельную проверку причины завершения.
Запускать `-shuffle`, `-count`, `-race`, хранить медленные интеграционные тесты отдельно и анализировать пропуски покрытия по риску.
Запускать `-race` в CI и на интеграционных сценариях, увеличивать охват конкурентных ветвей и сохранять отчёты.
Запускать тесты многократно, с `-race`, и собирать профили горутин при подозрении на утечку.
Запускать серии на стабильной машине, фиксировать входы и отдельно следить за p50/p95/p99, CPU, GC и очередями.
Вопрос 23 из 30
В разделе «Тестирование и наблюдаемость» показан конкретный случай. Какое правило отделяет верный разбор от правдоподобной догадки?
Bash Тестирование и наблюдаемость: проверка контракта Копировать
go test -run=^$ -bench=. -count=10 > old.txt
go test -run=^$ -bench=. -count=10 > new.txt
benchstat old.txt new.txt
# Требуется объяснить правило, а не только назвать команду.
Синхронизацию проверяют под `-race`, повторными прогонами и инвариантами результата, а не только отсутствием паники.
Производительность проверяют устойчивым бенчмарком, базовой линией и эксплуатационными метриками, а не одним быстрым запуском.
Перед выпуском нужны модульные, интеграционные и нагрузочные проверки критических путей, а после — контролируемое наблюдение новых ошибок и задержки.
Сериализацию проверяют золотыми примерами, круговым преобразованием и испорченным входом; файловые операции — временным каталогом теста.
Публичный пакет проверяют как внутренними тестами, так и внешним пакетом `_test`, примерами и тестами совместимости ошибок.
Вопрос 28 из 30
Команда проверяет решение по теме «Конкурентность и эксплуатация». Какое правило важнее случайных деталей конкретного запуска?
Bash Конкурентность и эксплуатация: проверка контракта Копировать
go test -run=^$ -bench=. -blockprofile=block.out -mutexprofile=mutex.out ./...
# Требуется объяснить правило, а не только назвать команду.
Каждый запрос обычно обрабатывается конкурентно, поэтому общее состояние обработчика должно быть неизменяемым или синхронизированным.
Расследование строит временную линию из симптома, изменений, метрик, журналов, трассировок и профилей, не начиная с любимой гипотезы.
Параллельные запросы разделяют пул, а одна `Tx` обычно привязана к одному соединению и не является удобным общим объектом для независимых горутин.
Конкурентный дефект может проявляться как редкая порча данных, рост горутин, взаимная блокировка или хвост задержки; нужен набор сигналов.
Профили мьютексов и блокировок показывают ожидание, которое не видно в обычном CPU-профиле.