Живая доменная модель

Опубликовано:
Translations:English
Комментарии:Telegram

Хорошо, когда архитекторы системы выписали все важные для доменной области существительные. Подобрали точные имена, продумали атрибуты, связи, всё красиво. Но вот в коде в результате получается anemic domain model. Читаешь такой код, а у сущностей там ноль поведения, это просто кучки данных, которые перекладываются туда-сюда. Между «самолёт разогнался и взлетел» и «взлетатель переложил самолёт с земли в небо» большая разница. Во второй самолёт так и хочется вдохнуть жизнь.

Любому писателю известно, что лучше всего предложения оживляют глаголы. Если в предложении пять существительных подряд, оно, считай, недвижимость. А вот если в предложении есть глагол, предложение улыбается. Аналогично и с кодом. Хорошие глаголы из доменной области (а не только дефолтные Store/Get/Parse) могут в разы упростить общение между всеми, кто создаёт проект.

Взять, например, мою область. У нас тут детонируют вредоносный код и спиливают клыки опасным ссылкам. Можно даже закрыть глаза на то, что глаголы не на 100% точные. Сам образ человека в каске, который закапывает вредоносный файл поглубже в песок, а потом поджигает бикфордов шнур — это ярко и живо. Ярко и живо благодаря удачному глаголу.

Задержала движение на секунду.