記事「リプレイシステムの開発(第35回):調整(I)」についてのディスカッション

 

新しい記事「リプレイシステムの開発(第35回):調整(I)」はパブリッシュされました:

前に進む前に、いくつかのことを解決する必要があります。これらは実際には必要な修正ではなく、クラスの管理方法や使用方法の改善です。その理由は、システム内の何らかの相互作用によって障害が発生したということです。このような失敗をなくすために原因を突き止めようと試みましたが、すべて失敗に終わりました。例えば、C/C++でポインタや再帰を使用すると、プログラムがクラッシュしてしまいます。

前回の「リプレイシステムの開発(第34回):発注システム(III)」稿で 、このシステムにはいくつかの奇妙で謎めいたバグがあると述べました。これらのバグや障害は、システム内の何らかの相互作用によって引き起こされました。このような失敗をなくすために原因を突き止めようと試みましたが、すべて失敗に終わりました。例えば、C/C++でポインタや再帰を使用すると、プログラムがクラッシュしてしまいます。最初のステップは、これらのメカニズムを検証することです。しかしMQL5では、これはC/C++と同じようには起こりません。いくつかの小さな編集を施した後、欠点の1つを解決することができました。この解決策はエレガントには見えませんが、失敗の1つを完全に消し去ることができました。

ただし、システム操作に影響を及ぼすエラーを完全に排除するためには、まだもう少し根本的なコードの変更が必要です。このシステムには以前からある種の相互作用がなかったため、これらはおそらく長い間存在したでしょう。こうした相互作用が起こり始めると、こうしたエラーが目立つようになりました。

既存の障害はシステムの動作に悪影響を及ぼすものではありませんが、本当に正しい動作を可能にするものではありません。これらすべてによって、プログラムの体験が非常に不快になり、受け入れがたくなります。これらの欠点のうち、最初のものは非常に簡単に修正できるので、まずそれから始めましょう。

作者: Daniel Jose