はじめに
「可読性」って雰囲気で使ってるけど、可読性の構成要素とかいまいちよくわかんないので、調べてみた。
自分には結構定義が難しくて、簡単にサマリできなかったので、単なるリンク集になってしまった。
網羅的に調べたわけではないので、検索してヒットしたものを整理した、くらいのもの。
調査時のメモ
調べた箇所別に整理していく。
wikipedia
コンピュータ・プログラミングにおける可読性(readability)とは、プログラムのソースコードを人間が読んだときの、その目的や処理の流れの理解しやすさを指している。
ソースコードを保守するのは人間であるため、その可読性は重要である(ただし、未熟なプログラマが、よく使われるイディオムによる簡潔なコードを「可読性の低いコード」と見なしてしまうことがあり、読む人間のスキルもまた重要である)。
コメントも可読性に影響し、適切なコメントは可読性を向上するし、誤ったコメントが放置されていれば誤読のおそれが高くなる。可読性の低いコードは、バグを生みやすく、重複コードによる非効率を生みやすい。
コーディングスタイルの規則の大部分はコードの意味には何ら関係なく、主に可読性に関するものである。例えば以下のようなものである。
- 字下げスタイルの違い
- なお、インデントがコードの意味に直接関係する言語もある(例:Python)。
- コメント
- 問題の分割の仕方
- 各種オブジェクトの命名規則(変数名、クラス名、手続き名など)
まぁよく言われる話以上の情報は得られなかった。
いろんな先行研究
面白い切り口は多いものの、言語が違うとか、分析のための準備が大変そうとか、自分の現場に適用できそうなのはちょっと見当たらなかった。。。
画像で2値化してとか評価するとかは、簡単で面白そうだった。ただ、その基準でスコア化した時に、現場がそのスコアを過剰に重視してしまって、そのスコアが良くなることを目指されるとつらいので、採用には至らなかった。
最後に
ちょっと「可読性」って基準は諦めようかなぁと思ってる。
自分が評価したいのは「コード品質」なんだろうなというのがわかってきたので、そっちのキーワードで調べ直そうと思った。
以上。