こんばんは,ゴドーです.
10月がスタートしたというのに,今日は日中30度を越える夏日でしたね.
台風は過ぎ去ったものの,都内の電車は大幅に遅延や運休をしており,朝の通勤は大混乱だったようです.
遠方から来ている同僚は,ほとんど昼頃に出社したり,あまりに電車が動かないので休みをとる人もいました.
今日は先週に引き続き,数値計算用プログラムの実装をしていました.
モデルを作り直し,コードを一から書き始めたのを機に,単体テストもちゃんと行っていくことにしました.
これまでも機能を実装するたびに入出力テストのコードを書いて,テストっぽいことはしていましたが,機能を追加するたびにテストコードも書き直すというように行っていたので,後からコード修正を行った際に,前にテストした部分が全て大丈夫かどうか,確かめることが実質的に不可能でした.
今回はいわゆるテスト駆動開発を目指して,関数定義&テストコードを書く→関数実装の順で作業を進めています.
メソッド単位の単体テストコードがずっと残っているので,部分的な仕様変更をしたときにも,即座に全テストを終えることができていい感じです.
本当に,なぜ今までまともにテストコードを書いてこなかったのか分からない…
コーディングガイドラインや,リーダブルコードなどをデスク横に置き,チラチラ参照しながらコーディングを進めています.
テストを書いたり規約に気を使ったりすることで,コーディングのペースが落ちてやきもきするかといえば,ほとんどそんなことはありませんね.
むしろ,単体テストをクリアしたコードが少しずつ増えるたびに,信頼度の高いコードが積み重なっていく安心感があります.
僕はVisual Studioの単体テストツールを使ってテストコードを書いていますが,テストをクリアするたびにグリーンのマークが増えていくのが,ゲーム感覚で気持ち良いです.
Gitへのコミットログが増えていくのを見るのと同様の,アイテムや経験値を集めていくような快感ですね.
今週はずっと実装週間になりそうです.
続きを書くのが,今から楽しみです.
それでは,また.
/ゴドー