リーダブルコードを読み直してみる 【名前に情報を詰め込む】

books

何度か読1んだり読まなかったりしている名著なのですが、読んだことを反芻しながらアウトプットしてみようかな、と思って今回記事にしてみました。

基本1章1記事で気が向いたときに書いていきたいと思います。章の順番も気が向いた順番で進めていくつもりです。

各章の中でも、気になった部分を抜き出して所見を書いているので、項番には抜けがあるかもしれません。

明確な単語を選ぶ

このへんは、名前の長さやフォーマットを決めた上で、抽象的でなく、具体的な名前をつけましょう、ってことですね。

キャメルケース、ケバブケースなんかは統一しつつ、英単語でもより適切なものを使いたいところです。

「GetPage()」だけだとどこから?どうやって?みたいな情報が少ないので、例えばインターネットからとってくるなら「DownloadPage()」とのことです。

これ、ローカルキャッシュからもってきたり、DBからもってくる場合、自分はFromLocalCacheとかFromDBとかやってしまいそうなんですが、単語一語で表せたら便利そう。

すぐには適切な単語が思いつかないんですが、cacheからだと、retrieve(取り出す)とかが使えそうですかね。

DBだとSQLからselect、とかかな・・・この辺適切とは言い難い気がする・・・。

英単語力が問われますね〜。でも、そこそこコード書いてると、ある程度は慣れる気がします。

抽象的な名前より具体的な名前を使う

–run_locallyというコマンドオプションがあります。このオプションには以下の役割・特徴があります。

  • デバッグ情報の出力
  • 動作が遅くなる

リモートサーバで使う時はパフォーマンスが重要だから、このオプションは使っていなかったようです。だから、locally。

言葉の使い方が本質的じゃない感じがしますね。ということで、

–extra_loggingを使った方が直接的で明確、とのことでした。

名前に情報を追加する

単位(elapsed_ms)をつけたり、重要なところで意味のある名前をつけましょう、ということ。

ただのurlじゃなくて、parsedUrlにする、とかですかね。

名前の長さを決める

自分は変数の名前をつける時、わかいりやすくなが〜い名前にしがちなのですが、「適切な」長さが大事みたいですね。

  • スコープが小さければ短くてよし(3行程度で、すぐわかるようなら1文字でもよさそう)
  • 長い名前自体はIDEの補完機能で問題なさそう
  • 省略するなら、常識ある名前ならOK(string→strなら○。BackEndをBEはダメ。)
  • わかりきってる単語は削除する(convertToIntはToIntでもよさそう。)

名前のフォーマットで情報を伝える

この辺は規約に従っていれば問題なさそうですが、定数は大文字にする、とかですね〜

まとめ

要約って感じになってしまいましたが、何度読み返してもできてるかな〜、と思うことがちょこちょこあります。

コード書くときに活かせるように、何度も読んで頭に刷り込んでおきたいところ。それでは!

コメント

タイトルとURLをコピーしました