概要
前回までは関数や条件分岐、rakeビルドツールなどを学習した。今回は一度基本に立ち戻って、Rubyの真髄としている「テスト駆動開発」について学んだことをメモする。
テスト駆動開発とは
例えば大規模なソフトを開発する場合、長く複雑なソースコードを書くわけですが、どんなにプログラミングに長けている人でもいきなり完璧なコードを書くことは不可能です。
極端な話、もし一度ソースコードを一万行書いてからコンパイルや実行テストをした場合、エラーや例外が発生しますがこの場合厄介なのが、どこにエラーがあるか、どこから直していけばいいか分からなくなる点です。
今のは極端な例ですが、テスト駆動開発ではこの対策としてざっくりいうと、一部の機能の最小限のテストコードを書く➡ エラーが起きるので修正する ➡ エラーが起きない状態を維持して読みやすいコードに改善
この3ステップを繰り返します。
メリット
非常に細かい頻度でエラーのチェックをするためバグを早期発見できます。エンジニアは追加の実装などで原因不明のバグに見舞われることが多いため、この細かいエラーチェックはそのようなバグを防いできれます。
また読みやすいコードに改善するタスクも含まれているため保守もききやすいことが長所といえるでしょう
デメリット
テストコードを書くのにとにかく時間がかかるため、開発初期段階の時間的な負担が大きくなります。更に、一度書いたコードの保守も必要です。慣れないうちは高品質なテストコードを作成できず、それを修正するのにもまた時間がかかってしまいます。
正確性か、スピード性を重視するかでこのテスト駆動開発という方法は良し悪しがあると考えられそうです
参考