Diskussion zum Artikel "Entwicklung eines MQL5 RL-Agenten mit Integration von RestAPI (Teil 4): Organisieren von Funktionen in Klassen in MQL5"
Sehen Sie sich den neuen Artikel an: Entwicklung eines MQL5 RL-Agenten mit RestAPI-Integration (Teil 4): Organisieren von Funktionen in Klassen in MQL5.
Autor: Jonathan Pereira
Hallo Jonathan,
Toller Artikel, nur um dich darauf hinzuweisen: Wenn du das Schlüsselwort "interface" verwendest, musst du nicht "public:", "virtual" und " = 0;" verwenden.
Shep
Hallo, Jonathan,
Toller Artikel, aber ich möchte dich nur warnen. Wenn Sie das Schlüsselwort "interface" verwenden, müssen Sie nicht "public:", "virtual" und " = 0;" verwenden.
Shep
Vielen Dank für Ihren Kommentar! Freut mich, dass Ihnen der Artikel gefallen hat. Ich möchte klarstellen, warum ich mich für die Verwendung von public: , virtual und = 0; in den Schnittstellen zu verwenden, auch wenn einige dieser Elemente redundant erscheinen mögen:
-
Code-Klarheit und Konsistenz:
- In C++, und damit auch in MQL5, sollte man explizit public: , virtual und = 0; in Schnittstellen verbessert die Lesbarkeit und macht deutlich, dass diese Methoden Teil einer Schnittstelle sind, die implementiert werden muss. Dies ist besonders nützlich für Entwickler, die eher an Sprachen wie Java gewöhnt sind, wo diese Deklarationen obligatorisch sind.
-
Kompatibilität mit C++:
- MQL5 basiert stark auf C++, wo Schnittstellen mit rein abstrakten Klassen definiert werden. Durch die explizite Verwendung von virtual e = 0; wird sichergestellt, dass MQL5-Code den bewährten C++-Verfahren folgt, was Entwicklern, die mit beiden Sprachen arbeiten, das Leben erleichtert.
-
Implizite Dokumentation:
- Selbst wenn die Mitglieder einer Schnittstelle implizit öffentlich sind, fungiert die Deklaration von public: als eine Form der internen Dokumentation, die jedem, der den Code liest, klar macht, dass diese Methoden öffentlich zugänglich sind. Virtual und = 0; machen deutlich, dass die Klasse abstrakt ist und die Methoden von den abgeleiteten Klassen implementiert werden müssen.
-
Erweiterbarkeit und Wartbarkeit:
- Die explizite Deklaration dieser Methoden ermöglicht eine größere Flexibilität bei der Code-Entwicklung. Wenn in Zukunft nicht-virtuelle oder private Methoden hinzugefügt werden müssen, ist die Codestruktur bereits auf diese Änderungen vorbereitet, was die Wartung erleichtert.
-
Übereinstimmung mit Coding Standards:
- Viele C++-Codierungsstandards empfehlen oder erfordern diese expliziten Deklarationen. Die Einhaltung dieser Standards in MQL5 trägt dazu bei, ein hohes Maß an Strenge und Disziplin bei der Codierung aufrechtzuerhalten.
Obwohl es nicht unbedingt notwendig ist, public zu verwenden: , virtual und = 0; in MQL5-Schnittstellen zu verwenden, bringt die Entscheidung, sie einzubeziehen, Vorteile in Bezug auf die Klarheit, Konsistenz und Wartbarkeit des Codes. Ich hoffe, dass diese Erklärung dazu beiträgt, meine Designentscheidung zu verdeutlichen.
Vielen Dank für Ihren Kommentar! Ich freue mich, dass Ihnen der Artikel gefallen hat. Ich möchte klarstellen, warum ich mich für die Verwendung von public: , virtual und = 0; in den Schnittstellen verwendet habe, auch wenn einige dieser Elemente redundant erscheinen mögen:
-
Code-Klarheit und Konsistenz:
- In C++ und damit auch in MQL5 sollte man explizit public: , virtual und = 0; in Schnittstellen verbessert die Lesbarkeit und macht deutlich, dass diese Methoden Teil einer Schnittstelle sind, die implementiert werden muss. Dies ist besonders nützlich für Entwickler, die eher an Sprachen wie Java gewöhnt sind, wo diese Deklarationen obligatorisch sind.
-
Kompatibilität mit C++:
- MQL5 basiert stark auf C++, wo Schnittstellen mit rein abstrakten Klassen definiert werden. Durch die explizite Verwendung von virtual e = 0; wird sichergestellt, dass MQL5-Code den bewährten C++-Verfahren folgt, was Entwicklern, die mit beiden Sprachen arbeiten, das Leben erleichtert.
-
Implizite Dokumentation:
- Selbst wenn die Mitglieder einer Schnittstelle implizit öffentlich sind, fungiert die Deklaration von public: als eine Form der internen Dokumentation, die jedem, der den Code liest, klar macht, dass diese Methoden öffentlich zugänglich sind. Virtual und = 0; machen deutlich, dass die Klasse abstrakt ist und die Methoden von den abgeleiteten Klassen implementiert werden müssen.
-
Erweiterbarkeit und Wartbarkeit:
- Die explizite Deklaration dieser Methoden ermöglicht eine größere Flexibilität bei der Weiterentwicklung des Codes. Wenn in Zukunft nicht-virtuelle oder private Methoden hinzugefügt werden müssen, ist die Codestruktur bereits auf diese Änderungen vorbereitet, was die Wartung erleichtert.
-
Einhaltung von Kodierungsstandards:
- Viele C++-Codierungsstandards empfehlen oder verlangen diese expliziten Deklarationen. Die Einhaltung dieser Standards in MQL5 trägt dazu bei, ein hohes Maß an Strenge und Disziplin bei der Codierung aufrechtzuerhalten.
Obwohl es nicht unbedingt notwendig ist, public zu verwenden: , virtual und = 0; in MQL5-Schnittstellen zu verwenden, bringt die Entscheidung, sie einzubeziehen, Vorteile in Bezug auf die Klarheit, Konsistenz und Wartbarkeit des Codes. Ich hoffe, dass diese Erklärung dazu beiträgt, meine Designentscheidung zu verdeutlichen.
Ich verstehe Sie. Ich arbeite viel in C++, also verstehe ich Sie. Tolle Arbeit, toller Artikel und tolle Antwort, danke.
Vielen Dank, Bruder.
Спасибо очень хорошая статья!!!
WebRequest стал более мощным, чем когда-либо. Вот почему мы не анализировали ваш код.
Также можно сделать его исследования, например, из индикаторов а не только из экспертов.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Entwicklung eines MQL5 RL-Agenten mit Integration von RestAPI (Teil 4): Organisieren von Funktionen in Klassen in MQL5 :
In diesem Artikel wird der Übergang von der prozeduralen Codierung zur objektorientierten Programmierung (OOP) in MQL5 mit Schwerpunkt auf der Integration mit der REST-API erörtert. Heute werden wir besprechen, wie HTTP-Anfragefunktionen (GET und POST) in Klassen organisiert werden können. Wir werden einen genaueren Blick auf das Refactoring von Code werfen und zeigen, wie isolierte Funktionen durch Klassenmethoden ersetzt werden können. Der Artikel enthält praktische Beispiele und Tests.
In diesem Artikel werden wir einen wichtigen Schritt machen und unsere Funktionen in MQL5 in Klassen organisieren. Zu diesem Zweck werden wir die objektorientierte Programmierung (OOP) verwenden. OOP ist eine Art, Code zu schreiben, die dazu beiträgt, ihn zu organisieren und leicht zu verstehen. Das ist wichtig, weil es uns die Wartung und Verbesserung des Codes erleichtert. Der Code ist gut organisiert und modular, wir können ihn in verschiedenen Teilen des Projekts oder sogar in zukünftigen Projekten verwenden.
In diesem Artikel werden wir auch sehen, wie man bestehende MQL5-Funktionen in Klassen umstrukturiert. Wir werden sehen, wie dies den Code lesbarer und effizienter machen kann. Außerdem enthält der Artikel praktische Beispiele, die zeigen, wie die Anwendung der vorgestellten Ideen die Wartung und Verbesserung des Codes erleichtern kann.
Die objektorientierte Programmierung (OOP) ist eine leistungsfähige Methode zur Entwicklung von Software. In MQL5 ist die Verwendung von Klassen ein großer Vorteil gegenüber der prozeduralen Codeschreibmethode. In diesem Teil werden wir uns ansehen, wie wir die Qualität unseres Projekts mithilfe dieses Merkmals verbessern können. Schauen wir uns vier wichtige Aspekte an:
Kapselung und Modularität: Klassen helfen dabei, verwandte Funktionen und Variablen an einem Ort zu organisieren, was die Wartung erleichtert und Fehler reduziert.
Wiederverwendung des Codes: Sobald Sie eine Klasse geschrieben haben, können Sie sie an verschiedenen Stellen verwenden, was Zeit spart und die Konsistenz des Codes gewährleistet.
Leichte Wartung und Verbesserung: Wenn Funktionen in Klassen aufgeteilt sind, ist es einfacher, Fehler zu finden und zu beheben oder Verbesserungen vorzunehmen, da die klare Struktur den Code leichter zugänglich macht.
Abstraktion und Flexibilität: Klassen fördern die Abstraktion, indem sie die Komplexität verbergen und nur das offenlegen, was wir brauchen. Dadurch wird der Code intuitiver und flexibler.
Wir werden sehen, dass die Umstrukturierung von Funktionen in Klassen in MQL5 nicht nur der Schönheit halber erfolgt, sondern dass es sich um eine bedeutende Änderung handelt, die den Code effizienter, verständlicher und wartungsfreundlicher macht. In diesem Artikel wird gezeigt, wie isolierte Funktionen in wohldefinierte Klassenmethoden umgewandelt werden können, was sowohl unmittelbare als auch langfristige Vorteile mit sich bringt. Dies wird nicht nur unser aktuelles Projekt verbessern, sondern uns auch helfen, eine solide Grundlage für zukünftige MQL5-Projekte zu schaffen.
Autor: Jonathan Pereira