Сегодня - небольшой обзор на книгу Вона Вернона “Реализация методов предметно-ориентированного проектирования” (в оригинале - 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.
