Функции состояния зависимые

Код MATLAB®, который вы хотите развернуть часто, несет state — определенное значение данных в переменной программы или переменной программы.

Моя функция MATLAB несет состояние?

Пример переноса состояния в программе MATLAB включает, но не ограничивается:

  • Изменение или доверие пути MATLAB и пути к классу Java®

  • Доступ к состоянию MATLAB, которое является по сути персистентным или глобальным. Некоторый пример этого включает:

    • Seed случайных чисел

    • Обработайте корневые объекты Graphics®, которые сохраняют данные

    • MATLAB или настройки тулбокса MATLAB и настройки

  • Создание глобальных и персистентных переменных.

  • Загрузка объектов MATLAB (классы MATLAB) в MATLAB. Если вы получаете доступ к объекту MATLAB в каком-либо случае, он загружает в MATLAB.

  • Вызывая файлы MEX, методы Java или методы C#, содержащие статические переменные.

Защитные методы кодирования

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

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

Следующее является примерами “методов” кодирования обороны:

Сбросьте сгенерированные системой значения в развертываемом приложении

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

Подтвердите глобальные или персистентные значения переменных

Если необходимо использовать глобальные или персистентные переменные, всегда подтвердить их значение в развертываемом приложении и сбросить в случае необходимости.

Обеспечьте доступ к кэшам данных

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

Используйте простые типы данных, когда возможно

Простые типы данных обычно не связываются к определенному приложению и средним значениям хранения состояния. Ваши опции для выбора соответствующего сохраняющего состояние увеличения инструмента как ваши типы данных становятся менее сложными и конкретными.

Избегайте использования функций обратного вызова MATLAB

Избегайте использования коллбэков MATLAB, таких как timer. Функции обратного вызова имеют способность прервать и заменить текущее состояние рабочего MATLAB Production Server™ и могут привести к непредсказуемым результатам в пользовательских средах.

Методы для сохранения состояния

Самый соответствующий метод для сохранения состояния зависит в основном от типа данных, которые необходимо сохранить.

  • Базы данных обеспечивают большинство универсальных и масштабируемых средних значений для сохранения данных с сохранением информации. Действия базы данных как типичный репозиторий и могут обычно работать с любым приложением в среде развития предпринимательства. Это не налагает требования или ограничения на структуру данных или размещение. Другой связанный метод должен использовать файлы разделенных запятыми значений в приложениях, таких как Microsoft® Excel®.

  • Данные, которые характерны для стороннего языка программирования, таковы как Java и C#, могут быть сохранены с помощью многих методов. Консультируйтесь с онлайн-документацией для соответствующего стороннего поставщика для лучшых практик на сохранении состояния.

Внимание

Используя MATLAB функции LOAD и SAVE часто используются, чтобы сохранить состояние в приложениях MATLAB и рабочих областях. В то время как это может быть успешно при некоторых обстоятельствах, это настоятельно рекомендовано это данные быть подтвержденным и сброшенным в случае необходимости, если не сохраненный в типичном репозитории, таком как база данных.