Подтвердить что ты не робот

Корпоративные шаблоны с функциональным программированием

Есть ли какой-либо хороший источник (централизованной) информации о шаблонах архитектуры предприятия (a la Fowler), возможно, с примерами и примерами использования и достаточной практической информацией? Например, я видел, что многие шаблоны проектирования GoF были кратко описаны в некоторых сообщениях SO и других сайтах, а также о практической информации, связанной с ними. Я прошу использовать аналогичный ресурс из более функциональной парадигмы, ориентированной на корпоративные приложения.

Спасибо.

4b9b3361

Ответ 1

Я прошу использовать аналогичный ресурс из более функциональной парадигмы, ориентированной на корпоративные приложения.

Нет никакого ресурса, о котором я знаю. Широкомасштабное промышленное использование современного FP часто 10 лет, поэтому ресурсы, как правило, находятся в интернет-форме. Кроме того, многие люди избегают GoF, поскольку они в основном не имеют отношения к FP.

SO остается вашим лучшим выбором (вот пример: fooobar.com/info/3229/...). Там рынок для книг по архитектуре FP, тем не менее, это точно.


Редакционные

По моему опыту почти все проекты попадают в шаблон "компилятор" или "интерпретатор", используя модель данных и функций этих данных. То есть, проблемные области представлены как алгебраические структуры (объекты как ADT с функциями над ними), а программные архитектуры - это сопоставление от одной алгебры к другой. Это шаблон дизайна категории (!)

Наши алгебраические типы данных - лучший способ захвата структур. Функции - лучший способ преобразовать эти структуры или сопоставить их с новыми типами структур. И там много исследований по написанию компиляторов и переводчиков, которые делают этот материал простым. Вы можете реализовать большинство систем, написав компилятор (или интерпретатор). Поэтому научитесь писать компиляторы.

Удивительно, как многие вещи выпадают в виде интерпретаторов или компиляторов, когда вы начинаете искать эти "категорические" проблемы с программным обеспечением. Такие вещи, как MVC, выпадают как переводчики. Множество бизнес-программ (munging данных) становится парсером + анализом + симпатичным принтером, то есть компилятором. Возможно, очевидно, что архитектуры (например, как склеить компоненты) действительно связаны с алгебрами и категориями.

Очевидно, речь идет о архитектурах высокого уровня. Что касается более низкого уровня, например, как лучше всего внедрять системы ведения журналов или как лучше всего подключать дорогостоящие компоненты, как передавать окружения вокруг, повторное воспроизведение/откат имеют особые абстракции, которые можно повторно использовать, это другая проблема. Часто моноиды/монады/аппликаторы или другие вычислительные понятия, записанные в виде библиотек.

Опять же, мы перейдем к алгебраическому представлению, чтобы найти структуру, которая наилучшим образом отображает проблемную область.