コードの可読性の大雑把な評価指標と改善方針の紹介

著者:杉浦

コードの可読性の大雑把な評価指標と改善方針の紹介

 プログラミングの際には既存のコードを読むタイミング、変更するタイミングが出てきます。そういった時に可読性や変更容易性が低いコードを扱うととても大変です。このことは古く(大体1970年辺り?)から言われており、可読性や変更容易性を保つための試みが今もなされています。現在までに様々な試みがなされていますがよりよい開発手法を考案するという目的は変わっておらず、おおまかな評価の方針も変わっていません(評価の多角化、定量化は今も進化しています)。この記事では可読性に関する評価指標と改善のための方針のいくつかを紹介します。
 可読性とは理解までにかかる時間とも言いかえれます。理解までにかかる時間はおおよそコードに目を通す時間とコードの意味を把握する時間の合計です。
 コードに目を通す時間は以下の二点に分割できます。

  • 目的のコードがどこにあるか探す時間
  • 目的のコード自体を読む時間

 開発時の作業を振り返るとこんな感じです。時たまコードをダウンロードする時間(多人数のコード共有、TypeScriptの型ファイルなど)もありますがコーディングでどうこうする問題ではないので省きます。
 目的のコードがどこにあるか探す時間を詳しく言うとどのプロジェクトのどのディレクトリのどのファイルのどの行辺りに目的のコードがあるかを探す時間です。あまりにも整理されていなかったり、全く違うものに同じ様な名前がついていたりすると新規に探すのは大変です。
 プロジェクト単位で行う目的のコードがどこにあるか探す時間を改善する方法の一つとして決まりきったファイル構造を用いる、というものがあります。よく自然に行われているのがフレームワークの用意したディレクトリに適宜ファイルを配置していくやり方です。こうすると最低限クラスは取っ散らからずに済みやすいです。
 個人で行う目的のコードがどこにあるか探す時間を改善する方法の一つとしてIDEなどの機能を用いて目的のコードまでジャンプするやり方があります。言うなれば人力のハッシュ探索であり計算量O(1)の速さは格別です。PhpStormで行う方法として、Ctrl+Shift+Eの最近使ったコード一覧からジャンプする方法、F11でブクマしてShift+F11で開くブクマ一覧からジャンプする方法、Ctrl+Shift+Alt+Nのシンボル検索(関数、クラスなど)からジャンプする方法などがあります。
 目的のコード自体を読む時間はシンプルです。コードが短ければOKです。改善方法は余分なことを書かない、コピペをしない、抽象化カプセル化をして知らなくてもいい部分を知らせないようにする、といった具合です。
 コードの意味を把握する時間についての細分化はそれだけで本ができそうですが(リーダブルコードはこのあたり詳しいです)、コードを読む人の既存の知識にあてはめる(デザインパターン、フレームワーク、一般的と言えるくらい広範に広まった共通ライブラリなど)、誤解の起きないように記述する、といったあたりができるとコードの意味を把握する時間を短くできます。

  • この記事いいね! (0)

著者について

杉浦 administrator