愛Tweetはじめに前回はテスト駆動開発(以下TDD)について、「ボウリングスコア計算プログラム」をTDDで実践しながらご説明するとともに、「インクリメンタルな設計」及び「責任の設計(静的設計)」「仕事の正しさの設計(動的設計)」についても触れてまいりました。今回はリファクタリングを中心に、前回同様に初学者の「古谷」がTDDの達人である「高梨先輩」に教えを乞う形で進めてまいります。この連載ではプログラミング言語RubyでTDDを実現しておりますが、必ずしもRuby経験者が対象ではありません。Ruby未経験者でもプログラミング経験者であれば、ある程度理解できるように考慮して進めてまいります。TDDだからテスト系のお話ばかりと思っていましたが、どちらかというと設計についての話題が中心でしたね。こちらこそしっかり聞いてもらって嬉しいです。testing.」という記事を見つけたんです。Hansson氏(以下、DHH)のコメントですね。この件について、僕が意見を述べることはしたくありません。behind.(「テストファースト」は自転車の補助輪のようなもので、テスティングをより深いレベルで考えるやりかたを教わる役には立ったが、私はすぐに補助輪を外してしまった)」という一文があります。前回も古谷さんにお話したと思いますが、僕は初学者こそTDDを学んでほしいし、学ぶべきだと思っています。初学者が狂信的になることなく、補助輪であるTDDを学ぶことについては、DHHも否定的ではないのではないでしょうか。確かに今の私には補助輪が必要です。それなら、今の私がTDDを勉強することはプラスになりそうですね。ありがとうございます。それでは続きをお願いします。前回行った設計を再度整理してみましょう。こんなことをやりました。Rubyで実装したコードを以下に示します。あ、そうだ、前回説明するのを忘れていましたが、テストメソッド名は日本語にしても大丈夫です。これで、何のテストをしているか、コードを一目見ただけですぐにわかりますよね。はい、ちゃんと思い出しました。設計としてまとめたものを見ると、なんかすごいことをやった気分になっていましたが、コードにしたらたいしたことありませんね。scoreメソッドなんて、何の計算もせずにゼロをそのままリターンしているし......。インクリメンタルにいきましょう。それでは、いよいよこれから、2つ目のテストパターンを追加します。自身のCOBOLからRailsまでの非常に幅広い開発経験や、学生や未経験社員への技術指導経験を糧に、技術講師としてソフトウエアエンジニアの育成に注力している。Rails開発!」シリーズを考案。“技術者の立場にたった、技術者の心に火をつける”熱い講義をモットーとしている。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。IT(シンクイット)エラーサイトに予期せぬエラーが起こりました。たってから再度お試しください。