良いコ-ドへの道―普通のプログラマのためのステップアップガイド

第3回 スコープを意識したプログラミング―その1 スコープって何?

この記事を読むのに必要な時間:およそ 1 分

画像

本連載が書籍化されました。

良いコードを書く技術 ─ 読みやすく保守しやすいプログラミング作法

縣俊貴 著/A5判・240ページ
価格2394円(本体2280円)
ISBN 978-4-7741-4596-9

はじめに

今回のテーマは「スコープを意識したプログラミング」です。地味なテーマですが,実はプログラミングのあらゆる場面に「スコープ」は存在します。なんとなくで指定しがちですが,「意識的にスコープをコントロール」できれば,より良いプログラミングスタイルに近づくはずです。それではスコープの巻,始まります。

スコープって何?

まず,スコープとはなんでしょうか? Wikipediaには次のように書いてあります。

プログラミングでのスコープとは,ある変数や関数が特定の名前で参照される範囲のこと。ある範囲の外に置いた変数等は,通常,その名前だけでは参照できない。このときこれらの変数はスコープ外である,「見えない」といわれる。

スコープとは変数やメソッド,クラスなどが見える範囲のことです。では「見える」とはどういうことでしょうか?

「見える」とは,それらが「プログラミング上使える」ということです。変数であれば変数名を指定して値を読み書きでき,メソッドであれば呼び出して使うことができます。

「使える」ということは,言い換えるとそれらに「依存する」ということでもあります。コードを1ヵ所書き換えたいだけなのに,数十ヵ所を修正する必要があったというような経験はありませんか? 依存していると,このように変更がほかの部分に影響を与えます。

  • スコープ=見える範囲=使える範囲=依存する範囲

変数やメソッドのスコープを小さくすることで,「見える範囲」が小さくなり,「使える範囲」も小さくなり,さらに「依存する範囲」も小さくできます。スコープを小さくすることで,より依存性が少なく変更が容易なプログラムを書くことができるはずです図1)。

図1 スコープと依存の関係

図1 スコープと依存の関係

覚えておくことを少なくしよう!

依存が小さくなること以外にも,スコープを小さくすることで嬉しいことがあります。

プログラミングは本質的に複雑なものです。複雑さへの対策として,問題領域をなるべく小さく,理解可能な状態で扱えるようにすることが重要になります。

スコープを意識的に小さくすることで,私たちプログラマが覚えておかなければいけないこと,注意しなければいけない範囲は小さくなり,理解が容易にできるようになります。これがスコープを小さくすることの本質と言えます。

スコープを意識していますか?

それでは,いつものように,各界の代表者の方々にスコープについてコメントしてもらいましょう。

良い仕事をしたい普通のプログラマ

達人プログラマを目指す初級~中級のプログラマ

達人プログラマ

おっと,達人プログラマのキャラがさらに仙人がかってきましたが,本記事を最後まで読んでもらえば彼が言いたかったことが伝わるはずです。それでは,スコープを意識したプログラミングについて考えていきましょう。

著者プロフィール

縣俊貴(あがたとしたか)

学生時代にMSXで制限された環境でのプログラミングの楽しさを学ぶ。以来,オープンソースのWiki実装「MobWiki」の開発や受託開発などを経て,現在はプロジェクト管理ツール「Backlog」,ドローツール「Cacoo」など,コラボレーション型のWebサービスの企画と製品開発を行う。また,Webアプリケーションフレームワーク「Cubby」のコミッタを務める。福岡在住。株式会社ヌーラボ所属。

ブログ :http://d.hatena.ne.jp/agt

Twitter:@agata

コメント

コメントの記入