完璧主義的傾向の強い初学者はそう遠くない将来において、プログラミングから挫折することが約束されており、
手間をかけてこしらえた開発環境もホコリをかぶり、ただのセキュリティーホールになってしまう。
コーディングで挫折しないためにいい方法はないだろうか。
どう頑張ってもコードはダメになる
リーダブルコード(2012)の5章には、初学者を励ます金言が記されている。
コードは絶えず進化しているので、その過程で欠陥を生む運命にある。
これは、職業プログラマーですらプロジェクトの進行により、バグや美しくない実装を生み出してしまうことを表している。
ソースの行数や、実装したい機能が増えるにつれ、考慮せねばならない点はどんどん増えていく。
要求の実装にはいくつもの前提が含まれるようになり、時としてそれらは対立しあうこともある。
(例えば大量のデータをDBから取得しつつ速度も維持しなくてはならないなど。)
訓練された職業プログラマーでさえこの問題からは逃れられないのであれば、初学者であればなおのことであろう。
つまりどこかの段階であなたのコードはダメになる。
コードの欠陥にコメントをつける
拙速は巧遅に勝るとはよく言ったもので、コーディングにおいても有力な考えだ。
とりあえず動くものができたのであれば、実装方法に不満があっても「あとでやるコメント」をつけて次の部分のコーディングに移る。
これは挫折をしないコーディングにおいて大切なことだと思う。
以下はリーダブルコードで紹介されていた、「あとでやるコメント」の例だ。
#TODO:後回しにした箇所。
#FIXME:既知のバグがある箇所。
#HACK:改善の余地があるが、実装が難しく妥協している箇所。
#XXX:深刻な問題がある箇所。
ここは改善するべきであるが、具体的な実装方法がわからないという場合には、飛ばしてしまうほうがプロジェクトが形になりやすい。