💡 Инструкция: Выберите один ответ из пяти. На 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
# Задача: выбрать безопасную правку или способ проверки.
Запускать тесты многократно, с `-race`, и собирать профили горутин при подозрении на утечку.
Запускать `-shuffle`, `-count`, `-race`, хранить медленные интеграционные тесты отдельно и анализировать пропуски покрытия по риску.
Запускать серии на стабильной машине, фиксировать входы и отдельно следить за p50/p95/p99, CPU, GC и очередями.
Запускать `-race` в CI и на интеграционных сценариях, увеличивать охват конкурентных ветвей и сохранять отчёты.
Использовать короткий контролируемый таймаут, синхронизацию запуска и отдельную проверку причины завершения.
Вопрос 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-профиле.