Jun 30, 2024
6 mins read
最近の社内で輪読会でリーダブルコードを読む機会があった。
その際に、自分が改めて気づきがあったので、それをまとめる。
輪読会では第2章と第3章を読んだため、それぞれの内容をまとめる。
スコープの小さい関数で使われる変数などで、見える範囲が狭い場合は、短い名前でも問題ない。 全ての情報がみえるのので、短くていい
if(debug) {
const m = Map()
lookUpNAmesNumbers(m)
console.log(m)
}
上記の例では、m
という変数名は短いが、スコープが小さいため問題ない。
例えば、m
がグローバル変数だとすると、m
という変数名だけでは何をしているのかわからない。その場合は、別の命名を検討する。
エンジニアは文字を省略して書く癖がある。例えば、BackEndManager
をBEManager
と省略することがある。
しかし、これは避けるべきである。新しい人がコードを読む際に、何を指しているのかわからないため。理解できるなら問題ない。
問題ない例として、document
をdoc
、string
をstr
と省略することは問題ない。
ここの線引きは難しいが、理解できる範囲で省略することが大事。
範囲を指定するときは、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が有効になることがわかり、可読性が上がる。
数年前に読んだリーダブルコードを改めて読んで、命名の大切さを振り返ることができた。
輪読会ではメンバー全員で同じ章を読んだ後、それぞれの意見を共有する方針を取っている。これが意外と盛り上がって楽しいので、今後も継続していきたい