Привет, Хаброжители! Спешим поделится с вами первыми рецензиями на предзаказы: «System Design. Проектирование мобильных систем. Подготовка к сложному интервью» и «Object Oriented Design. Подготовка к сложному интервью».

Рецензия на книгу: «System Design. Проектирование мобильных систем. Подготовка к сложному интервью» от Анны Жарковой

Анна Жаркова

разработчик мобильных приложений, руководитель практики в ГК Юзтех, автор книги о Kotlin Multiplatform
https://habr.com/ru/users/anioutka/

Фундаментальный труд, который закрывает критический разрыв между классическим «System Design Interview» и реалиями нативной мобильной разработки. Книга обязательна к прочтению не только для соискателей уровня Senior/Lead, но и для действующих техлидов, желающих привести архитектуру своих проектов к единому стандарту мышления.

В профессиональном сообществе долгое время существовала проблема: стандартные кейсы по проектированию систем (Twitter, YouTube) давались в отрыве от специфики мобильного железа, жизненного цикла приложения и ограничений платформы. Виво решает эту проблему, вводя четкий пятишаговый фреймворк, который становится каркасом для каждой главы. Автор не просто дает решения, он моделирует ход мыслей зрелого инженера: от выявления истинных ограничений (сеть, фон, потребление энергии и т.п.) до финальной валидации компромиссов.

Особо стоит отметить последовательное применение паттерна SSOT (Single Source of Truth) в связке с UDF (Unidirectional Data Flow). Это не дань моде, а выверенная инженерная позиция, которая прослеживается во всех кейсах — от синхронизации сообщений в мессенджере до сложной логики трейдинговой платформы. Автор сумел переложить абстрактные принципы проектирования систем на язык ограничений мобильной платформы.

Такой подход превращает чтение книги в тренировку «системного чутья». Это не очередная книга для «галочки» в списке прочитанного перед собеседованием. Это инструмент пересборки собственного инженерного мышления.

Несмотря на высочайший уровень материала, с позиции архитектора хотелось бы отметить несколько моментов:

Хотя модульность и внедрение зависимостей декларируются как краеугольный камень архитектуры, вопросу стратегии тестирования (в частности, скриншот-тесты для Jetpack Compose/SwiftUI и интеграционные тесты репозиториев) уделено меньше внимания, чем хотелось бы.

Автор сознательно ограничился нативными стеками (Kotlin/Swift). Это оправдано для целевой аудитории FAANG-компаний, но инженерам из мира KMP (Kotlin Multiplatform) или Flutter придется самостоятельно адаптировать слои репозиториев и дизайн API.

Если вы отвечаете за архитектуру мобильного приложения или готовитесь к переходу на уровень Staff+ — эта книга должна лежать на вашем рабочем столе (физическом или виртуальном) рядом с «Чистой архитектурой» Мартина. Это новый стандарт индустрии для описания мобильной инженерии как точной дисциплины.

Практическое руководство MSD превращает сложные собеседования в предсказуемый процесс. Вы получаете 5-шаговую схему эффективного прохождения интервью и разбор 7 реальных кейсов (лента новостей, мессенджер, YouTube, Google Drive, трейдинговая платформа и др.), позволяющий проектировать архитектуру клиента, API, офлайн-режим, кэширование и масштабируемость. Здесь вы найдете готовые шаблоны, trade-off’ы и шпаргалки — все, чтобы уверенно проходить интервью в топ-компаниях и расти от мидла до стафф+.

Оформить предзаказ


Рецензия на книгу: «Object Oriented Design. Подготовка к сложному интервью» от Юрия Дубового

Юрий Дубовой

IT-архитектор и член ПК Mobius, автор языка операционных спецификаций Fractalog и системы Fractalog Studio.
https://habr.com/ru/users/IFITOWS/

В 2026 году программный код стремительно теряет свое значение на фоне растущей потребности в четких спецификациях. В то же время навыки анализа бизнес-процессов и проектирования выходят на первый план, поскольку именно они определяют, как будут выглядеть в конечном счете и архитектура, и системный дизайн, и код. Требования к профессии "инженер-программист" значительно выросли, и теперь необходимо совмещать несколько ролей, которые прежде обычно распределялись между группой специалистов. ООП изначально была методологией, призванной подружить мир бизнес-требований и мир единиц и нулей, но сегодня она актуальна, как никогда.

Книга будет полезна читателям по обе стороны баррикад: как собеседуемым, так и собеседующим. Такие вещи, как системное мышление и качество кода нередко проходят в зоне субъективного восприятия, т.е. являются функцией опыта субъекта. Всякая фундаментальная книга дает опорные точки, на которые можно ориентироваться всем участникам.

Издание полезно рассматривать в первую очередь как учебник или даже курс, который следует пройти целиком. Паттерны проектирования вводятся постепенно и надежно привязываются к практическим задачам: сначала ставится проблема, а затем описывается, как ее решить с помощью паттерна. Паттерны Стратегия и Фасад вводятся с самого начала, поскольку они наиболее близки к бизнес-сценариям, полученным в ходе проработки требований. Далее появляются Компоновщик (деревья и рекурсии), Наблюдатель (пригодится в UI), Декоратор (композиция из Стратегий), даже появляется даже такая экзотика, как Хранитель (отмена действия). Наконец, в книге представлено одно из самых наглядных описаний паттерна Фабрика, какие я когда-либо встречал.

Много внимания уделяется практическому применению структур данных, причем речь идет даже не о выборе между списком и хеш-таблицей, а о самых "приземленных" вещах: когда выбрать перечисление, а когда строку или целое, что такое десятичное значение, какие данные следует хранить в виде хеша и т.д. Эти ньюансы особенно полезны будут новичкам, у которых еще нет опыта работы в прикладных проектах и так называемой "насмотренности". Отражены вопросы конкурентности и блокировок (задача про парковку), диспетчеризации и приоритезации (задача про лифты), транзакционности (банкомат) и многое другое.

В разделах "лучшие практики" кроются самые неочевидные и ценные наблюдения: наследование VS композиция, Стейт-Машины VS набор Стратегий, и т.д. Изучите их с особым вниманием.

Хочется также отметить ряд идей, которые транслируют именно практический опыт автора. Простой в обслуживании код != эффективно работающий код. Сбор требований — в первую очередь (в том числе нефункциональных). Компромиссы следует осознавать и озвучивать. Акторы — не всегда люди, это и системы тоже. В век LLM на собеседовании особенно важно показать с одной стороны и разглядеть с другой, чем инженер отличается от LLM в лучшую сторону. В каждой главе настоящего издания явно и отдельно показывается, как правильно задавать вопросы, как прояснять контекст, какой уровень абстракции выбрать. Невозможно заглянуть интервьюеру (а потом заказчику или руководителю) в голову, но зато можно и нужно синхронизировать контекст.

Также следует отметить, что в рамках одной книги сложно осветить такие темы, как тестирование и проектирование распределенных систем. Все, что легко тестируется, обычно хорошо спроектировано с точки зрения ОПП, поэтому тестируемость является хорошим индикатором для самопроверки. Что касается распределенности, то даже самый простой интерактивный сайт подразумевает серверную и браузерную части и API между ними (который тоже своего рода полиморфизм). В книге эти вопросы почти не освещаются, но вероятность столкнуться с ними на "архитектурном" собеседовании велика. Разумно дополнить свои знания в этих областях, используя другие источники (здесь ссылки на книги по TDD и пр.). Вместе с тем в области паттернов проектирования данное издание является великолепной отправной точкой.

Практическое руководство по подготовке к OOD-собеседованиям в ведущих IT-компаниях. Книга предлагает четкую 4-этапную схему проектирования, глубокий разбор основ ООП и SOLID, а также 14 готовых к реализации систем (парковка, кинотеатр, банкомат, ресторан, лифты и др.). Каждый кейс сопровождается сбором требований, UML-диаграммами, рабочим кодом и проработкой граничных случаев. 

Оформить предзаказ


Для наших хаброжителей действует скидка 35% по промокоду - Предзаказ