60-真実を語るのはコードのみ

プログラマが知るべき97のこと」の60個目のエピソードは、コードの可読性に関する話です。可読性に関する話題は何度も登場しています。プログラムは実行できることが全てですが、保守をしていくなかで、ソースコードを読む比重は高くなっていきます。新しい機能を追加するにしても、不具合を修正するにしても、既存のソースコードを読む事が必要不可欠です。そして、継続的なプロジェクトでは「ソースコードを読む」時間が大きな比重をしめるでしょう。従って、生きたコメントやシンプルで読みやすいコードである事に価値があるのです。

コードを書くことは、誌やエッセイ、不特定多数の人に見せるブログ、あるいは大切な要件を伝えるメールなどを書くのと同じようなものと考えるべきです。表現を工夫し「このプログラムはどう動くものなのか」ということが、コードの読み手にストレートに伝わるようにするのです。

こんな事を会社で話したら気持ち悪い奴扱いされるかもしれません。しかし、プログラムが動く事は当たり前であり、プログラマのスキルが問われるのは如何にコード自身に語らせることができるかです。読みにくい難解なコードを書く事よりも、誰にでも読みやすいコードを書く方が難しいのです。コードの可読性に関するネタも尽きてきたので、読みやすく美しいコードを書くために自分が心がけている事を幾つか紹介します。
1つ目は、常に人に読まれるという意識でコードを書くと言うことです。メールやブログのエントリーと同じように、コードを書いたならば読み直します。コンパイルが通ったとしても、テストが通ったとしても、もう1回読んでみます。その時、「変数の名前はこっちのがいいな」「宣言の順番としてはこっちを先にしよう」「ここはメソッドを抽出しておくか」「このループは拡張forのほうが読みやすいだろう」という感じでちょっとした修正をします。この時には必ず読まれるということを意識しています。
2つ目はコードを晒す事です。オープンソースのプロジェクトやブログでコードを晒します。そのコードにツッコミが入ることなどはまずありませんが、自分の書いたコードを公開する事は勇気がいる行為です。緊張します。怖い事もあります。ミスをしてどこかで晒されたらどうしようと思います。ですが、公開することの緊張感は確実にコードの可読性を高める効果を期待できます。これは技術的なエントリーを書く場合も同様です。知識を伝えることで自分の成長に繋がります。
3つ目はとにかく書く事です。ブログのエントリーでもそうですが、訓練して書き慣れる事が最大の学習です。書かなければ綺麗なコードは書くことができないでしょう。写経も効果はありますが、可能な限り綺麗なコードを写経してください。反復練習に勝る学習はありません。
コーディングはプログラマにとって最も基本的なスキルです。自分もまだまだ修練が足りません。他の人の参考になるようなコードを書けるようになるのが目標です。
だから、ブログを書き、コードも公開しています。

プログラマが知るべき97のこと

プログラマが知るべき97のこと