TGViewer
ANDROID SCHOOL.RU - Android на практике ANDROID SCHOOL.RU - Android на практике @android_school_ru · 943 subscribers
Post #389 840
Mobile System Design за 5 минут

Недавно собеседовал разработчика к нам в команду. У нас в компании один из этапов это System Design. Кандидат отлично себя показал на кодинг части, но абсолютно не понимал что от него хотят на System Design. Конечно, я сразу подсветил что от него ожидается, но его буквально ввело в ступор, что необходимо рисовать диаграммы и проектировать сущности в реляционной базе данных.

Именно на этой секции валятся ребята, которые по хардам отвечают на 9 из 10. Человек знает, как устроены корутины, работает GC, а потом начинается System Design и все.

Поэтому я собрал краткую шпаргалку, если собес поставили уже на завтра:

1) Сбор требований (10-15 мин)
Самая частая ошибка. Человек понял по-своему задачу и сразу начал рисовать диаграмму.

Сначала необходимо продумать требования, как будто разговариваешь с продуктом или тимлидом

Функциональные требования отвечают на вопрос: «что пользователь может сделать?» - выбери ТОП-3, не больше. Длинный список - минус, не плюс. Интервьюер оценивает умение приоритизировать

Нефункциональные: доступность, масштаб, локализация

2) Проектирование API и модели данных (10-15 мин)
Проектируем ленту постов? User, Post, UserReaction. Тут же можно продумать какой типа пагинации будет использоваться (да их несколько). Не забываем про идемпотентность

GET /v1/posts/:id -> Post
GET /v1/feed -> Post[]

3) Высокоуровневая архитектура (10-15 мин)
Вот тут основная работа. Архитектура клиента (Clean, MVI, MVVM, repository) API, рисуем сервисы, БД, показываем offline-first - подход, CDN, Message Queue, LRU-кэш

4) Углубление в реализацию (10 мин)
А вот тут ты показываешь глубину:

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


📹 Видеокурс для закрепления с примерами и упражнениями

Если ты планируешь менять работу или идти на повышение в ближайшие месяцы - сейчас лучшее время подготовиться.
P.s. Используйте только эту ссылку, иначе Stepik берет конскую (почти половину) комиссию
https://stepik.org/a/262641
  • 👍 3
  • 🔥 3
  • 👨‍💻 3
  • 🤔 1
More from @android_school_ru
  1. Oct 8, 2026Как быть Android-разработчику в эпоху перемен? Спасибо всем, кто принял участие в опросе п…
  2. Sep 28, 2026Post #401
  3. Sep 14, 2026​​Как ChatGPT украл у начинающих разработчиков самое важное. Вчера был День программиста,…
  4. Sep 9, 2026Как научиться решать задачи на Leetcode Знаю, что многих разработчиков буквально вводят в…
  5. Sep 1, 2026🎓 1 сентября - хороший повод снова чему-то поучиться. Особенно если осенью планируете ход…
  6. Aug 31, 2026​​Получил оффер в Яндекс и ... отказался. Да, вы не ошиблись, сам отказался 😁. Никогда не…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →