Давайте начнём с простой ситуации, с которой, уверен, сталкивались многие. У вас есть расчёт или модель — вы потратили время, всё проверили, получили результат. Дальше эту работу нужно передать: коллеге, заказчику или, например, использовать в обучении. И тут возникает типичная проблема — чтобы воспользоваться результатом, человеку нужно разбираться в коде, в параметрах, в логике расчёта. В итоге либо вы тратите время на объяснения, либо расчёт просто не используется так, как мог бы. По сути, возникает разрыв между разработкой алгоритма и его применением.
Один из подходов, который позволяет этот разрыв убрать — это упаковка расчёта в приложение. Когда вместо скрипта у пользователя есть понятный интерфейс: он меняет параметры, запускает расчёт и сразу получает результат, не погружаясь в реализацию.
Это особенно актуально в задачах, где:
- расчёт используется несколькими людьми,
- параметры часто варьируются,
- результат нужно быстро показать или проверить,
- важно снизить вероятность ошибок при работе с кодом.
Сегодня мы как раз посмотрим, как такой переход можно сделать на практике: как взять произвольный алгоритм на Julia и превратить его в приложение с интерфейсом, которое можно использовать внутри команды или показывать заказчику. Важно, что при этом не требуется отдельная разработка на веб-технологиях — всё остаётся в рамках инженерной среды.
Мы рассмотрим структуру пользовательских приложений в Engee. Для понимания этой структуры мы создадим простейшие пользовательские приложения на примере калькулятора логарифма, также создадим более сложные приложения, такие как интерактивный осциллограф, который предназначен для исследования траекторий, полученных при сложении двух взаимно перпендикулярных гармонических волн, которая может применяться как в образовательных целях, так и в инженерной практике для настройки параметров сигналов в осциллографах и анализа волновых систем.
Также рассмотрим приложение предназначенное для исследования одного из самых известных фракталов в вычислительной математике, которое может применяться как в научно-образовательных целях, например, для изучения фрактальной геометрии, комплексного анализа или вычислительной физики, для демонстрации свойств итерационных процессов, а также в инженерных задачах, связанных с визуализацией сложных динамических систем и оптимизацией алгоритмов создания фрактальных структур.
А также рассмотрим приложение, предназначенное для анализа частотных характеристик линейных динамических систем, построения амплитудно-частотной и фазо-частотной характеристик на основании частот и коэффициентов передаточной функции. Оно может применяться в инженерных задачах. Например, при разработке и анализе систем автоматического управления, фильтров, усилителей или электромеханических систем, а также в образовательном процессе по курсам теории автоматического управления, радиоэлектроники и цифровой обработки сигналов.
Рассмотрим структуру пользовательских приложений в виде простой блок-схемы. Все операции выполняются внутри вычислительной среды Engee. Для того чтобы открыть приложение, необходимо выполнить команду запуска в кодовой ячейке стандартного скрипта Engee. В этот скрипт вы можете добавить описания и другие кодовые ячейки. Само приложение содержится в файле скрипта Julia. В нём содержится основной блок приложения, в котором инициализируются входные и выходные переменные, а также содержится обработчик изменений, в котором выполняется вся логика приложения. Также в скрипте приложения содержится функция пользовательского интерфейса, в которой содержатся все необходимые элементы, например кнопки, поля ввода, поля вывода, надписи, поля выбора и другие.