オフバイワンエラーは、最も一般的ではないにしても、最も一般的なプログラミングエラーの1つであるようです(/software/109/what-are-common-mistakes-in-codingを参照してください)、および従来の知恵)。
これらが非常に一般的である理由は何ですか、それは人間の脳がどのように機能するかと関係がありますか?
1つのエラーで餌食にならないようにするにはどうすればよいですか?
オフバイワンエラーは、最も一般的ではないにしても、最も一般的なプログラミングエラーの1つであるようです(/software/109/what-are-common-mistakes-in-codingを参照してください)、および従来の知恵)。
これらが非常に一般的である理由は何ですか、それは人間の脳がどのように機能するかと関係がありますか?
1つのエラーで餌食にならないようにするにはどうすればよいですか?
回答:
それは、人間の脳がどのように機能するかに関係しています。通常、エンジニアリンググレードの精度を必要としないタスクには「十分」であるように配線されています。対処が最も困難なケースが「エッジ」ケースと呼ばれる理由があります。
おそらく、1つずつのエラーを回避する最良の方法はカプセル化です。たとえば、コレクションをインデックス(0からcount-1)で反復するforループを使用する代わりに、列挙子に組み込まれた停止のすべてのロジックでfor-eachスタイルループを使用します。そうすれば、コレクションをループするたびにではなく、列挙子を作成するときに一度だけ境界を取得するだけで済みます。
脳がボーダーとエッジをどのように処理するかについて特別なことがあります。
脳が範囲と空間の観点から考えるのは簡単ですが、エッジに焦点を合わせるには、もう少し注意が必要なようです。ここにそれがどのように起こるか、注意の一時的な喪失または不十分な集中があり、あなたは国境を逃しました。
問題へのもう1 つのわずかな追加は、異なるプログラミング環境では、0または1から始まる異なるインデックスシステムがあり、両方のタイプの環境に積極的にさらされている人々を混乱させる可能性があることです。
コンテキストの切り替えによるものだと思います。私たちの日常生活では、1ベースのインデックスを使用する傾向があります。このため、脳は正しい行動を長期記憶に焼き付けることができません。