Обсуждение статьи "База данных – это просто (Часть 1): Легковесный ORM-фреймворк для MQL5 на базе SQLite"

 

Опубликована статья База данных – это просто (Часть 1): Легковесный ORM-фреймворк для MQL5 на базе SQLite:

В данной статье представлен структурированный подход к управлению данными SQLite в MQL5 с помощью ORM-слоя для MetaTrader 5. В нем представлены базовые классы для моделирования сущностей и доступа к базе данных, fluent API для CRUD, хуки рефлексии для OnGet/OnSet, а также макросы для быстрого определения моделей. В практических примерах кода показано создание таблиц, привязка полей, вставка, обновление, выборка и удаление записей. Разработчики получают готовые к повторному использованию типобезопасные компоненты, которые сводят к минимуму однотипный SQL-код.

В мире алгоритмической торговли надежное управление данными имеет решающее значение. MQL5 предоставляет низкоуровневый API для работы с SQLite, который достаточно мощен, но требует ручной работы с SQL-запросами. В отличие от современных языков программирования, таких как C#, которые предлагают ORM-решения, например ADO.NET или Entity Framework, в MQL5 на данный момент отсутствует многоразовый ORM-фреймворк, готовый к использованию в производственной среде. В данной статье представлен комплексный, легковесный, переносимый и профессиональный ORM-фреймворк – система SQLite ORM (объектно-реляционное отображение) для MQL5, которая добавляет возможности SQL-запросов в MetaTrader 5 и разработана специально для SQLite.

В отличие от традиционных подходов на основе SQL, эта система предоставляет fluent-интерфейс, который делает операции с базой данных интуитивно понятными и хорошо сопровождаемыми. Сначала это может показаться утомительным или сложным, но разработка системы управления базой данных упрощает работу и избавляет нас от длинных и утомительных команд.

Итак, в связи с этим мы шаг за шагом реализуем эту систему управления базой данных в стиле ORM (объектно-реляционного отображения), что упростит нам работу с базой данных. В теории нет необходимости каждый раз копировать и вставлять базовые функции MQL5 для работы с SQL, такие как DatabaseOpen, DatabaseClose, DatabasePrepare, DatabaseFinalize и т. д., по всему коду. Таким образом, в данном случае нам нужен фреймворк, который объединяет все полезные методы, чтобы выполнять работу простым способом и удобно связывать данные базы с нужными переменными приложения. Затем в практической части мы реализуем собственную модель, которая отражает передачу данных между нужными нам переменными и файлом базы данных через объект класса ORM. Наконец, в каждом разделе мы тестируем реализованные классы, чтобы проверить, получаем ли от фреймворка ожидаемые результаты. В конце статьи приведены модуль фреймворка и тестовые файлы, позволяюще интегрировать его в любой проект, который нужен разработчику. На момент написания данной статьи в разделе "Статьи MQL5" не существует аналогичного ORM-фреймворка. Это первая в своем роде разработка для MQL5. Чтобы реализовать этот фреймворк, мы будем действовать постепенно.


Автор: Hans Alexander Nolawon Djurberg