  | 
		
		
		| 
			
		 | 
		
		
		
		| 前のページ  1  2  3
		 | 
		
		
		  | 
		
		
		| ローカル変数
		 | 
		
		
			 
			   今までにも説明してきたように、名前には意味を持たせる必要がありました。しかしローカル変数の場合は、スコープが狭いことから変数を識別することが容易なため、限定的に省略した名前を使っても構いません。その場合は、省略する境界線を間違えないように気をつける必要があります。 
		 | 
		
		
		| スコープが狭い変数名は省略した名前でもよい(N_LVL001)
		 | 
		
		
		    本来、変数名には役割を反映した名前を用いるべきですが、スコープが狭い変数は識別が比較的容易なため、省略した名前を用いても構いません。スコープが狭いとは、行数が少なく、ネストされたブロックが含まれていないことをいいます。以下の例を見て下さい。
  
		 | 
		
		 
		
		
		public static void main(String[] args){ 
		  String str1 = “一行:”;                  //違反 
		  try{ 
		    String str2 = br.readLine();     //違反ではない 
		    System.out.print(str1); 
		    System.out.println(str2); 
		    br.close(); 
		  }catch(IOException e){ 
		    e.printStackTrace(); 
		  } 
		}
		
		 | 
		
		
		  | 
		
		
		   "str2"は"try 〜 catch"ブロックの中で宣言され、中でも使用されています。ブロック内だけで有効な変数ですので、省略した名前で問題ありません。
  
		   "str1"は"try"ブロックの外で宣言されています。"str1"のスコープはmainメソッド全体となりますので、省略した変数名は規約違反です。こういう場合は、意味のある名前をつけるようにして下さい。
  
		   省略名を用いてもよい範囲の目安は、「一目で判読できる範囲」です。
 
  
		 | 
		
		
		| for文のループカウンタは、ネストごとに"i"、"j"、"k"、…を使う(N_LVL002)
		 | 
		
		
		    ループカウンタに"i"、"j"、"k"を使うのは、C言語などからの習慣です。for文の中だけで有効となるループカウンタには、むしろシンプルな名前を用いた方がよいと思います。
  
		   "i"、"j"、"k"でなく、"cnt1"、"cnt2"、"cnt3"などを使う方もいると思います。これは習慣の問題ですので、プロジェクト全体で統一する必要はありませんが、ソースコード単位では統一すべきです。
 
  
		 | 
		
		
		| まとめ
		 | 
		
		
		    ここまでネーミング規約について述べてきましたが、すべての規約は、次の4つのルールに集約されます。
  
		
		
		- 意味のある名前を使うこと
 
		- "a00001"のような記号や番号ではなく、役割を表す文字列を使う
 
		 名前を省略しないこと 
		- "class" → "cls"のような省略形を使わない
 
		 1つのものに1つの名前をつけること 
		- 役割の異なるものには同じ名前をつけない
 
		 表記を統一すること 
		- 大文字や小文字の使いわけなどを統一する
 
		 
		 
		 | 
		
		
		
		 表3:ネーミング規約4つのルール
  
		 | 
		
		
		   この4つのルールは、ネーミング規約を通して一貫したポリシーです。そして最終的には「ドキュメントに頼らず、文章のように通読して意味のとれるプログラム」に繋がっていきます。
  
		   今回紹介したネーミング規約は1つの例として捉えて下さい。4つの基本ルールに反していなければ、プロジェクトごとにネーミング規約を作って利用するのも問題ありません。ただし、利用しやすく、守りやすい形にしたうえで、プロジェクト内で統一するのが重要です。また、SunのCode Conventions for the Java Programming Language(http://java.sun.com/docs/codeconv/)については守るようにするのが無難です。
  
		   前回でも書いたように、ネーミング規約の利用目的は、「ソースコードの可読性の向上」です。第1回で紹介した「コーディングの心得5ヶ条」も、その筆頭に「見やすさを重視せよ」とあります。ネーミング規約の利用による可読性の向上は、5ヶ条の目指す「良いコード」への最初の一歩です。
  
		   その効用は他人の書いたソースコードを読む時に限りません。自分の書いたソースコードを読み返すときにも、その効果を発揮します。例えば、コーディングの過程においても、個々のクラスやメソッド、変数などの役割が明確になり、処理内容の把握が容易になるため、ケアレスミスによる無用なバグの発生を減らし、作業を円滑にすることが期待できます。
  
		   ネーミング規約は決して「作業効率を下げるだけの煩わしい規則」ではないことがわかって頂けたかと思います。ネーミング規約を上手く利用することによって、より可読性の高い、即ち「保守性が高く」「生産性の高い」コードを書くことができます。保守性と生産性の向上のために、ネーミング規約の積極的な活用をお奨めします。
  
		 | 
		
		
		前のページ  1  2  3
  
		 | 
		
		
		  
		 | 
		
		
		 
		 | 
		
		
		
			
			
			  
			 | 
			著者プロフィール 
			株式会社電通国際情報サービス  高安 厚思 
			株式会社電通国際情報サービス 開発技術センター 
			Java(J2EE)/オブジェクト指向の研究開発やプロジェクト支援、開発コンサルティングに従事。モデル、アーキテクチャ、プロセスが探求対象。今回は Javaコーディング規約2004の仕掛け人。
			
 
  
			 | 
			 
			
			  
			 | 
			著者プロフィール 
			株式会社電通国際情報サービス  東田 健宏 
			株式会社電通国際情報サービス 開発技術センター 
			CTI、Webアプリの開発経験を経て、現在は主にプロジェクトマネジメント支援、プロセスエンジニアリング、ソフトウェア工学研究開発に従事。最近はコーチング、ファシリテーションといったヒューマン系スキルに興味を持ち日々修得に努めている。
			
 
  
			 | 
			 
			
			  
			 | 
			著者プロフィール 
			アイエックス・ナレッジ株式会社  河野 弥恵 
			アイエックス・ナレッジ株式会社 第1事業部所属 
			主にCOBOL、PL/1等のシステム開発に従事。コーディングに限らず、誰もが気持ちよく守れる規約を模索中。
 
  
			 | 
			 
			 
		 | 
		
		
		 
		 | 
		
		
		| 
			
		 |