記事「MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第2回)」についてのディスカッション

 

新しい記事「MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第2回)」はパブリッシュされました:

この記事は、MQTTプロトコルのネイティブMQL5クライアントの開発ステップを説明する連載の一部です。今回は、コードの構成、最初のヘッダーファイルとクラス、そしてテストの書き方について説明します。この記事には、テスト駆動開発(Test-Driven-Development)の実践と、それをこのプロジェクトにどのように適用しているかについての簡単なメモも含まれています。

準拠したMQTTパケットを構築することは、堅牢で保守可能なクライアントを書くプロセスの最初のステップに過ぎません。最も簡単なことです。操作時動作の仕様になると、プロトコルの複雑さがすべて浮かび上がってきます。この複雑さは、開発者としての私たちの仕事により多くのものを要求するでしょう。良いパケットを送るだけでなく、多数の異なるサーバーのレスポンスや異なるアプリケーションの状態を扱う必要があります。この時点で、ハードコードされたバイト配列、あるいはこの問題に関してハードコードされたものは、十分ではないでしょう。

幸いなことに、MQL5はオブジェクト指向のプログラミング言語であり、MQTTがもともと設計されたようなメモリやCPUに制約のある環境で作業することはありません。つまり、オブジェクト指向(OOP)パラダイムの利点をすべて活用することができるのです。

  • 適切な抽象化レベルを選択することで、プロトコルに関する推論を容易にします。
  • コードの読み取りが簡単(コードは書かれるより何度も多く読まれることをお忘れなく)
  • コードのメンテナンスが簡単
  • テストが簡単

これで、WSL上でMosquittoローカルブローカーを実行し、MQTT接続が成功したかどうかを確認できます。

デフォルトのインストールに従った場合、MosquitoはLinux上でサービスとして実行されているはずです。したがって、ポートをredir (80 → 1883)し、MetaTrader 5のオプションで許可されたURLにホスト名を含めるだけでよくなります。

図03:WSL Mosquittoログ接続/切断成功

作者: Jocimar Lopes