Книга

«Реализация методов предметно-ориентированного проектирования», Вон Вернон

КнигаРеализация методов предметно-ориентированного проектированияВон Вернон

Обложка книги «Реализация методов предметно-ориентированного проектирования» Вона Вернона

Сегодня - небольшой обзор на книгу Вона Вернона “Реализация методов предметно-ориентированного проектирования” (в оригинале - Implementing Domain-Driven Design by Vaughn Vernon).

DDD - тема сейчас очень актуальная. Предметно-ориентированное проектирование активно используется при разработке микросервисов, поэтому книга всё ещё хороша и полезна, несмотря на свой почтенный (по меркам сферы IT) возраст.

Содержание книги полностью соответствует названию. Вернон делает акцент на практическом применении всех понятий DDD - от предметных областей до интеграции ограниченных контекстов между собой. Вернон не углубляется в философию DDD, а концентрируется на практических аспектах. Поэтому в книге довольно много примеров кода (на Java).

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

Однако при этом книга Implementing Domain-Driven Design - не лучшая книга для знакомства с DDD. Автор делает много отсылок к главной книге по DDD - “Предметно-ориентированное проектирование” Эрика Эванса. Также сам стиль написания предполагает, что читатель более-менее знаком с основными понятиями. Вернон не раскрывает понятия DDD более глубоко, а просто показывает их практическое применение. Поэтому если читатель совсем не знаком с DDD, то ему будет довольно сложно уловить суть из коротких объяснений автора.

Именно поэтому я НЕ рекомендую начинать изучение DDD с этой книги. С Эванса тоже не рекомендую, кстати 🙂 Если вы хотите познакомиться с предметно-ориентированным проектированием, то начните с книги Влада Хононова “Изучаем DDD – предметно-ориентированное проектирование” (есть на русском, отличный перевод). На неё я также скоро напишу обзор 🙂

Также отмечу, что примеры кода всё-таки на Java (и дополнительно используются Spring, Hibernate и JUnit). Хоть я и знаком с Java, читать код местами может быть непросто из-за особенностей языка и используемых библиотек.

Отдельно хочется отметить русский перевод. Он ужасен. Книга переведена настолько плохо, что я рекомендую читать в оригинале, даже если это для вас сложно. Русский перевод по качеству напоминает машинный, а суть некоторых терминов искажена до неузнаваемости (что такое супертип уровня?).

Плюсы

  • Рассказывается про реализацию DDD на практике.
  • Много примеров кода (и тестов).
  • Читать ощутимо проще, чем книгу Эванса.
  • Хорошо читать 2-3 книгой по DDD, чтобы закрепить концепции практикой.

Минусы

  • Отвратительный русский перевод.
  • Примеры кода не всегда понятны и очевидны.
  • Иногда автор излишне многословен.
  • Не лучшая отправная точка в изучении DDD.
  • Местами довольно скучная и устаревшая.

Выводы

Книга - хорошая. Я точно рекомендую её прочитать, но не первой. “Реализация методов предметно-ориентированного проектирования” хорошо зайдёт, если у вас уже есть какое-то базовое понимание DDD и связанных с ним понятий. Автор делает очень много отсылок к Эвансу в качестве источника знаний, поэтому лучше читать книгу Вернона второй или третьей.

Если вы новичок в DDD, то начните с книги Влада Хононова “Изучаем DDD – предметно-ориентированное проектирование”.

Оценка: 👍 6/10.