Инженерные основы
Инженерные темы для Android-разработки: от сопровождаемого кода и поведения runtime до систем, объединяющих мобильный клиент и сервисы.
Порядок изучения
Начните с качества кода и ревью, затем рассмотрите ООП, SOLID и паттерны через практические решения. Алгоритмы и память помогают оценивать производительность. Для распределённых функций начните с основ System Design, затем выбирайте тему по задаче; пример offline-first приложения объединяет эти идеи. Структура самого Android-приложения рассмотрена в разделе Архитектура.
Код и runtime
- Качество кода - читаемость, границы и технический долг.
- Code Review - небольшие изменения и ревью с учётом риска.
- ООП - инкапсуляция, контракты и композиция.
- SOLID - принципы без лишних абстракций.
- Паттерны проектирования - выбор и распознавание решений.
- Алгоритмы и сложность - рост, коллекции и компромиссы.
- Память и runtime - достижимость, утечки и аллокации.
System Design
System Design рассматривает полные потоки данных через мобильный клиент, API, сервисы, хранилища и workers.
- Основы System Design - требования и процесс проектирования.
- System Design Shorts - краткий справочник.
- Масштабирование и capacity - нагрузка и узкие места.
- Хранение и согласованность - владение данными и consistency.
- Кеширование и актуальность - устаревшие данные и invalidation.
- Асинхронная обработка и сообщения - очереди и доставка.
- Надёжность и отказы - тайм-ауты и восстановление.
- Диаграммы System Design - объяснение проектных решений.
- Пример offline-first приложения - применение идей вместе.