こんにちは、音ゲーマーのKenです。

3月に大洗に旅行に行きました。美味しかったです(あんこう鍋)。

今回は新人プログラマーさん向けに、綺麗で分かりやすいプログラムを書くためのワンポイントをお伝えします。

 

icon-check ポイント

boolean型の変数の名前「命題」にする

タイトルが全てですが、これだけでは分かりづらいと思いますので、実際に例を見てみましょう。

 

icon-check 指針

変数名が命題になっているかを確認するためには、以下の指針が有効です。

if文の条件に入れたとき、「変数名 == true」を付けないと文章として読めない変数名は避ける

実例を比較してみましょう。

 

icon-check 変数名の場合

ソースコードと、それを英文のように読んだ場合の和訳を付けました。コードはJavaのつもりで書いていますが、他の言語に読み替えていただいても構いません。

【良い変数名】
if(canDownload){ download() }

 icon-arrow-circle-right もし ダウンロード可能なら download() を実行する

 

【良くない変数名】
if(downloadFlag){ download() }

 icon-arrow-circle-right もし ダウンロードフラグなら download() を実行する

これは文章になっていません。

if(downloadFlag == true){ download() }

 icon-arrow-circle-right もし ダウンロードフラグが true なら download() を実行する

 

解説

downloadFlag という変数名では true と false のどちらがダウンロード可能なのか、あるいは既にダウンロードしましたというチェックなのか、変数名から推測できません。これは変数名が「命題」になっていないからです。変数名自体が「命題」になっていれば、その変数の意味が明確になります。

 

icon-check メソッド名の場合

このルールは boolean型の戻り値を返すメソッドにも適用できます。あるオブジェクトが、処理の準備ができている状態かどうかを返すメソッドを考えてみましょう。

【良いメソッド名】
public boolean isReady() {

	return this.status == READY;
}

 

【良くないメソッド名】
public boolean checkStatus() {

	return this.status == READY;
}

 

解説

メソッドの内容は「 this.status をチェックしてREADYかどうかを返す」なので、一見 isReady() でも checkStatus() でも良いように思えるかもしれません。ですが、やはり「命題になっているか」という観点でみると isReady() のほうが適切です。

 

今回は以上です。

変数名を少し工夫するだけで、ソースコードがとても読みやすくなりますので、ぜひ取り入れてみてください。

 

それでは。

TOP
TOP