uhooi                        
                                                    
                                                                the_uhooi                            
                                            みなさんは実装時にどの程度「スコープ」を意識していますか?
「スコープ」は直訳すると「範囲」という意味であり、本トークでは「コードにおける様々な範囲全般」を指すことにします。
例えば、自クラスのみで呼ばれているのに private 修飾子が付いていないメソッドがあるとします。
このメソッドの修正時、影響範囲を調べるために他から呼ばれていないか確認しますが、 private が付いていればその範囲を自クラスのみに絞れます。
逆に、普段からスコープを意識していると、 private が付いていないときに「このメソッドは自クラス以外から呼ばれているんだな」と推測できるようになります。
このように、スコープを意識することで実装の意図が伝わりやすくなり、可読性の高いコードが書けるようになります。
他人や明日以降の自分のためになるコードなので、私は「思いやりのあるコード」と呼んでいます。
【アジェンダ】
・アクセス修飾子( private や internal など)の意味と付けどころ
・ final 修飾子の意味と付けどころ
・プライベートプロパティよりスコープを狭くする
・プライベートメソッドよりスコープを狭くする
・ @IBOutlet と @IBAction のスコープ
・あえて最初からスコープを広げるケース
【ゴール】
・スコープを狭くすることのメリットがわかる
・アクセス修飾子や final 修飾子を適切に使える
・各修飾子を使わずにスコープを狭くできることがあるとわかる
・最初からスコープを広げることのメリットがわかる
みんなでスコープを意識した「思いやりのあるコード」を書き、優しい世界を作りましょう!