Подборка объединяет вопросы, отмеченные на этапах интервью в Wildberries. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: infrastructure, go, mobile.
Храните состояние и выполняющуюся Job во ViewModel. Повторные клики во время ожидания игнорируйте, задержку делайте через delay, а после завершения обновляйте текст.
Задержку выполняют корутиной через delay, не блокируя UI. Для одноразового уведомления заранее определяют, можно ли его потерять при уходе экрана и допустим ли повторный показ.
Присвоение value потокобезопасно, но чтение и последующее присвоение не составляют атомарную операцию. update выполняет атомарное преобразование текущего состояния.
Обычный flow-билдер создаёт холодный поток: работа запускается для каждого коллектора. SharedFlow — горячая рассылка, StateFlow — горячее состояние с текущим значением и начальным значением.
Если T1 захватил A, а T2 — B, оба могут бесконечно ждать второй mutex. Единый порядок захвата блокировок по неизменяемому уникальному id кошелька устраняет этот цикл.
UserManager объединяет несколько причин для изменения: правила валидации, хранение и доставку писем. Регистрацию лучше оставить сценарием, а зависимости разделить по ответственности.
Перенесите загрузку и изменение списка в владельца состояния экрана. ProductItem должен получать готовые данные и callbacks, а FAB — отправлять событие добавления.
Я получил профильное образование в области системного анализа, где изучал методы сбора и анализа требований, моделирования бизнес-процессов и проектирования информационных систем.