Является ли проектирование процессов действительно декларативным программированием?

StackOverflow https://stackoverflow.com/questions/325721

Вопрос

Я слышал от кого-то, что они используют инструмент автоматизации бизнес-процессов (например, Weblogic Integration) в качестве языка программирования (что звучит как-то глупо), чтобы сделать вещи декларативными.Затем они помещают всю логику в процесс, каждый отдельный if и while.

Но разве процесс не представляет собой шаг за шагом достижение цели?

Для меня это делает процесс совершенно обязательным.Что вы думаете?

Это было полезно?

Решение

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

Другие советы

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

MS Workflow Foundation рекламируется как имеющий механизм правил, но он довольно упрощен и на самом деле не выполняет прямую цепочку, за исключением несколько окольного пути.ILOG фактически создает адаптер для своего механизма правил специально для включения его в основу рабочего процесса MS.

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

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

Я видел одно или два приложения (например TOAD для анализа данных), фактически используя MS Workflow Foundation в качестве языка сценариев.Таким образом, он позволяет вам добавить в приложение возможность написания сценариев, для использования которой (по крайней мере, в маркетинговых целях) не требуются навыки программирования.

На практике инструмент, предназначенный для написания, редактирования и выполнения SQL-запросов, оснащенный средой сценариев для «непрограммистов», заставляет задуматься, на какую аудиторию он действительно рассчитан.Будучи языком сценариев, инструменты моделирования рабочих процессов довольно неуклюжи и предлагают очень ограниченные возможности для абстракции;на практике язык сценариев на основе .Net, такой как IronPython или Boo, особенно в сочетании с достойным механизмом шаблонов, будет очень мощным дополнением к такому инструменту.

Одним из моментов графических языков такого типа является то, что они плохо масштабируются в зависимости от сложности.Аналогичная проблема возникает и с инструментами ETL.Я видел приложение подготовки (см. ниже), которое было создано (по иронии судьбы) с помощью Crossworlds (теперь известного как Websphere Integrator).В течение месяца после запуска приложения стало очевидно, что язык графического рабочего процесса не может масштабироваться в соответствии со сложностью приложения, и он был перестроен на основе механизма пользовательских правил, написанного на Java, и довольно большого количества индивидуальных настроек. Java-код.

Проблемы такого типа не являются редкостью для систем EAI и оркестрации и являются одной из причин, по которой СОА сложно реализовать на практике.На самом деле вы помещаете бизнес-логику в очень неуклюжую среду программирования, которая официально не признается таковой.Это будет работать в простом случае, но трудно реализовать в сложной системе - это своего рода секрет в кругах SOA.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top