記事「Rest APIを統合したMQL5強化学習エージェントの開発(第4回):MQL5でクラス内の関数を整理する」についてのディスカッション

 

新しい記事「Rest APIを統合したMQL5強化学習エージェントの開発(第4回):MQL5でクラス内の関数を整理する」はパブリッシュされました:

この記事では、MQL5における手続き型コーディングからオブジェクト指向プログラミング(OOP)への移行について、REST APIとの統合を中心に説明します。今日は、HTTPリクエスト関数(GETとPOST)をクラスにまとめる方法について説明します。コードのリファクタリングについて詳しく見ていき、孤立した関数をクラスメソッドに置き換える方法を紹介します。記事には実践的な例とテストが含まれています。

この記事では、重要なステップを踏み、MQL5で関数をクラスに整理します。そのために、オブジェクト指向プログラミング(OOP)を使用します。OOPとは、コードを整理して理解しやすくするための書き方です。これは、私たちがコードを維持し、改善しやすくするために重要です。そのコードはよく整理されており、モジュール化されているため、プロジェクトのさまざまな部分で、あるいは将来のプロジェクトでも使用することができます。

またこの記事では、既存のMQL5関数をクラスに再構築する方法を紹介します。これによって、コードがより読みやすく、効率的になることを確認しましょう。また、この記事にはその実践例が掲載されており、紹介されているアイデアを適用することで、コードのメンテナンスや改善がいかに容易になるかが示されています。

オブジェクト指向プログラミング(OOP)は、ソフトウェア開発の強力な方法です。MQL5では、クラスの使用は手続き的なコードの書き方に比べて大きな利点があります。この部分では、この特性を利用してプロジェクトの質を向上させる方法を見ていきます。4つの重要な側面を見てみましょう。

  1. カプセル化とモジュール化:クラスは、関連する関数や変数を一箇所にまとめるのに役立ち、メンテナンスが容易になり、エラーを減らすことができます。

  2. コードの再利用:一度クラスを書けば、さまざまな場所でそのクラスを使用することができ、時間の節約とコードの一貫性の維持が可能になります。

  3. メンテナンスと改善のしやすさ:関数がクラスに分離されていると、明確な構造によってコードがよりアクセスしやすくなるため、バグを発見して修正したり、改良を加えたりするのが容易になります。

  4. 抽象化と柔軟性:クラスは複雑さを隠し、必要なものだけを明らかにすることで、抽象化を促進します。これにより、コードがより直感的で柔軟なものになります。

MQL5で関数をクラスに並べ替えるのは、単に美しさのためではなく、コードをより効率的に、より理解しやすく、よりメンテナンスしやすくする重要な変更であることがわかるでしょう。この記事では、孤立した関数を明確に定義されたクラスメソッドに変換する方法を紹介します。これは現在のプロジェクトを向上させるだけでなく、将来のMQL5プロジェクトのための強固な土台作りにも役立つでしょう。

作者: Jonathan Pereira

 

こんにちは、ジョナサン、


インターフェイス "というキーワードを使う場合、"public:"、"virtual"、" = 0; "を使う必要はありません。


シェップ

 
Shephard Mukachi #:

こんにちは、ジョナサン、


素晴らしい記事ですが、注意してください。interface "キーワードを使う場合、"public:"、"virtual"、" = 0; "を使う必要はありません。


シェップ

コメントありがとう!記事を気に入っていただけてうれしいです。なぜpublicを使うことにしたのか、その理由を明確にしたいと思います:これらの要素のいくつかは冗長に見えるかもしれませんが、インターフェイスでは、public:, virtual and = 0;を使うことにしました:

  1. コードの明快さと一貫性 です:

    • C++、ひいてはMQL5では、publicを明示的に使用する:コードの明確性と一貫性: C++では、そしてMQL5でも、インターフェイスでpublic:、virtual、および= 0;を明示的に使用することで、可読性が向上し、これらのメソッドが実装が必要なインターフェイスの一部であることが明確になります。これは、これらの宣言が必須であるJavaなどの言語に慣れている開発者にとって特に便利です。
  2. C++との互換性

    • MQL5は、純粋な抽象クラスでインターフェイスが定義されるC++に大きく基づいています。明示的にvirtual e = 0;を使用することで、MQL5のコードがC++のベスト・プラクティスに従うようになり、両方の言語を使用する開発者の生活が容易になります。
  3. 暗黙のドキュメント化

    • インターフェイスのメンバが暗黙的にパブリックであっても、public:を宣言することで、これらのメソッドがパブリックにアクセス可能であることを、コードを読んでいる人に明確に伝えることができます。Virtual and = 0; は、クラスが抽象的であり、メソッドは派生クラスが実装する必要があることを明確にします。
  4. 拡張性と保守性

    • これらの宣言を明示的にしておくことで、コードをより柔軟に進化させることができます。将来、非仮想メソッドやプライベート・メソッドを追加する必要が生じた場合、コード構造はすでにそのような変更に備えているため、メンテナンスが容易になります。
  5. コーディング標準への準拠

    • 多くのC++コーディング標準では、このような明示的な宣言を推奨または要求しています。MQL5でこれらの標準に従うことは、コーディングの厳密さと規律を高いレベルで維持するのに役立ちます。

publicを使用することは厳密には必要ではありませんが、MQL5では以下のように宣言しています:MQL5のインターフェイスでは、public:、virtual、および= 0;を使用する必要はありませんが、これらを含めることを選択することで、コードの明快さ、一貫性、および保守性の面でメリットが得られます。この説明が、私の設計上の選択を明確にする助けになれば幸いです。

 
Jonathan Pereira #:

コメントありがとう!記事を気に入っていただけてうれしいです。なぜpublicを使うことにしたのか、その理由を明確にしたいと思います:これらの要素のいくつかは冗長に見えるかもしれませんが、インターフェイスでは、public:、virtual、= 0;を使用することにしました:

  1. コードの明快さと一貫性 です:

    • C++、ひいてはMQL5では、publicを明示的に使用する:コードの明確性と一貫性: C++では、そしてMQL5でも、インターフェイスでpublic:、virtual、および= 0;を明示的に使用することで、可読性が向上し、これらのメソッドが実装が必要なインターフェイスの一部であることが明確になります。これは、これらの宣言が必須であるJavaなどの言語に慣れている開発者にとって特に便利です。
  2. C++との互換性

    • MQL5は、純粋な抽象クラスでインターフェイスが定義されるC++に大きく基づいています。仮想e = 0;を明示的に使用することで、MQL5のコードがC++のベスト・プラクティスに従うようになり、両方の言語を使用する開発者の生活が容易になります。
  3. 暗黙のドキュメント化

    • インターフェイスのメンバが暗黙的にパブリックであっても、public:を宣言することで、これらのメソッドがパブリックにアクセス可能であることを、コードを読む人に明確に示すことができます。Virtual and = 0; は、クラスが抽象的であり、メソッドは派生クラスが実装する必要があることを明確にします。
  4. 拡張性と保守性

    • これらの宣言を明示的にしておくことで、コードをより柔軟に進化させることができます。将来、非仮想メソッドやプライベート・メソッドを追加する必要が生じた場合、コード構造はすでにこれらの変更に対応しているため、メンテナンスが容易になります。
  5. コーディング標準への準拠

    • 多くのC++コーディング標準では、このような明示的な宣言を推奨または要求しています。MQL5ではこれらの標準に従っているため、コーディングの厳密さと規律を高いレベルで維持できます。

publicを使用することは厳密には必要ではありませんが、MQL5では以下のように宣言しています:MQL5のインターフェイスでは、public:、virtual、および= 0;を使用する必要はありませんが、これらを含めることを選択することで、コードの明快さ、一貫性、および保守性の面でメリットが得られます。この説明が、私の設計上の選択を明確にする助けになれば幸いです。

私はC++で多くの仕事をしているので、よくわかります。 素晴らしい仕事、素晴らしい記事、そして素晴らしい回答、ありがとうございます。

 

本当にありがとう。

 

WebRequestをご利用ください!

WebRequest は、WebRequestを使用することで、WebRequestを使用することで、WebRequestを使用することで、WebRequestを使用することで、WebRequestを使用することで、WebRequestを 使用することができます。WebRequestをご利用ください。

Также можно сделать его исследования, например, из индикаторов а не только из экспертов.