デバッグは、実行時にコード内のオブジェクトと変数の状態を検査するための非常に便利なツールです。
上記の回答で前述したように、デバッグは非常に役立ちますが、制限される場合があります。
私の経験では、デバッガーを使用すると、コードの状態について行っていた誤った仮定を明らかにするのに役立つため、非常に便利です。一部の人々はバグを見つけるためにコードを読み通すことに鋭敏ではないので、デバッグはコードの状態についてあなたや他の開発者が行った誤った仮定を明らかにするのに役立ちます。
メソッドに渡されたときにパラメーターがnullにならないことを期待している可能性があるため、そのケースをチェックせず、そのパラメーターがnullにならないかのようにメソッドを続行しません。現実には、パラメーターが nullであってはならないという前提条件としてメソッドを設定した場合でも、ある時点でパラメーターがnullになることがあります。それは常に起こります。
前述の例でのデバッガーの有用性とは対照的に、マルチスレッド(つまり、並行処理、非同期処理)が関係する場合、使用するのは難しく、やや役に立たないことがわかります。これは役立ちますが、デバッガーのブレークポイントがポイントAの1つのスレッドとポイントBの完全に別のスレッドでヒットしている場合、マルチスレッドフォグで方向を失うのは簡単です。開発者は新しいブレークポイントをプッシュするように強制されます思考プロセス」を脳の「スタック」の上に配置し、新しいブレークポイントのポイントでコードの方向を決めます。ブレークポイントBの関連性が低下すると、開発者は最初のブレークポイントに戻り、ブレークポイントBのトリガーの前に探していたものを思い出す必要があります。これは混乱を招く説明かもしれませんが、
また、並行コードの予測不能性は、並行コードのデバッグにおいて開発者の注意をさらにそらします。
結論として、私の正直な意見では:
- 並行性が使用されている場合のデバッグ=「思考パターンのデバッグ」の焦点を失う傾向の増加
そして
- いつでも=デバッグの生産性を向上b / c予期しないブレークポイント(競合状態により予期しない)によって注意が中断されない。