みぃちゃんの頭の中はおもちゃ箱

略してみちゃばこ。泣いたり笑ったり

やっぱりオブジェクト指向は強力

2014年09月17日 22時10分45秒 | IT・デジタル
開発中のプログラムのコーディングが ひとつの やまをこえました。のべ むいか間の作業のうち、コーディングに みっか強、デバッグに ふつか強かかりました。以前つくったものより高機能に なったにも かかわらず、コードの構造は逆にシンプルになっています。

毎度毎度のことですが、コードの要所要所でデータのスナップショットを出力するようにデバッグ ルーチンを しこんでおき、デバッグ時には出力されたログをみてデータが所定の変化をしているか追跡します。この実行とログの追跡を、簡単なデータから はじめ、すこしずつ複雑なデータをあたえて くりかえします。

デバッグ当初に てをやいたバグはメモリの破壊でした。変なデータが突然あらわれて、「うわ、これはポインタのバグだ」と覚悟しました。ポインタのバグは さがしだして修正するのが大変です。複雑なポインタ操作は してないはずなんだけどなぁ。

原因は、配列の終端をこえて かきこんだことでした。ありがちなバグです。配列を1要素分だけ ながく確保しておくべきところを、そうしていませんでした。

配列のバグのほかは、デバッグは順調に すすみました。途中でデータを分割して非同期的に処理をすすめ、それぞれの結果をあとで合成する処理も一発で正常動作。再帰下降処理も一発。ほかも ちいさな修正があっただけ。自分でも おどろくほどコードが すなおに うごいてくれます。デバッグが順調すぎて こわい。C++には言語として ばあたり的に拡張されてきたような側面も ありますが、やっぱりオブジェクト指向は強力です。

※ この記事の本文からは漢字の訓を排除しています。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。