Обсуждение статьи "Как разработать агент обучения с подкреплением на MQL5 с интеграцией RestAPI (Часть 4): Организация функций в классах в MQL5"
Ознакомьтесь с новой статьей: Разработка MQL5 RL-агента с интеграцией RestAPI (часть 4): Организация функций в классы на MQL5.
Автор: Джонатан Перейра
Привет, Джонатан,
Отличная статья, но хочу тебя предупредить: когда ты используешь ключевое слово "интерфейс", тебе не нужно использовать "public:", "virtual" и " = 0;".
Shep
Привет, Джонатан,
Отличная статья, но хочу предупредить. Когда вы используете ключевое слово "интерфейс", вам не нужно использовать "public:", "virtual" и " = 0;".
Шеп
Спасибо за ваш комментарий! Я рад, что вам понравилась статья. Я хотел бы пояснить, почему я решил использовать public: , virtual и = 0; в интерфейсах, хотя некоторые из этих элементов могут показаться избыточными:
-
Ясность и согласованность кода:
- В C++ и, как следствие, в MQL5, делайте явными public: , virtual и = 0; в интерфейсах улучшает читабельность и дает понять, что эти методы являются частью интерфейса, который должен быть реализован. Это особенно полезно для разработчиков, привыкших к языкам вроде Java, где такие объявления обязательны.
-
Совместимость с C++:
- MQL5 в значительной степени основан на C++, где интерфейсы определяются с помощью чистых абстрактных классов. Явное использование virtual e = 0; гарантирует, что MQL5-код будет следовать лучшим практикам C++, облегчая жизнь разработчикам, работающим с обоими языками.
-
Неявная документация:
- Даже если члены интерфейса являются неявно общедоступными, объявление public: служит формой внутренней документации, давая понять любому, кто читает код, что эти методы общедоступны. Виртуальные и = 0; указывают на то, что класс является абстрактным и его методы должны быть реализованы производными классами.
-
Расширяемость и ремонтопригодность:
- Явное декларирование этих методов обеспечивает большую гибкость в развитии кода. Если в будущем потребуется добавить невиртуальные или приватные методы, структура кода уже будет подготовлена к этим изменениям, что упростит сопровождение.
-
Соответствие стандартам кодирования:
- Многие стандарты кодирования C++ рекомендуют или требуют таких явных деклараций. Следование этим стандартам в MQL5 помогает поддерживать высокий уровень строгости и дисциплины в кодировании.
Хотя использование public не является строго обязательным: , virtual и = 0; в интерфейсах MQL5, выбор в пользу их использования дает преимущества в плане ясности, согласованности и сопровождаемости кода. Надеюсь, это объяснение поможет прояснить мой выбор дизайна.
Спасибо за ваш комментарий! Я рад, что вам понравилась статья. Я хотел бы пояснить, почему я решил использовать public: , virtual и = 0; в интерфейсах, хотя некоторые из этих элементов могут показаться излишними:
-
Ясность и согласованность кода:
- В C++ и, как следствие, в MQL5, делайте явными public: , virtual и = 0; в интерфейсах улучшает читабельность и дает понять, что эти методы являются частью интерфейса, который должен быть реализован. Это особенно полезно для разработчиков, привыкших к языкам вроде Java, где такие объявления обязательны.
-
Совместимость с C++:
- MQL5 в значительной степени основан на C++, где интерфейсы определяются с помощью чистых абстрактных классов. Явное использование virtual e = 0; гарантирует, что MQL5-код будет следовать лучшим практикам C++, облегчая жизнь разработчикам, работающим с обоими языками.
-
Неявная документация:
- Даже если члены интерфейса являются неявно общедоступными, объявление public: служит формой внутренней документации, давая понять любому, кто читает код, что эти методы общедоступны. Виртуальные и = 0; указывают на то, что класс является абстрактным и его методы должны быть реализованы производными классами.
-
Расширяемость и ремонтопригодность:
- Явное декларирование этих методов обеспечивает большую гибкость в развитии кода. Если в будущем потребуется добавить невиртуальные или приватные методы, структура кода уже будет подготовлена к этим изменениям, что упростит сопровождение.
-
Соответствие стандартам кодирования:
- Многие стандарты кодирования C++ рекомендуют или требуют таких явных деклараций. Следование этим стандартам в MQL5 помогает поддерживать высокий уровень строгости и дисциплины при кодировании.
Хотя использование public не является строго обязательным: , virtual и = 0; в интерфейсах MQL5, выбор в пользу их использования дает преимущества в плане ясности, согласованности и сопровождаемости кода. Надеюсь, это объяснение поможет прояснить мой выбор дизайна.
Я понял вас. Я много работаю на C++, так что я понял вас. Отличная работа, отличная статья и отличный ответ, спасибо.
Большое спасибо брату.
Спасибо, очень хорошая статья!!!
WebRequest стал более мощным, чем когда-либо. Вот почему мы не анализировали ваш код.
Также можно сделать его исследования, например, из индикаторов, а не только из экспертов.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Как разработать агент обучения с подкреплением на MQL5 с интеграцией RestAPI (Часть 4): Организация функций в классах в MQL5:
В данной статье рассматривается переход от процедурного написания кода к объектно-ориентированному программированию (ООП) в MQL5 с упором на интеграцию с REST API. Сегодня мы обсуждаем организацию функций HTTP-запросов (GET и POST) в классы и подчеркнем такие преимущества, как инкапсуляция, модульность и простота обслуживания. Подробно рассмотрим рефакторинг кода и покажем замену изолированных функций методами класса. Статья содержит практические примеры и тесты.
В этой статье мы сделаем важный шаг и организуем наши функции в классы в MQL5. Для этого, мы будем использовать объектно-ориентированное программирование, которое представляет собой способ написания кода, помогающий сохранить его организованность и простоту понимания. Это важно, поскольку облегчает нам обслуживание и улучшение кода. Хорошо организованный и модульный код мы сможем использовать в разных частях проекта или даже в будущих проектах.
В оставшейся части статьи мы расскажем, как реструктурировать существующие MQL5-функции в классы. Мы покажем, как это может сделать код более читабельным и эффективным, и также приведем практические примеры того, как это сделать, показывая как это может облегчить обслуживание и улучшение кода.
Объектно-ориентированное программирование (ООП) - это мощный способ разработки программного обеспечения. В MQL5 использование классов является большим превосходством по сравнению с процедурным методом написания кода. В этой части мы рассмотрим, как улучшить качество нашего проекта с помощью этой характеристики. Давайте рассмотрим четыре важных аспекта:
Инкапсуляция и модульность: Классы помогают организовать связанные функции и переменные в одном месте, что упрощает обслуживание и уменьшает количество ошибок.
Повторное использование кода: Написав класс, можно использовать его в разных местах, что экономит время и поддерживает согласованность кода.
Простота обслуживания и улучшения: Если функции разделены на классы, проще найти и исправить ошибки или внести улучшения, так как четкая структура делает код более доступным.
Абстракция и гибкость: Классы способствуют абстрагированию, скрывая сложность и раскрывая только то, что нам необходимо. Это делает код более интуитивным и гибким.
Мы покажем, что перестановка функций в классы в MQL5 - это не только красоты ради, это значительное изменение, которое делает код более эффективным, простым для понимания и обслуживания. Мы расскажем о преобразовании изолированных функций в четко определенные методы класса, что даст преимущества и сразу, и в долгосрочной перспективе. Это не только улучшит наш текущий проект, но и поможет нам создать прочный фундамент для будущих проектов на MQL5.
Автор: Jonathan Pereira