Local Variable|ローカル変数の役割と使い方
記事更新日:2024-02-03
役割を理解する
変数に役割があるの?
そもそも、ローカル変数とは何か
ローカル変数とは
ローカル変数とは、「宣言場所からスコープの終わりまで」のみアクセスするもの
Local variables are only accessible from their point of declaration to the end of their scope.
宣言した場所が、スタート地点
狭い範囲で、自分の役割を果たす
ローカル変数の役割|common roles for local variables
むやみに使わずに、次のような役割をおさえておく
- Collector|コレクター
- あとで使う情報の収集(collects information for later use)
- たとえば関数の戻り値には、”result” や “results”などの変数を使う
- Count|カウント
- 数の集計
- Reuse|再利用
- 何度も使う、同じ値
- Element|要素
- ループの中での、ループされている要素
- 何をループしているかを理解しやすくする
- 特にネストしたループには、変数名で区別することが推奨されている
- ループの中での、ループされている要素
- Explaining|説明
- 式の一部
- x + y など
- 複雑な式の場合、変数名を工夫すると理解しやすくなる
if you have a complicated expression, assigning bits of the expression to local variables can help readers navigate the complexity
- 式の一部
あとで使うか、または理解しやすくなってるか
最後の Explaining は、特に意識してみよう
説明ローカル変数|The explaining local variables
計算上は必要なくても、説明変数は、長くて複雑な式を説明するのに役立つ。
While not computationally necessary, the explaining local variables help what would otherwise be a long, complicated expression.
「長くて複雑な式」を説明
ヘルパー・メソッドとも呼ぶ
ヘルパー・メソッド|helper methods
長く複雑な式をわかりやすくするメソッド
ヘルパー・メソッドになっているかチェックする
- メソッドを単純化する
- simplify the method
- 共通の式の重複を排除する
- eliminate the duplication of common expressions
- 単純になったか
- 同じ式を何度も書かなくてもすむようになったか
前よりも複雑になってるなら変数を考え直したほうがいい
「メソッド(関数)として使えるか」もチェック
- 「式」が「メソッドの本体」となる
- the expression becomes the body of the method
- 「変数名」が「メソッド名」を表現する
- the name of the local variable suggests a name for the method
変数の名前そのものが、メソッドを表現する
やっぱり名前が大事
役割を表現する変数名|Role-Suggesting Name
それ自体の役割が伝わるものが、名前
- 「10%」という具体的な数値に、
- 「税率」という抽象的な名前をつける
- →「税率を扱っている」ことが読者に伝わる
数値の意味を、抽象的な名前で読者に伝える
長さ v.s. 短さ
- 役割を完全に伝えるために、長い名前にしたい
- I want to communicate my intent fully through my names, which often suggests long names.
- 短くてシンプルな名前にしたい
- I’d like the names to be short to simplify code formatting.
役割がきちんと伝わる長さでの、もっとも短いものがいい
そのために優先することがある
読みやすさ優先にする
- 入力のしやすさより、読みやすさ優先
- 伝わる範囲で、できるかぎり短くて明瞭なものを選ぶ
- 誰にも伝わらないような省略形にはしない
- スコープや型などは文脈が伝えるものであり、必ずしも名前で表現する必要はない
迷ったら、読みやすいほう
そもそもの役割を理解する
役割を表現するためには、その式自体の役割を知る
- この計算の目的は何?
- このオブジェクトはどう使われる?
- この変数の範囲と寿命はどのくらい?
そもそも、この式はなぜ必要なんだっけ
役割が大きすぎてる可能性もある
メソッド自体を短くする
名前が思いつかない場合は、メソッド・モジュール・ロジックが大きすぎることを疑ってみる
変数と対話するような感覚
ちなみに変数は、宣言する場所も大事
ローカル変数の宣言
使用直前に宣言する
情報は狭いほうがいい
ローカル変数は使用直前かつ最も内側のスコープで宣言されるべき
Declare local variables just before they are used and in the innermost possible scope.
- 情報の広がりは、できるだけ狭くするべき
- information should spread as little as possible
食べる直前に「いただきます」と言うようなもの
コードとは、「読みもの」である
読者に伝えるための
抽象化
2024-02-03
編集後記:
この記事の内容がベストではないかもしれません。