次のシナリオを想像してください。
あなた(または他の誰かの)プログラムにバグがあることを検出しました-特定の入力が与えられると、関数は間違った結果を生成します。あなたはコードを調べて、何も悪いことを見つけることができません:この入力を与えられたとき、それはただ動き出すように見えます。
これで、次の2つのいずれかを実行できます。実際の原因が見つかるまでコードをさらに調べるか、またはif
、入力がこの特定の入力であるかどうかをチェックするステートメントを追加して、包帯をたたく-ある場合は、期待値を返します。
私にとって、包帯を貼ることはまったく受け入れられないでしょう。コードがこの入力で予期せぬ動作をしている場合、あなたが見逃した他の入力は奇妙に反応しますか?それはまったく修正のようには見えません-あなたはただ敷物の下で問題をシャベルしているだけです。
これを行うことすら考えていないので、教授や本が「包帯」の修正を適用するのは良い考えではないことを何度も思い出させ続けることに驚いています。だからこれは私に不思議に思う:これらの種類の「修正」はどれくらい一般的か?