В этой подборке вопросы сгруппированы по формату «Поведенческие вопросы», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, database, async.
Почему блокировки только записи недостаточно? (check-then-act под замком) Контекст: конкуррентность и синхронизация потоков Если под замком находится только запись, сама проверка остаётся уязвимой к изменениям из…
горутины — лёгкие потоки, для которых не предусмотрен встроенный механизм прерывания отсутствие API для принудительной остановки повышает безопасность и помогает предотвращать утечки ресурсов попытка «убить» горутину…
Почему в Go чаще выбирают небуферизированные каналы? В Go каналы применяют для синхронизации Небуферизированный канал блокирует и отправителя, и получателя Обеспечивает жёсткую синхронизацию goroutine Предотвращает…
Почему в React хуки пришли на смену классовым компонентам и какие задачи они решили? React: функциональные компоненты используют хуки Устранили избыточную громоздкость классов Отказались от обязательного использования…
Контекст: лямбда-выражения в Kotlin и других похожих языках it — неявное обозначение параметра лямбды в сложных лямбдах it может ухудшать читаемость программы особенно неудобен при нескольких параметрах и вложенных…
ограниченные сроки и ресурсы → фокус на UI как способе быстро проверять систему UI-тесты проверяют end-to-end сценарии вместе с проходящей через них бизнес-логикой бизнес-правила могли проверяться через интеграционные…
Почему конструкторное внедрение зависимостей с @RequiredArgsConstructor предпочтительнее, чем @Autowired в поле? Dependency Injection (DI) в Spring Конструктор гарантирует явно инициализированное состояние объекта…
Почему возникает StackOverflowError? ошибка, связанная с переполнением стека вызовов в памяти появляется при рекурсивных вызовах, для которых не предусмотрен базовый случай стек переполняется из-за чрезмерно глубокой…
Что случится, если equals() считает два объекта равными, а их hashCode() различаются? Контракт equals/hashCode нарушается Hash-based коллекции (HashMap, HashSet) начинают работать некорректно Равные объекты могут…
MVI строится на однонаправленном потоке данных, поэтому состояние проще контролировать разделение на Model, View, Intent улучшает тестируемость и сопровождение состояние (state) хранится как immutable, что уменьшает…