目的
リーダブルコードを読んだアウトプットとして、今後自分が意識していきたいことを複数回に分けてまとめて行こうと思います。
(1章はそこまで具体的な話はなかったので2章からまとめていきます。)
2章 命名関連
2章は命名規則に関連する話がまとめられてました。基本的に 名前に情報を詰め込む
ということがメインになってきます
明確な単語を選ぶ
例えばGetという単語を選ぶより、状況に応じてdownloadやfetchなどのより明確に情報が伝わる場合がある。
個人的には場合によるかなと思いますが、get系の処理を関数に切り出している場合などは単語に気をつけた方がいいかなと思いました。daoなどのDBアクセスなどを目的としたgetであればそこまで気にしなくてもいいのかなーとも思いました。
具体的な名前を使って、物事を詳細に説明する
例えばTCP/IPポートをサーバーがリッスンできる状態かを確認するメソッドの場合、 ServerCanStart()
よりも CanListenOnPort()
という名前の方がより正確に情報が伝わる。
具体的に命名しようとすると名前が長くなりそうだなーと思いましたが今のエディタは優秀なので長くてもちょっと打てば補完ができるので問題ないかなと思います。ただ、読みにくくはなると思うのでなるべく簡潔に。
変数名に大切な情報を追加する
例えば、ミリ秒を表す変数名には _ms
をつけるとか。個人的には結構意識していたことで、scalaで変数の型がわかった方がいい場合などは、Futureなら hogeF
とかって付けたりしています。
スコープの大きな変数には長い名前をつける
個人的にはスコープにかかわらず今のエディタは補完が効くんだから変数名はわかりやすい方がいいと思っていたのですが、スコープも意識すると明らかにわかる変数とかは簡略化できそうなのでコードもすっきりしそうなので意識したいです。
3章 誤解されない名前
3章は誤解を招かないような命名をするための内容でした。
限界値を含める時は境界にminとmaxを使う
範囲を決める場合にその値を含める時は、minとmaxを使う。5以上10以下を表したい時とかに使う。
範囲を指定する時はfirstとlastを使う
例えば配列のindexを指定するような場合にfirstとlastを使う。
今回はここまでにしようかなと思います。