February 17, 2016

リーダブルコード

キーワード:
 Dustin Boswell/Trevor Foucher、コード、可読性、品質
読みやすいコードを書くための実践的な内容がわかりやすく示されている本。目次はオライリーのページに詳細が載っているのでそちらを参照と。職業プログラマであるなら、なぜ読みやすいコードを書く必要があるかは説明するまでもなく分かるでしょう。それなりの規模の開発になれば、自分一人だけがプログラムするわけでもなく、かならずチームで仕事をすることになる。そのときは人に自分のコードを理解して機能なりを拡張して、プログラムしてもらうことになる。

そんなときに変数名がhogeとか何が入っているかわからず、if文やwhile文が何重にも入れ子になっており、グローバル変数が使われていたり、1クラス、関数の行数が1万行を超えていたり、コメントにはコードの内容をそのまま翻訳しただけの無意味なものが設定されているようなソースコードを読んだりいじったりすることは、どれほど時間がかかり、そして品質に影響を与えるかは、似たようなソースを見たことがある人には腑に落ちるはず。本書はそれらのダメなポイントを列挙し、改善点が示されている。

大学生の時にC言語によってプログラミングを学び始めた時からなるべく本書のような文章読本的なものはそれなりに読んでいた。それなりにできているはずだ、と思って一昔前から話題になっていた本書を改めて読んでみたが、意外にできていない部分もあるなと思った。もちろん、グローバル変数は使わないとかコメントは意味のあるものを設定しようというような基本的な部分は大丈夫なのだけど、一番怪しいのは変数名の設定の仕方のところか。

変数名の設定について言及されている2章のまとめを抜粋しておこう。
  • 明確な単語を選ぶ。
  • tmpやretvalなどの汎用的な名前を避ける。
  • 具体的な名前を使って、物事を詳細に説明する。
  • 変数名に大切な情報を追加する。
  • スコープの大きな変数には長い名前をつける。
  • 文字列やアンダースコアなどに意味を含める。
特にやりがちなのは一時的な値を保持するだけのtmpという変数名を使うこと。それが何が入っているかわかりやすくべきとある。例えばファイル名ならtmp_fileがよいと。tmpを使うには、生存期間が短くて、一時的な保管が最も大切な変数にだけ使用しようとある。ついつい生存期間が長いものにまで使っていたので注意しよう。

変数名に具体的な名前を使用しようとあり、また最善の名前は誤解されない名前を使うべきとある。そのため複数の変数名を検討することが推奨されている。変数名は一般的に英単語を組み合わせると思うので、明確な単語を設定する必要があるなと。しかし、あまり時間がない時や追われていて余裕がない時は安直な名前にしてしまいがちだね。さらに適当な英単語を英辞郎などで調べようと思っても、ネットが遮断されているような客先常駐環境だとどうにもならなくなる。なので、普段から英単語を勉強しておくのがいいと思う。以下とお勧め。だいぶ前の過去最高スコアが610だった。今やったら450前後ですっかり忘れているなぁ・・・。

本書はそのタイトルの通り、読みやすく分かりやすいし、230ページほどで実践的な要点がまとまっているのでお勧め。また、あわせて読みたい本としていくつか類書が列挙されていた。その中で読了済みなのは以下。リーダブルコードも内容としてはよいが、もっと深く学んでおくべき内容なので、個人的にはCODE COMPLETEを強くお勧めする。値が張って読了にもかなり時間を要するが、それだけの先行投資の価値は十分にある。

あまり職場以外で人のコードを読む機会がなかったので、今年はもっといろいろと読んで勉強していこうかなと思う。あとはコードも晒すということもやろうかなと。ブログで駄文をさらしているのに慣れているのでソースコードくらいどうということはないはず。自分のコードはそれなりに美しく読みやすく心がけているので。また持論だけど、美しいコードを書くには普段から美術館で絵を見たり、旅行で美しい風景を見たほうがいいと思っている。

ともかく、何よりも読みやすく美しいコードがとても重要だね。職業プログラマでまだ本書を読んでない人はまず買って読もう。2週間もあれば読めるよ。




読むべき人:
  • プログラマの人
  • 1行でまとめて書くのがイケてると思っている人
  • 美しいコードを書きたい人
Amazon.co.jpで『ソースコード』の他の本を見る

bana1 リーダブルクリック☆  にほんブログ村 本ブログへ



トラックバックURL

コメントする

名前:
URL:
  情報を記憶: 評価:  顔   星