четверг, 4 февраля 2010 г.

Domain specific

Сегодня я взялся за один весьма объёмный труд. Начал осваивать книгу Мартина Фаулера по DSL. Уже во вступлении встретил "скромный" пример с использованием машины состояний, для описания которой используется примерно 8 классов на джаве. Чтобы не держать все в голове (наверно, это было бы реально, только пришлось бы затратить больше времени), создал проект в Eclipse и переписал классы в нём. Испытал при этом интересное ощущение. Классы очень простые, но в них есть определённое изящество. Я на самом деле почувствовал, что это код многоопытного автора книг по рефакторингу. Подобные конструкции порой получаются и у меня, но на отшлифовку их дизайна обычно требуется довольно много времени.

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

А в целом книга, похоже, стоящая, несмотря даже на свой незавершённый статус. Я довольно хорошо представляю, где мне могли бы пригодиться DSL, поэтому более близкое знакомство с темой пойдёт на пользу.

Комментариев нет:

Отправить комментарий