The Pragmatic Programmerの本では、作家はプログラミングを偶然の一致の概念に言及しています。それが何であるか、なぜそれが引き起こされるのか、あなたが遭遇するかもしれない危険は何かを説明し、戦争中の地雷原と比較します。
古い白黒の戦争映画を見たことはありますか?疲れた兵士は慎重にブラシから飛び出します。前にクリアがあります:地雷はありますか、それとも安全に渡れますか?地雷原であることを示す兆候はありません。標識、有刺鉄線、クレーターはありません。兵士は銃剣とひるみで彼の前の地面を突いて、爆発を期待します。ありません。それで、彼はしばらくフィールドを苦労して進み、彼が行くにつれて突き、突きます。最終的に、フィールドが安全であると確信して、彼はまっすぐになり、誇らしげに前進し、破片に吹き飛ばされるだけです。
兵士による地雷の初期調査では何も明らかにされませんでしたが、これは単に幸運でした。彼は誤った結論に至り、悲惨な結果をもたらしました。
開発者として、私たちは地雷原でも働いています。毎日私たちを捕まえるのを待っている何百ものtrapがあります。兵士の話を思い出して、私たちは誤った結論を出すことに注意する必要があります。偶然のプログラミング(幸運と偶然の成功に頼る)を避け、意図的にプログラミングを行うべきです...
しかし、私は彼らが「それを克服する方法」問題を説明する方法に本当に満足していません。ええ、あなたはコードを書く前に先を考えなければなりませんが、それをどのように実践するのですか?私が考えることができる唯一のことは、既存のオープンソースプロジェクトに機能を追加することです。ここでは、「今何をしているのか」と「他のコードの動作」の両方に関する知識が必要です。独自のプロジェクトを書いているとき。
編集:
投稿の要約:
- 次の動きを推測しないで、それが正しいことを証明してください
- 必要に応じて、可能な限り単体テストとリファクタリング
- 機能の追加-コンパイル-テストを頻繁に行う
- 初心者にコードを説明できない場合、おそらく偶然のプログラミングでしょう。
ところで、答えを受け入れるのは難しいです、本当に難しいです。すべての答えは本当に素晴らしいです:)