Как добавить асинхронное выполнение предиката в функцию Filter, сохранив обратную совместимость для существующих пользователей пакета?

Сохраните старую Filter с прежним контрактом, а конкурентный вариант добавьте отдельной функцией или явно опциональным API. Новая семантика не должна незаметно менять старые вызовы.

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

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

Сохраните старую Filter с прежним контрактом, а конкурентный вариант добавьте отдельной функцией или явно опциональным API. Новая семантика не должна незаметно менять старые вызовы.

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

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

Сохраните старую Filter с прежним контрактом, а конкурентный вариант добавьте отдельной функцией или явно опциональным API. Новая семантика не должна незаметно менять старые вызовы.

Определите context, ограничение конкурентности, порядок результата и обработку ошибок. Предикат должен быть безопасен при одновременных вызовах; если раньше он имел побочные эффекты, автоматическая параллелизация может сломать поведение. Отдельное имя вроде FilterConcurrent делает различие явным. Для сохранения порядка можно собирать результат по исходным индексам.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее