skillup

技術ブログ

プログラミング全般

変数の役割について

投稿日:

前回のエントリーの主眼は変数を置くことで、適切な情報量に分割し、コードを読みやすくしよう、ということでした。

今回はそれとは少し逆の観点でして、不要な変数を削除して、コードを読みやすくしよう、ということです。

役に立たない変数

ここまで極端な例はなかなかないと思いますが、「式を簡単にする」といったような明確な役割がない変数は意味がないということですね。

リーダブルコードにはもう少しいろいろな例がありますが、意図としては同じです。「式を簡単にする」ような役割のない一時的な変数などは削除しましょう。そのほうが頭を使わずに済むので読み手に負担を与えません。

変数のスコープを縮める

変数というのは同じ役割を果たせるのであればスコープが小さいほうがいいです。スコープが大きいと意図しない動きをしたり、他の変数と思わぬ衝突をする可能性があります。

Javaなどでは変数のスコープなどがPerlやPHPと比べるとやや厳密に設定されています。こういったルールや枠組みがなくてもなるべく変数のスコープは小さくしたほうがよいでしょう。できるだけグローバル変数→クラス内の変数→ローカル変数と右に近づけていくようにしましょう。

変数は使用箇所と近い場所で定義する

これもコードを追うときに頭を使わなくする工夫です。変数が定義される場所と関数が離れるほど処理を追うのに大変になります。できれば使用箇所の直前に置いたほうが良いでしょう。

変数に書き込むのは一度だけにする

変数は場所もそうですが、操作する回数が増えれば増えるほど動きがおいにくくなります。一度だけ変数を設定し、それ以降変更をしない、ということが可能であればそのほうが動きがよいでしょう。const,finalなどイミュータブルにする方法などが言語に組み込まれていればその方法を使いましょう。

-プログラミング全般
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

エラーレポーティングサービス Sentryについて

リリースした後、運用段階に入ると定期的にバグ報告が上がってきます。 本来はリリース前に検収テストをすべきなんですが、そんな余裕ないことも多い(汗) で、そんな時に大事なのが エラーを気づけること 対処 …

no image

コレクションの頻出処理に関して

PHPでコレクションを使っていますが、慣れると本当に便利ですね・・・まあforeachとかでグリグリやってもいいのですが、無駄にコードが長くなります。 自分がコレクションでよく使う再頻出のメソッドなど …

no image

Eclipseのシンタックスハイライト

先日PCがクラッシュした時にEclipseを入れなおしたんですが、普段あまり意識せずに使っていたのでhtmlのシンタックスハイライトをだすためだけに2時間ぐらい費やしました・・・自戒の意味も込めてメモ …

no image

サロゲートキーと主キーに関して

今までも何度か触れたサロゲートキーと主キーに関して。 今までの参考リンク 論理設計のグレーノウハウ サロゲートキー サロゲートキーに関して 主にシステム設計的な考察が多かったので、今回はユースケースか …

no image

画面の制御フローなど

複雑な帳票系アプリではよくあると思うのですが、ある入力値が複数の場所から影響を受けており、制御がなかなか難しいときなどがあります。 例として クリアボタンなどでクリアされる 他のプルダウンなどで影響を …

アーカイブ