【コーディング】"挫折しないコードの書き方"

完璧主義的傾向の強い初学者はそう遠くない将来において、プログラミングから挫折することが約束されており、
手間をかけてこしらえた開発環境もホコリをかぶり、ただのセキュリティーホールになってしまう。
コーディングで挫折しないためにいい方法はないだろうか。

どう頑張ってもコードはダメになる

リーダブルコード(2012)の5章には、初学者を励ます金言が記されている。

コードは絶えず進化しているので、その過程で欠陥を生む運命にある。

これは、職業プログラマーですらプロジェクトの進行により、バグや美しくない実装を生み出してしまうことを表している。

ソースの行数や、実装したい機能が増えるにつれ、考慮せねばならない点はどんどん増えていく。
要求の実装にはいくつもの前提が含まれるようになり、時としてそれらは対立しあうこともある。
(例えば大量のデータをDBから取得しつつ速度も維持しなくてはならないなど。)

訓練された職業プログラマーでさえこの問題からは逃れられないのであれば、初学者であればなおのことであろう。

つまりどこかの段階であなたのコードはダメになる。

コードの欠陥にコメントをつける

拙速は巧遅に勝るとはよく言ったもので、コーディングにおいても有力な考えだ。

とりあえず動くものができたのであれば、実装方法に不満があっても「あとでやるコメント」をつけて次の部分のコーディングに移る。

これは挫折をしないコーディングにおいて大切なことだと思う。

以下はリーダブルコードで紹介されていた、「あとでやるコメント」の例だ。

#TODO:後回しにした箇所。
#FIXME:既知のバグがある箇所。
#HACK:改善の余地があるが、実装が難しく妥協している箇所。
#XXX:深刻な問題がある箇所。

ここは改善するべきであるが、具体的な実装方法がわからないという場合には、飛ばしてしまうほうがプロジェクトが形になりやすい。