Когда вы сознательно отказывались от горутин, хотя могли их использовать?

Как обосновать последовательное выполнение через зависимости, стоимость координации, ограничения ресурсов и измеренную пользу.

Короткий ответ

Что ответить на собеседовании

Приведите реальный пример, где конкурентность не давала полезного выигрыша: операции зависели друг от друга, задача была слишком мала или внешний ресурс уже ограничивал скорость. Горутины требуют управления завершением, ошибками и ресурсами. Последовательный код может быть правильным решением, а независимую работу при необходимости запускают с ограниченным параллелизмом.

Подробный разбор

Ответ с пояснениями

Вопрос не требует доказать, что горутины плохи. Он проверяет, выбираете ли вы конкурентность по задаче, а не добавляете её в любой цикл.

Подходящий реальный пример может касаться небольшой CLI-команды, последовательной транзакции или нескольких быстрых операций. Объясните, какой результат нужен и почему порядок или простота были важнее параллельного запуска.

Отдельно оцените:

  • независимы ли операции;
  • есть ли измеримый выигрыш при перекрытии ожиданий или вычислений;
  • что ограничивает внешнюю систему;
  • как будет распространяться ошибка и отмена;
  • кто дождётся завершения всех запущенных задач;
  • как ограничены память, соединения и число одновременно выполняемых операций.

Горутины легковесны, но не бесплатны. Бесконтрольный запуск способен переполнить пул соединений или создать очередь внутри внешнего сервиса, не ускорив полезную работу. Они также не прекращаются автоматически только потому, что вызывающая функция вернулась.

Если работа независима и выигрыш подтверждается, можно выбрать ограниченное число исполнителей. Если задачи зависят друг от друга, конкурентный запуск может усложнить код без пользы. Примеры корректного завершения и отмены рассмотрены в Go: pipelines and cancellation.

Завершите тем, как проверили свой выбор. Не нужно утверждать, что последовательная версия всегда быстрее: иногда она просто достаточно быстрая, понятнее и легче сопровождается. Если обсуждаете гипотетический пример, отделите его от собственного производственного опыта.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку