Бесплатная Monad для создания блога в Scala

Предположим, мне нужно добавить сгенерированный канал RSS/Atom для сайта блога. Я думаю о паттерне"Feed Monad Interpreter". То есть я бы определил DSL с примитивами Blog а также BlogPost, Free monad, которое является просто деревом этих примитивов, и RSS/Atom "интерпретаторы", которые преобразуют Free monad дерево в XML.

Имеет ли это смысл?

2 ответа

Решение

Не совсем, потому что XML не является интерпретацией; это структура данных, она имеет скорее смысловую, нежели операционную семантику [1]. Таким образом, вы можете определить свои примитивы, иметь их дерево и преобразовать это чистое дерево в... другое чистое дерево, представляющее XML. Монада не нужна, это может быть просто преобразование данных.

[1] Если я правильно понимаю термины

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

Убедитесь, что у вас есть набор тестов, который будет анализировать сгенерированную строку XML, чтобы убедиться, что она действительна и не нарушит людей, потребляющих канал, но помимо этого шаблоны должны работать лучше!

Другие вопросы по тегам