К основному содержимому
#SystemDesign

Object Oriented Design Interview: An Insider’s Guide (Рубрика SystemDesign)

#SystemDesign #OOD #Architecture #Interview #Software #Engineering

Эта книга вышла в 2025 году как продолжение линейки “Insider’s Guide” от ByteByteGo, но уже не про высокоуровневый system design, а про более низкоуровневый объектно-ориентированный дизайн (OOD, object-oriented design), где идеи превращаются в классы, интерфейсы, состояния, потоки выполнения и так далее. Интересно, что уже почти готов и перевод от издательства Питер причем с моим отзывом на обложке книги:)

Авторами книги являются трио: Fawaz Bokhari, Alex Xu и Desmond Zhou, в котором Alex Xu известен лучше всего по начальной серии "System Design Interview: An Insider’s Guide", про которую я уже рассказывал (и которая теперь есть в разборе на system-design.space). В этой книге авторы решили рассказать про новый тип интервью, где проверяются умение строить логичные, расширяемые и поддерживаемые системы, применять принципы ООП и паттерны, а не просто писать синтаксически корректный код. Среди примеров, где используются такие интервью упоминаются Amazon, Bloomberg и Uber.

Книга выглядит как тренажер для кандидата, который получает три важные вещи

1️⃣ Рамка решения OOD-задач В книге заявлен 4-шаговый фреймворк для любой object-oriented design задачи:

  • Понять требования
  • Выделить сущности и связи
  • Продумать взаимодействия
  • Уточнить дизайн и edge cases

2️⃣ Набор типовых задач В книге 11 реальных OOD interview questions с подробными решениями: Parking Lot, Movie Ticket Booking, Unix File Search, Vending Machine, Elevator, Grocery Store, Tic-Tac-Toe, Blackjack, Shipping Locker, ATM и Restaurant Management System

3️⃣ Визуальная модель проектирования В книге приведены 133 диаграммы, которые объясняют архитектуру, workflows и связи между частями системы. В общем, именно визуальная составляющая на интервью ясно кандидат показывает ответственности, границы, состояния и взаимодействия.

Первые три главы книги дают базовое понимание про объектно-ориентированное интервью, как к нему подходить и какие базовые принципы надо держать в голове. А следующие главы уже содержат конкретные задачи, которые можно использовать при подготовке. На каждой задаче стоит делать паузу до чтения решения: самому набросать классы, интерфейсы, последовательность вызовов и основные edge cases. Только после этого сравнивать с авторским решением.

Если смотреть на другие типы интервью, то объектно-ориентированный дизайн - это что-то посередине между кодинговым интервью и системным дизайном. Это уже выше по абстракции написания алгоритмов, но все еще про написание кода внутри сервисов. В этой схеме system design - это про то, какие сервисы есть, как они общаются, где хранятся данные и так далее. А вот low-level или объектно ориентированный дизайн отвечает: какие объекты живут внутри сервиса, кто за что отвечает, какие состояния возможны, где инварианты, как добавлять новые сценарии без переписывания всего кода. Поэтому книга хорошо дополняет классический System Design. Она не заменяет знания про distributed systems, но помогает довести архитектурную идею до уровня, на котором её реально можно реализовать.

#SystemDesign #OOD #Architecture #Interview #Software #Engineering