川のブログ

川の適当気ままなブログです。 

リーダブルコードを読む part2

こんにちはかわです。

アドベントカレンダー17記事目です。

続きを書いていきます。

kawakawa.hatenablog.com

2章 名前に情報を詰め込む

1 明確な単語を選ぶ

「get」はあまり明確ではない

例 def GetPage(url):

・・・

これはどこから取ってくるものなのか?

インターネットから取ってくるのであれば

「Feach」「Download」のほうが明確

例 Size -> Height NumNodes MemoryBytes 等

シソーラス類語辞典)で調べるべき。

気取った言い回しより明確で正確に

2 tmpやretvalなどの汎用的な名前を避ける

tmp・retval・foo この3つより

目的、実物の値を表した名前を選ぶ

retvalには「戻り値」という情報しかないためプラスαの情報を付加する

tmpという名前は、生存期間が短く、一時的な保管が大切な変数にだけ使用

ループイテレータ(i, j, k, iterなど)が複数ある場合、

説明的な名前にするとバグが目立ちやすくなる

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

例 ServerCanStart() -> CanListenOnPort()

任意のTCP/IPポートをサーバがリッスンできるかを確認するメソッド

変更後のほうがメソッドの動作をそのまま表している

4 名前に情報を追加する

名前は短いコメントのようなもの

大切な情報があれば「単語」を変数名に追加する

値の単位や危険や注意を換気する情報も追加したほうがいい

5 名前の長さを決める

スコープが小さければ短い名前でいい

->スコープが大きいならば長い名前を

エディタの「単語補完」機能を使用すべし

頭文字や省略形を使用する場合、誰が見ても明確に

不要な単語は取り除く

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

qiita.com

いろいろなフォーマットがあるためチームで統一して書くべし

大文字やアンダースコアに意味を持たせる

以上

kawakawa.hatenablog.com