1/89
Великий набір словникових флешкарточок українською з термінами та визначеннями на тему мобільного дизайну систем і інтерв’ю.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Рамки мобільних інтерв’ю з дизайном мобільних систем
Наданий огляд підходу до мобільних системних інтерв’ю, де основна увага приділяється мисленню та комунікації, а не готовому продакшн-рішенням.
Інтро (Introductions)
Коротко представитися та підкреслити релевантний досвід для розмови під час знайомства.
Визначення завдання
Етап, на якому інтерв’юер презентує задачу (наприклад, Design Twitter Feed) та допомагає окреслити обсяг і вимоги.
Функціональні вимоги
Виділення 3–5 цінних функцій, що становлять основний функціонал системи.
Нефункціональні вимоги
Критично важливі вимоги для успіху продукту: продуктивність, надійність, масштабування, використання батареї.
Out-of-Scope (За межами завдання)
Елементи, які важливі у реальному проекті, але не входять до завдання інтерв’ю.
Сигнал (Providing the ‘Signal’)
Очікувана демонстрація мислення та раціоналізації від кандидата під час обґрунтування рішень.
Клієнтська сторона (Client-side)
Розробка мобільного застосунку та його логіки з взаємодією з бекендом через API.
Клієнтська сторона + API
Дизайн клієнтського застосунку разом з API, з акцентом на контракт API.
Клієнтська сторона + API + Backend
Повна розгляд: клієнт, API та бекенд взаємодіють як цілий стек.
Високорівнева діаграма
Показ архітектури на високому рівні з головними компонентами й взаємодіями.
Архітектурні патерни
Перелік основних патернів: MVP, MVVM, MVI, Clean Architecture, Redux.
MVP
Model-View-Presenter — патерн з розділенням UI, логіки та моделей.
MVVM
Model-View-ViewModel — патерн з розділенням даних і представлення через ViewModel.
MVI
Model-View-Intent — патерн з однонапрямленим потоком даних.
Clean Architecture
Архітектура, де бізнес-логіка ізольована від UI та платформи.
Redux
Управління станом через єдине джерело правди та predictible поток даних.
C4 модель
Модель архітектури для візуалізації систем на різних рівнях деталізації.
Пагінація
Розбиття списку на сторінки/прикладних запитів для зручності завантаження.
Offset pagination
Пагінація з параметрами offset та limit; проста, але може бути повільною на великих наборах.
Keyset pagination
Пагінація за ключем (timestamp/ID) для кращої продуктивності на великих датасетах.
Cursor pagination
Пагінація з курсором, що позначає місце в даних та використовується для навігації.
Pagination drift
Зміщення елементів між сторінками через вставлення/видалення даних.
Cursor NEXT/PREV
Курсори для переходу до наступної або попередньої сторінки.
REST
API-архітектурний стиль, що використовує HTTP-методи для CRUD та ресурсо-орієнтований дизайн.
GraphQL
Мова запитів для отримання лише потрібних даних з сервера.
GraphQL Subscriptions
Підтримка оновлень у реальному часі через підключення до сервера.
WebSockets
Двосторонній постійний канал між клієнтом і сервером з низькою затримкою.
Server-Sent Events
Односторонній потік подій від сервера до клієнта через HTTP.
MQTT
Легкий протокол pub/sub, зручний для IoT; підтримує кілька паралельних потоків.
gRPC
RPC-фреймворк на основі HTTP/2 з підтримкою бі-дорожнього стрімінгу.
Push-повіщення
Сповіщення від сервера до пристрою; залежить від OS та сервера сповіщень.
HTTP-полінг
Періодичні запити за оновленнями; простий, але може мати затримки.
Long polling
Підтримання відкритого з'єднання до появи оновлення.
Authorization header
HTTP-заголовок з токеном доступу; може відповідати 401.
Rate limiting
Обмеження кількості запитів за певний проміжок часу.
Exponential backoff
Затримка між повторними запитами з наростаючою швидкістю.
Bearer token
Тип токена доступу у заголовку Authorization.
Варіанти збереження даних на пристрої
Різні сховища: локальні, БД, файлове зберігання.
Key-Value Storage
Зберігання простих даних за ключами (наприклад, UserDefaults/SharedPreferences).
Безпечне локальне зберігання
Захищене зберігання чутливих даних через KeyStore/KeyChain.
KeyStore/KeyChain
Зберігає криптографічні ключі та підтримує безпеку збереження.
EncryptedSharedPreferences
Зашифровані сховища параметрів на Android.
SQLite/Room/Core Data/Realm
База даних або ORM: зручний доступ до структурованих даних та запитів.
ACID
Атомність, узгодженість, ізоляція та довговічність транзакцій.
SQLCipher
Шифрування бази даних SQLite для захисту даних.
Core Data
iOS ORM-інструмент для управління моделями та запитами.
Користувацьке/бінарне зберігання
Низькорівневе серіалізування та збереження (наприклад Protobuf) без ORM.
Файлове зберігання
Зберігання великих даних як файли (наприклад зображення, відео).
Внутрішнє зберігання
Ізольоване сховище даних для застосунку; дані видаляються з видаленням застосунку.
Зовнішнє зберігання
Публичне сховище, яке може бачити інші застосунки; може вимагати дозволів.
Найкращі практики зберігання
Уникати зберігання чутливих даних без шифрування; контроль зростання сховища.
Зберігання вкладень
Зашифроване зберігання медіа; управління кешем та за потреби – очищення.
Image Loader
Компонент завантаження та кешування зображень.
Kingfisher
iOS-бібліотека завантаження зображень.
SDWebImage
iOS-бібліотека кешування та завантаження зображень.
App Module
Частина системи, що «склеює» компоненти та керує застосунком.
Координатор
Компонент, що управляє навігацією між екранами та потоком.
API Service
Інтерфейс взаємодії з бекендом; інкапсулює мережеві запити.
Персистенс
Локальне збереження даних з можливістю офлайн-доступу.
Репозиторій
Посередник між API та персистенсом; об'єднує дані з різних джерел.
Граф залежностей (DI)
Інверсія залежностей; забезпечує модульність та тестування.
Pager
Об’єкт, який керує завантаженням та подачею даних у вигляді пагінації.
Remote Mediator
Компонент, який отримує дані з віддаленого джерела та зберігає їх у персистенсі.
Dependency Injection
Впровадження залежностей (DI) для поліпшення тестування та модульності.
Кеш зображень
Зберігання вже завантажених зображень для подальшого повторного використання.
Життєвий цикл застосунку
Управління створенням, активністю та знищенням застосунку.
Analytics Service
Модуль збору та передачі аналітики використання застосунку.
Огляд сповіщень у реальному часі
Огляд підходів до реального часу оновлень: Push, SSE, WebSocket.
Prefetching
Передзавантаження даних або ресурсів до їх фактичного використання.
Кеш-орієнтований префетчинг
Prefetching з урахуванням того, що вже є в кеші.
Just-In-Time префетчинг
Передзавантаження безпосередньо перед використанням.
QoS (Quality of Service)
Пріоритизація мережевих запитів за їх важливістю та впливом на користувача.
Користувач-крайній пріоритет (User-Critical)
Запити, що безпосередньо впливають на досвід користувача.
UI-Critical
Запити, важливі для відгуку UI, але можуть бути злегка затримані.
UI-Non-Critical
Запити, які покращують UI, але не є критичними.
Фонова задача (Lowest Priority)
Запити, що виконуються у фоновому режимі та не впливають миттєво на користувача.
Скасування запитів
Механізми скасування тривалих або непотрібних запитів.
Адаптивна одночасність
Динамічне регулювання кількості паралельних запитів залежно від стану пристрою.
Пріоритизація запитів
Призначення пріоритетів запитам за важливістю для користувача.
Токени скасування
Засіб ідентифікації та відмінювання виконання запитів.
Throttling
Обмеження швидкості запитів для запобігання перенавантаження.
Облік стану пристрою
Урахування стану батареї, підключення до мережі та інших факторів при плануванні запитів.
Оптимізація управління живленням
Заходи зменшення використання батареї та управління wake-процесами.
DPIA (Data Protection Impact Assessment)
Оцінка впливу захисту даних для виявлення ризиків приватності.
PETs (privacy-enhancing technologies)
Технології підвищення приватності, як диференційована приватність.
End-to-end шифрування
Захист даних під час передачі та зберігання від кінця до кінця.
Мінімізація даних
Збір лише мінімально необхідних даних.
Політика зберігання даних
Визначення термінів зберігання та видалення даних.
Настрій під час інтерв’ю
Позитивний, допитливий та співпраця із собою; готовність навчитися.