Функциональное программирование баз данных в Clojure

"Заманчиво, если единственный инструмент, который у вас есть, - это молоток, Я думаю, что могу использовать нечистую функцию для извлечения строк из базы данных и возврата ленивой последовательности, которую затем можно обработать чистой функцией, возвращающей фрагмент XML.

Для каждой строки Person я может создавать Future и обрабатывать несколько параллельно (порядок вывода не имеет значения).

По мере обработки каждого Person задача будет извлекать соответствующие строки из Адрес , Телефон и т. Д. Таблицы и генерировать вложенный XML.

Я могу использовать универсальную функцию для обработки большинства таблиц, полагаясь на метаданные базы данных для получения столбца информация со специальными функциями для нескольких таблиц, требующих специальной обработки. Эти функции могут быть перечислены на карте (имя таблицы -> функция) .

Правильно ли я поступаю? Я легко могу вернуться к выполнению этого в объектно-ориентированном стиле с использованием Java, но это будет неинтересно.

Кстати, есть ли какие-нибудь хорошие книги по шаблонам FP или архитектуре? У меня есть несколько хороших книг по Clojure, Scala и F #, но, хотя каждая хорошо описывает язык, ни одна из них не рассматривает «общую картину» проектирования функционального программирования.

9
задан Ralph 5 January 2011 в 12:51
поделиться