オセロのCPUを作っている。
自分にがっかりすることばかりだ。
まず、
要求定義に夢中になって、それを実現するための設計をおろそかにして製造に入った。
概ね、C#で作ったクラスをC++に置き換えればいいだろうと考えていたが、それすら危うい状態だ。
まず、思考がどこから始まって、そのためにどんなデータが必要だから、この形態の暮らす変数を用意しないといけないと、
積み上げ方式で考えなかったところが浅はかだった。
めんどくさくとも、ホントに、この積み上げで実現可能かどうかを検討すべきだった。
といっても、今の時点で失敗したわけではないが、かなり複雑になってしまった。
そのクラスに、何をさせたいのかをしっかり決めないと、何のメンバが必要になるのかすらわからない。
それで押し進めようとした。
まず、C#の思想をC++に持ってくるときに、そのままでよろしいとするのはやめよう。
参照変数を上書きするためのバックアップ変数が必要ないということとか、不要な実装を持ち込む原因になっている。
速さも大事だが、手戻りが少ないことも大切。
つぎ、確信のない処理は、単体テストを書こう。せめて、変なところから足を延ばして、結合するために本体を走らせるのはやめよう。
わからないことを本番に持ち出すといつか大きな失敗をする。
まず、事を始める前の思慮が浅い。それに尽きる。そこに苛立ちを感じる。
あとでどうにかすればいいやと思ってるから、無駄な仕事がいくつも増える。
言語の特徴をつかんでないのも原因だが、クラス図くらいはかけるはず。どこがドライバーになって駆動するのか、そのためにはどんなデータが必要か。
そこをちゃんと見極めろ。
名前のつけ方も少しづつ学んでいったほうが良い。