リーダブルコード
2020年6月24日
リーダブルコードを読んで、今後やった方がよさそうだなと思ったことをメモっていたので、転載する。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
名前の付け方
名前に単位をつける
関数が何をするものか、変数には何が入っているかはできるだけ意識してつけていたつもりだけど、単位までには気を配れていなかった。 多分JSDocとかに書いてはいるだろうけど、getTimeByMillisecondとかにすれば呼び出し時により明確になる。
Getではなく、状況に応じてdownloadとか、fetchをつかう。
値を取得するいみで、get
とかset
を使いがちだけど、用途に応じて名前を変えることはよさそう。
ただし専門的すぎる用語を使ってよりわかりづらくなるようなことは避けたい。
スコープの大きさによって変数名の詳細度をきめる
スコープが広い変数は詳細に、スコープが小さい範囲は簡単に名前をつける。 スコープが広い分いろいろな箇所から参照されるため、わかりやすい名前にしておくのが吉。
構造や順番
似た機能を持つコードは見た目も似せる
ここまで意識したことはなかった。確かに機能的に似ているコード(引数違いの関数など)は似た構造を持たせやすいし、 その方がデバッグしやすい。
意味のある並びを考える。HTMLに合わせるとか。
汎用的な関数は下にまとめるとか、一見意味のありそうで意味のない並びはやめた方がいいと思った。 一つのファイルは一つのストーリーだと個人的には思っているので、上から読んで違和感のないコードにしたい。 もしそれぞれが独立した機能であるなら、HTMLファイルとの関連性を持たせるのがよい。(headerに関する機能は上とか)
関数で使う値を上部で変数化しておくことで、関数で参照する概念を事前に伝えることができる
これはそのまま。
ロジック
説明変数(関数)
正直何をやってるかわからないという処理は変数にいれて名前をつけたり、関数化して説明してあげるといい。 実行する回数によらない。それでわかりやすくなればよい。
評価を反転してみる。
「重なることを確認すること」は「重ならないことを確認すること」を利用することができる。 書いている時に自分自身でさえわかりづらいと思ったら、確認しておきたい点。
自己完結している処理は外に出す方がいい
たくさんの機能をもつ大きな関数は自己完結している処理を多く持っていることが多い。 色々含まれていると、この関数の目的はなんなのか?が見えづらくなってくるので、自己完結している処理は名前をつけて外に出そう。