背景 最近の社内で輪読会でリーダブルコードを読む機会があった。
その際に、自分が改めて気づきがあったので、それをまとめる。
概要 輪読会では第2章と第3章を読んだため、それぞれの内容をまとめる。
本題 第2章: 名前に情報を詰め込む スコープが小さければ短い名前でもいい スコープの小さい関数で使われる変数などで、見える範囲が狭い場合は、短い名前でも問題ない。 全ての情報がみえるのので、短くていい
if(debug) { const m = Map() lookUpNAmesNumbers(m) console.log(m) } 上記の例では、mという変数名は短いが、スコープが小さいため問題ない。
例えば、mがグローバル変数だとすると、mという変数名だけでは何をしているのかわからない。その場合は、別の命名を検討する。
頭文字と省略文字 エンジニアは文字を省略して書く癖がある。例えば、BackEndManagerをBEManagerと省略することがある。
しかし、これは避けるべきである。新しい人がコードを読む際に、何を指しているのかわからないため。理解できるなら問題ない。
問題ない例として、documentをdoc、stringをstrと省略することは問題ない。 ここの線引きは難しいが、理解できる範囲で省略することが大事。
第3章: 誤解されない名前 範囲を指定するときはfirstとlastを使う 範囲を指定するときは、firstとlastを使うことで、範囲を指定することができる。
例えば、以下の様なコードがあったする。
function intgerRange(start = 2, stop = 4){ ... } 上記の関数は、startの2から始まることはわかるが、stopの4を含むのか含まないのかわからない。 そのため、firstとlastを使うことで、範囲を指定することができる。
function intgerRange(first = 2, last = 4){ ... } 上記の関数は、startの2から始まり、stopの4を含むことがわかる。
ブール値の名前 ブール値の命名を否定系にすることは避けるべきである。
例えば以下のコードは、否定系の命名になっている。
const disableSsl = false 上記のコードは、disableSslがfalseの場合、SSLが有効になることがわかるが、trueの場合はSSLが無効になることがわかる。 これでは、コードの可読性が下がるため、肯定系の命名をすることが望ましい。
const enableSsl = true 上記のコードは、enableSslがtrueの場合、SSLが有効になることがわかり、可読性が上がる。