【リーダブルコード】誰にでも読める美しいコードを書こう

readable-code

プログラムコードを書き、テストをして動作を検証。正常に動くことが確認できた。

これでプログラムは完成か?それだけでは不十分です。

あなたの書いたコードは、確かにあなたは分かるし、正しく動く。

しかし考えてみてください。そのコード、ほかの誰かも読めるようになっていますか?

ほかの誰かが読めるコード(リーダブルコード)であることは、コードが正しく動くことと同じくらい、重要です。

目次

『リーダブルコード』とは

なぜリーダブルコードが必要なのか

プログラマー必読の名著『リーダーブルコード』(The Art of Readable Code)

優れたコードを書く考え方として、以下が述べられています。

  • コードは理解しやすくなければいけない
  • コードは他の人が最短時間で理解できるように書かなければいけない

あなたのコードは、あとでプロジェクトに参加してきた誰かが見ても、分かるようにする必要があります。

あるいは、自分の書いたコードをすっかり忘れた、6ヵ月後のあなたが見ても理解できるコードである必要があります。

でなければ、変更したりバグを取り除いたりすることが、とても難しくなるわけです。

リーダブルコードのポイント3つ

「リーダブルコード」では、理解しやすいコードを書くための方法を、3つに分けて紹介しています。

  • 表面上の改善
  • ループとロジックの単純さ
  • コードの再構成

上から順番に、手間はかかります。

まずは見た目を整えよう

「表面上の改善」では、プログラムのロジックはいじらず、まずは見た目だけを改善する方法です。

  • 名前に情報を詰め込む
  • 誤解されない名前にする
  • 見た目を美しくする
  • コメントを入れるべきところにコメントをいれる
  • コメントを正確に簡潔に入れる

見た目だけなので、手間はかかりません。改善後もそのままテストは通るはず。まずはこの改善だけでも、コードは劇的に理解しやすくなります。

特にコメントは重要です。書籍の一説を引用。

プログラマの多くはコメントを書きたがらない。コメントをうまく書くのは大変だと思っているからだ。こうした「ライターズブロック」を乗り越えるためには、とにかく書き始めるしかない。自分の考えていることをとりあえず書き出してみよう。生煮えであっても構わない。

例えば、ある関数を作っていて、「ヤバい。これはリストに重複があったら面倒なことになる」と思ったとする。それをそのまま書き出せばいい

// ヤバい。これはリストに重複があったら面倒なことになる

管理人の経験からいって、どんなコメントであっても、ないよりは数段マシです。コメントを書く癖をつけましょう。

制御構造を単純化しよう

「ループとロジックの単純さ」では、コードを読みにくくする大きな要因、制御フロー、論理式、変数、について改善します。

  • 制御フローを読みやすくする
  • 巨大な式を分割する
  • 変数を読みやすくする

制御構造は、ちょっと立ち止まって見直せば、意外と簡単な形に置き換えられることに気づいたりします。

またマニアックな書き方をしているがゆえに、分かりにくくなっている場合も注意。書籍で紹介されている例。

// このキーのバケツを取得する。もしバケツがnullでなければ、中身が入っていないかを確認する
assert((!(bucket = FindBocket(key))) || bucket->IsOccupied());
// このキーのバケツを取得する。
bucket = FindBucket(key);
// もしバケツがnullでなければ、中身が入っていないかを確認する
if (bucket != NULL) assert(bucket->IsOccupied());

やっていることはどちらも同じですが、後者のほうが、すんなりと理解できますね。

コードの構成を見直そう

コードを大きく変更することで、理解しやすくします。

  • 無関係の下位問題を抽出する
  • 一度に一つのことだけするように直す
  • コードに思いを込める
  • 短いコードを書く

ここまでくると、難易度が高いので簡単にはできません。

ただ、以下の考えは、意識しておくとよいです。

最も読みやすいコードは、何も書かれていないコードだ

理解しやすいコードとするためのシンプルな方法は、コードの量を少なくすることです。余計な実装はしない、ライブラリを活用する。モジュールを小さく分割する

コードはどんどん肥大化していきます。理解しにくくなったと感じてきたら、短くする方法を考えましょう。

「リーダブルコード」の使い方

『リーダブルコード』の内容は、コードを書いたことがなければ、ピンとこないかもしれません。

なのでまずコードを書いてみて、そのあとにあらためて読み返してみましょう。書いてあることが分かるようになります。

リーダブルコードの使い方
  • まずはコードを書く
  • 「リーダブルコード」を流し読みする
  • ドキッとしたところがあったら、丹念に読み込む
  • リーダブルコードの内容をもとに改善する

リーダブルコードのすべてに対応するのは、簡単なことではないです。「表面上の改善」だけでも行ってみましょう。

まとめ

リーダブルコードには、重要なエッセンスがうまく凝縮されています。一度でもコードを書いたことがある人なら、「身に覚えがある…」という箇所が必ずあるでしょう。そう思ったときが、改善のときです。

プログラムのコードを書くことは、誰かに伝える文章を書くことと一緒です。

たとえどんなに良い中身の文章でも、人に伝わらなければ意味がありません。プログラムのコードも、誰かに伝える気持ちを持って作りましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次