東京システムトレーダーの開発日記

MT4のEA開発者のブログ

バグ修正の難しさ〜EA〜

Beatrice-07をVer2.0にしたのにADX01は、そのままの理由。
 
理由も何もVer2.0は新バグがでる可能性があったから、07に限定してアップデートしただけですね。
バグがある程度発覚して修正して、それから別のシリーズにも同様のアップデートをあてがっていく。
そうしませんと、何かあった時に新バグの被害を広げることになってしまうからです。
はっきり書いてしまいますと「アップデート=バグ取り」というのはシステムのど素人がよくやる大きな勘違いです。 
 
例えば、本来の機能とは無関係の機能を付加したりすることで見栄えをよくすることはできます。
無関係ということは、本来なくてもいいような部分なのですが、Beatriceの画面表示機能は本来機能的には邪魔な無駄なものです。
極端な話、表示が完全に狂っていても機能には何ら影響がないくらい重要ではないというところでしょうか。むしろ、あることで無駄にCPU負荷を上昇させています。
イメージとしましては、WindowsUNIX(LINUX)の違いでしょうか。
WindowsはOSとGUIが一体になっており、GUIが及ぼす影響は大きいでしょう。
BeatriceはUNIXみたいに中枢と表示システムは別物ですので、表示システムがぶっ飛んでいても中枢には何ら問題がないということです。
Beatriceの表示システムは、ユーザー向けパフォーマンスのためにつけてあるだけで、表示システムは表示システムで勝手に動いている。素人さんはもしかしたら、UNIX(LINUX)的なシステムの考え方、動きが分からないかもしれません。
CUIのコマンドベースこそ、最高に安定した環境ですね。
 
このような無駄な機能を加えれば、当然プログラムは長くなります。
プログラムが長くなれば、新たなバグを含める確率も上がります。
ですから、無駄な機能拡張やアップデートは避けられれば避けたいものです。
特に、Ver2.0みたいに完全無駄機能のアップデートは被害を拡大させるのがいいところでした。
※ADXをスグにアップデートしなかった理由です。
 
開発者泣かせといえば、本音としては実行環境側がEAに合わせて欲しいと思うことも多々あります。
同じメタクオーツのプラットフォームのはずなのに、FX会社ごとに独自仕様やってくれちゃいますから。ある業者では相性のいいコードが、ある独自仕様業者では問題を起こすとか。
  
例えばWindowsのアップデート。
マイクロソフトは製品のリリース後に修正パッチを配布するやり方でバグに対応していますが、リリース直後はアップデートだらけで嫌になってしまうでしょう。
機能を加えたり、あるバグに対応するために付加したコードに別のバグが含まれていることもありますが、あてがったパッチに別の穴が空いているわけですね。
 
数字(数学的に)で考えた場合
大多数で正常に動いている(一部は不調でご迷惑をおかけしており申し訳ございません)のであれば、変に対応しないほうが却って被害が少なくて済むこともあるのです。
バグがあるコードを使うことで、別のバグが出ないで済むということもよくある話で、
バグ取りっていうのは、単に穴を塞げばいいとか、そんなに簡単な話ではないものです。 


スポンサーサイト
[ 2017/02/14 20:51 ] 未分類 | TB(-) | CM(0)
コメントの投稿












管理者にだけ表示を許可する
 
システムトレードランキング