Алгоритмы в GreenData. Общие сведения об алгоритмах
Отладка алгоритма
Поскольку алгоритмы часто используются для автоматизации бизнес-процессов и выполнения сложных вычислений, важно своевременно находить и устранять ошибки или некорректные логические конструкции, чтобы обеспечить функционирование системы.
Отладка алгоритма в системе GreenData — это процесс диагностики и исправления ошибок в логике работы, который осуществляется с помощью встроенных инструментов и методов.
В процессе отладки пользователи могут столкнуться с ситуациями, когда алгоритм выполняется некорректно или дает неожиданный результат. Для таких случаев система предлагает несколько подходов и инструментов, позволяющих анализировать работу алгоритма и корректировать его.
В системе GreenData для удобства и эффективности процесса отладки алгоритмов предусмотрен специальный пункт меню — «Данные отладки алгоритмов». Этот раздел предоставляет пользователям возможность просматривать и анализировать информацию о выполнении алгоритмов в системе.
-
Просмотр логов выполнения алгоритмов: В разделе отображаются записи с информацией о выполненных алгоритмах, которая включает:
-
Название алгоритма;
-
Код объекта, по которому выполнялся алгоритм;
-
Уникальный идентификатор выполнения (UUID);
-
Имя ноды, на которой выполнялся алгоритм;
-
Название потока выполнения;
-
Дата и время выполнения.
-
-
Фильтрация и сортировка данных: В интерфейсе можно быстро отфильтровать и отсортировать записи по любому из представленных полей. Это позволяет найти нужные данные среди большого объема информации;
-
Анализ выполнения: Данный функционал помогает бизнес-администратору проанализировать, как и когда выполнялся тот или иной алгоритм, что особенно полезно при выявлении ошибок или необходимости оптимизации;
-
Углубленный контроль: Можно увидеть детали выполнения на уровне нод (базовый элемент в алгоритмах, который может представлять собой любую точку в определенной структуре: дерево, граф или список), что упрощает анализ распределенной обработки данных в больших системах и помогает отслеживать возможные проблемы с производительностью или ошибками на отдельных этапах выполнения.

Одним из основных инструментов для отладки является использование функции printout. Эта функция выводит значения переменных и результаты выполнения отдельных операторов в лог системы, что позволяет отслеживать выполнение алгоритма в динамике.
Например, в системе для интернет-магазина алгоритм рассчитывает стоимость выбранного товара на основании цены товара и его количества. Если значения атрибутов не заполняются или рассчитываются неверно, можно использовать printout, чтобы вывести в лог значения переменных перед их присвоением атрибутам.

Это поможет убедиться, что все входные данные корректны и находятся в ожидаемых диапазонах. Функция может отображать не только скалярные значения, но и более сложные структуры данных, такие как массивы, списки.
Помимо printout, можно использовать функцию sendPopUpMsg. Она выводит всплывающие уведомления на экране в момент выполнения алгоритма. Это удобно, когда необходимо отслеживать выполнение критически важных участков кода или видеть результаты вычислений сразу во время работы с интерфейсом.
Если алгоритм, отвечающий за маршрутизацию заявки, неправильно определяет следующий шаг процесса, можно использовать sendPopUpMsg, чтобы временно уведомлять о том, какая ветка логики была задействована. Например, в момент проверки статуса заказа можно настроить уведомление о текущем статусе.
Это позволяет быстро увидеть, какие именно условия сработали, и помогает понять, почему другие ветки не были задействованы.

Когда требуется более детальная отладка и сохранение логов, используется функция writeWfLog. Она сохраняет все данные в специальную таблицу «wf_trace_log», что позволяет хранить историю выполнения алгоритма, анализировать ее позже и понимать, в какой момент произошел сбой или некорректная обработка данных. Это полезно при отладке алгоритмов, связанных с комплексными бизнес-процессами, где задействовано много различных условий и вычислений.
Например, при создании алгоритма для маршрутизации заявок между различными менеджерами интернет-магазина, можно записывать в «wf_trace_log», какая ветка сработала и почему заявка была передана на конкретного сотрудника.
Рекомендуется использовать комментарии для обрамления проблемных участков кода. Комментарии могут быть однострочными и многострочными. Однострочные комментарии позволяют добавлять пояснения к отдельным операторам и временно закомментировать проблемный участок, чтобы он не выполнялся. Многострочные комментарии применяются, когда нужно отключить целый блок кода или добавить подробное пояснение.

Еще одной важной рекомендацией является компиляция алгоритма перед его тестированием. Хотя система позволяет сохранять некорректный код, выполнение алгоритма возможно только после его успешной компиляции. Если алгоритм не компилируется, это значит, что в нем содержатся ошибки, которые нужно исправить до того, как отладка сможет быть продолжена.
На основании рассмотренных инструментов отладки, можно определить универсальную технику отладки алгоритмов:
-
Закомментировать проблемные участки кода. Когда возникают ошибки или проблемы, важно изолировать их, закомментировав те части кода, которые вызывают сомнение. Это позволит сосредоточиться на анализе конкретного участка и упрощает процесс отладки;
-
Использовать функции для мониторинга значений;
-
Модифицировать код на основе мониторинга. После анализа значений переменных необходимо внести изменения в код, чтобы устранить выявленные ошибки;
-
Постепенно уменьшить количество закомментированных операторов. Когда проблема решена, необходимо поэтапно «разкомментировать» код, проверяя его работу шаг за шагом.
Таким образом, отладка алгоритма — это не просто процесс поиска и исправления ошибок, а комплексный подход к обеспечению корректного функционирования бизнес-логики в системе. Используя инструменты printout, sendPopUpMsg и writeWfLog, можно эффективно диагностировать и исправлять проблемы, а добавление комментариев помогает сохранять структуру и логику алгоритма в понятном виде, обеспечивая удобство дальнейшего сопровождения и модификации кода.