スコープを意識する

こんにちは,インターン生の鳥井保秀と申します.

この記事では読みやすいコードの書き方と題して,コードの見た目を整え可読性の高いコードを書くための手法をご紹介しています.

最終回である今回はスコープを意識することの重要性についてご説明したいと思います.

スコープとは,Wikipediaによるとプログラミングでのスコープとは,ある変数や関数が特定の名前で参照される範囲のことで,わかりやすく言えばその変数や関数が使える範囲のことを指します.

その表し方は言語によって異なりますが,ここからはc++を例に説明していきたいと思います.

//————————グローバルスコープ開始—
int a;

int function(){ //——関数functionのスコープ開始-
int b;

{ //—————ブロック1のスコープ開始–
int c;
int d;

} //—————ブロック1のスコープ終了–

{ //—————ブロック2のスコープ開始–
int d;

} //—————ブロック2のスコープ終了–

}//———————-関数functionのスコープ終了-

//————————-グローバルスコープ終了——-

(説明のため識別子の名前は適当です.)

例えば上記のようなc++のコードでは変数aが使える範囲はソースコード全体で,変数aのことをグローバル変数と呼び,この変数aのスコープのことをグローバルスコープと呼びます.逆にソースコード全体からは使えないほかの変数のことをローカル変数と呼び,そのスコープのことをローカルスコープと呼びます.例えば変数bは関数function内部でのみ使うことが可能で,ほかの関数からは使うことができません.{}でくくった部分はブロックと呼ばれ,変数cは上のブロック1内部でのみ使うことが可能で,ほかのブロックから使うことはできません.また.変数dのようにスコープが異なれば,同じ名前の変数であっても使用することができます.

今回は説明を省略しますが,名前空間やクラスのスコープも存在します.

グローバル変数のような広いスコープの変数が避けられるのは,それがどこからでも使うことができてしまい,どこでどのように書き換えられているのか把握しづらいのと,広いスコープの変数名が多くなるとその管理が大変になってしまうからです.

前回までの説明で変数や関数の名称をわかりやすくすることをご説明いたしましたが,システムの規模が大きくなり長いプログラムになると,変数を数百個も使用することになり,時には同じ名称を複数使いたいと思うことがあると思います.しかし同じスコープ内で同じ名称の変数を使用することはできません.しかしだからと言って例えば変数名の後ろに数字を付けて区別したりすると,せっかく付けた変数名が分かりにくくなり,コード全体が読みにくくなってしまいます.

そこで,変数のスコープを意識し,識別子のスコープを適切に小さくするよう心がけることで,それを解決することができます.具体的には,なるべく内側のブロックで変数を定義する癖をつけることでその変数のスコープを狭めることができ,変数名の衝突を起こりにくくし,また,見た目上処理に関係する変数の数が少なくなることで,ソースコードを理解しやすくすることができます.

今回はスコープを意識することの重要性についてご説明しました.スコープを意識することで変数が使用可能な範囲を絞り,コードの理解を手助けることができます.

以上今回まで読みやすいコードに関してご紹介してきました.ほかにも読みやすいコードを書くための手法は数多く存在するので,機会があれば調べてみてください.

興味を持たれた方はお気軽にお問い合わせください。

インターンシップへの申し込み・お問い合わせ先

インターンシップへの申し込み・お問い合わせ先
メールでのお問い合わせは、下記フォームに入力して送信してください。
ご氏名 (例)山田 太郎
メールアドレス 半角英数字:ご入力間違いのないようにご注意ください
メールアドレス(確認用) 半角英数字:ご入力間違いのないようにご注意ください
電話番号 (例)0354339211 ※ハイフン抜きで入力してください
題名
お問合わせ内容

アーカイブ

カテゴリー