奥義本・写経1日目

達人スターターキット・写経7日目 - @ikikko のはてなダイアリーで達人スターターキットのユニットテストの章が一通り終わったので、つづいて奥義本に。こっちがど本命。すごいフムフムうなずきながら読んだのですが、読んだだけでは実際に使えるかどうか不安だったのですよね。

奥義本はJavaで書かれたコードとC++で書かれたコードが混在していて、C++は触ったことがないのでC++Javaへの変換にちょっと手間取りそう。ま、丸写しよりかはちょっとぐらい考えながら写していった方がためにはなるでしょうしね。

アジャイルソフトウェア開発の奥義

アジャイルソフトウェア開発の奥義


1日目は、リファクタリングの章です。お題として、エラトステネスの篩 - Wikipediaを用いた素数判定が取り上げられています。

一番最初のバージョンが不吉な匂いだらけなのは言うまでも無いのですが、これをリファクタリングしていく過程でもあまり匂いが取れないと感じたのが正直なところ。もちろん、メインメソッドonlyだったのを適切にモジュール化していってるので構造的に整理されていくのは実感できるのですが、正しく動くかどうかはあやふやなままとりあえず進めていくという感じ。

理由は、エラトステネスの篩に数学的にあまり精通していないことと、「メソッドの抽出」などで作っていくメソッド名が何となく馴染めないのかなと。今回はあくまで写経なのでメソッド名なども極力本と合わせているのですが、メソッド名だけ見ても処理内容がピンとこないのですよね。

ユニットテストを用意しているからプログラムを壊してないことが分かるのでまだ何とかなるのですが、これテストがないとほんとに不安でリファクタリングなんてできないですね。ある意味、テストの重要性を実感できましたと。