Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

いくつかの簡単なヒントでTDDの疲労を振り払う

いくつかのコードを試運転したいのですが、行き詰まっています。オブジェクトのインターフェースがどのように見えるかが完全にはわからない場合があります。たぶん、あなたは別の晴れた夏の日に気を取られています。構築しようとしているものをテストできるかどうかわからない場合があります。または、今はテストを書く気がないので、先延ばしになっている可能性があります。 TDDを好まない場合、どのようにしてTDDのメリットを享受できますか?

プロトタイピング、または廃棄するためのプロトタイピング

「新しいシステムコンセプトや新しいテクノロジーを使用する場合は、廃棄するシステムを構築する必要があります。最良の計画でさえ、最初にそれを正しく行うほど全知ではないからです。したがって、1つを捨てる計画を立ててください。とにかく、あなたはそうするでしょう。」 –フレッド・ブルックス

新しい機能を開始するときに、最初のテストを作成することを考えると、麻痺したように感じることがあります。 APIの外観、最も適切なパターンとプラクティス、およびすべてをどのように組み合わせるかについては、非常に多くの決定を下す必要があります。

そのように立ち往生しているときに始める方法はいくつかあります。 プロトタイプの作成は別です。

プロトタイプを書くときは、スケッチのように考える必要があります。ブレーンストーミングして試してみてください。まだテストやTDDを気にしないでください。代わりに、コードを使用して、苦労している決定を調べてください。いくつかのパターンを試して、どれが設計しようとしている機能に適合するかを確認してください。アプリの不安定な部分がどこにあるか、何をもっと考える必要があるか、そして本当の理由もなく何を心配していたかを把握します。

次に、それを破棄して再構築します。 今回は、TDDと、機能を最適に構築する方法についての新たな知識を使用します。

誤ってgit checkout -fを実行したときはご存知でしょう 何かを書いた後、お腹を蹴られたような気分になりますか?しかし、あなたは理解します、これは構築されなければならないので、私はそれをもう一度やります、そしてそれは最初よりもはるかに良くなると思いますか?これは、プロトタイプの再構築にも当てはまります。これで、機能がどのようにできるかについての確かなアイデアが得られました。 ほら、その機能のTDDはもっと簡単になります。

リバースTDD

何かを構築する方法は知っているが、最初にそのテストを作成する方法がわからないという状況に遭遇したことがありますか?または、メソッドへの1行の変更かもしれませんが、微調整が必​​要な場合があるため、変更が実際にどのようになるかを知る前に、テストでロックダウンしたくないですか?

これらの状況で大いに役立つ簡単なプロセスがあります:

  1. テストなしでコードを記述します。
  2. コードのテストを記述します。 合格することを確認してください。
  3. コメントアウト 作成したコード、またはコードを変更したファイルを元に戻します。
  4. テストを再実行してください。 失敗することを確認してください。
  5. コードをもう一度記述します。テストを実行します。 合格することを確認してください。
  6. コードをリファクタリング 、新しいテストを活用します。

これはリバースTDDだと思います または緑-赤-緑-リファクタリング。 TDDの「テスト駆動設計」の部分は得られませんが、コードが壊れているとテストが失敗するのを見ることができます。 少なくとも1回は失敗しないテストは信頼できないため、これは重要です。

リバースTDDは通常、多くの設計を必要としない小さな変更で最適に機能します。バグ修正、または単一の行、メソッド、またはクラスにローカライズされた変更を考えてください。しかし、私はこの手法を頻繁に使用します。特に、まだ遊んでいる小さな変更には使用します。

ペアリングゲーム

ペアリングゲームは、別の開発者がいるときに、赤-緑-リファクタリングルーチンから抜け出すための優れた方法です。これは次のように機能します:

  1. パートナーを探す。
  2. 失敗するテストを作成します。
  3. パートナーは、可能な限り単純なコードでそのテストを修正しようとします。
  4. そのコードで失敗する別のテストを作成します。
  5. パートナーは、そのテストに合格するコードを作成します。
  6. 繰り返し…
  7. テストが緑色になったら、テストを作成する代わりに、コードをリファクタリングすることを選択できます。
  8. リファクタリング後、テスターとコーダーの位置を入れ替えます。

秘密を教えてあげましょう。ボウリングスコア計算機でペアリングゲームをプレイすることは、私が最初にTDDを学んだ方法です。 失敗したテストに基づいて簡単なコードを記述し、それらのテストを最初に作成する練習をするのに役立ちます。両方の開発者は、お互いのコーディングスタイルとお気に入りのテクニックについて多くを学びます。そして、ほぼすぐにフローに到達します。つまり、終了すると気分が良くなります。

コードをすぐに作成することはできないかもしれませんが、それはとても楽しく、素晴らしい学習体験です。

遊び心を持って実験してください

TDDは教義であってはなりません。いくつかの本当に興味深い場所にあなたを導くことができるコアTDDの概念で遊ぶことができる方法があります。そして、あなたはさらに良いコードになってしまうかもしれません。

だから実験してください。コードとTDDを書くための新しいアプローチを試してください。それらがどのように感じさせるか、そして最終的にどのようなコードになるかを確認してください。そして、あなたが毎日行う仕事の楽しさと流れを再発見し続けてください。


  1. 確認コードを使用して Gmail のパスワードをリセットする方法

    Gmail パスワードのリセットをお勧めするいくつかの理由 、セキュリティ攻撃の疑いから、新たに発見されたプライバシーへの欲求まで、さまざまです。特別な理由がなくても、アカウントを安全に保つために、通常は数か月ごとにパスワードを変更することをお勧めします。パスワードを忘れた場合は、Gmail のパスワードを変更する理由の 1 つとしてパスワードを取得する必要がある場合があります。パスワードを回復する手順は、パスワードを変更する手順とは多少異なります。 Gmail のパスワードをリセットする手順については、以下をご覧ください。調べてみましょう。 Gmail アカウントを安全に保つためのヒント

  2. これらの簡単なヒントを使用して写真を整理する方法

    携帯電話を手に持つと、写真を撮るのがこれまで以上に簡単になります。このガジェットは事実上いつでも手の届くところにあるため、ワンクリックでいつでもどこでも思い出をすばやく簡単にキャプチャできます。しかし、カメラ ロールには何千もの画像が蓄積されるため、使用する画像を選択するのは難しい場合があります。このガイドでは、デジタル写真を整理し、重複した画像を削除するいくつかの方法に焦点を当てています. これらの簡単なヒントを使用して写真を整理する方法 ステップ 1:不要な写真をすぐに削除する 理想的な角度と照明を得るために、同じシーンの写真を 20 枚撮る責任があります。後で対処しなければならない