TOP
>
設計・移行・活用
> レベル2:外部仕様を満たすが読みにくいプログラム
Javaコーディング規約
第1回:良いコードとは、心得5ヶ条
著者:
電通国際情報サービス 高安 厚思、東田 健宏
エー・ピー・アイ 森田 健
2005/8/9
前のページ
1
2
3
レベル2:外部仕様を満たすが読みにくいプログラム
レベル2のプログラムのソースコードは、レベル1の問題点を克服しただけであり、コーディング規約が守られておらず、ソースコードの可読性が悪いものとなっています。
レベル2のソースコード
(クリックするとソースコードが表示されます)
レベル2のプログラムのソースコードには主に以下のような問題があります。
不要なコメント(削除漏れ)
宣言がまとまっていない
1つの行に複数の宣言がなされている
不要な改行
クラス名、メソッド名、変数名に意味が無い
表7:レベル2のソースコードの問題点
不要なコメント(削除漏れ)
コメントは必要なもののみを記述します。
「//ここは削除しないこと。2001.5」や、「//ここは、これから実装する 2002.5」 といったコメントは、それを読んだプログラマをミスリードしかねません(13行目、28行目)。
また、修正前のコードを、コメントとして残しているソースコードがありますが、こういう死んだコードは削除して下さい。生きているコードが判別しづらくなります(20行目)。
宣言がまとまっていない
変数がソースコード上に分散しています(12行目、23行目)。
これでは仕様が変更された場合、ソースコード上に分散して存在する変数を探し出さなければなりません。
仕様の変更や修正が行いやすいように、変数を意味のあるグループにまとめて、クラスの先頭の方で宣言するようにして下さい。
不要な改行
「BufferedReader br = new BufferedReader(new InputStreamReader(System.in));」は改行されているものの、改行位置が良くなく見づらくなっています(17〜19行目)。
長すぎる行は見やすさを考慮して、コンマや演算子の後で改行します。
ここでコーディングの心得が効いてきます。
コーディングの心得、5ヶ条「
見やすさを重視せよ
」
クラス名、メソッド名、変数名に意味が無い
ネーミングの良し悪しは、ソースコードの可読性に非常に大きな影響を及ぼします。
問題のソースコードではクラス名「CS」、変数名「bz」や「p」が、いったい何を表すのか分かりません(7行目、12行目、23行目)。
クラス名「CS」は「カメラショップ」の略で、変数名「p」が「価格」を意味するのであれば、下手に略したりせずにクラス名を「CameraShop」に、変数名を「price」としたほうが分かりやすくはないでしょうか?
ネーミングは大変難易度の高い作業です。
例えば、数値の「5」を「FIVE」と置き換えることはナンセンスです。その数値が消費税を表すのであれば、それは「TAX」などと命名されるべきです。ネーミングは読んで内容が理解できるように、その本質を表す言葉を選ぶことが大切です。
ここでコーディングの心得が効いてきます。
コーディングの心得、5ヶ条「
ネーミングは分かりやすく
」
次回は
今回はコーディングのポイントとして5つのレベルに分類し、その内の最初のレベル2についてまで説明しました。次回はレベル3から説明します。
前のページ
1
2
3
著者プロフィール
株式会社電通国際情報サービス 高安 厚思
株式会社電通国際情報サービス 開発技術センター
Java(J2EE)/オブジェクト指向の研究開発やプロジェクト支援、開発コンサルティングに従事。モデル、アーキテクチャ、プロセスが探求対象。今回は Javaコーディング規約2004の仕掛け人。
著者プロフィール
株式会社電通国際情報サービス 東田 健宏
株式会社電通国際情報サービス 開発技術センター
CTI、Webアプリの開発経験を経て、現在は主にプロジェクトマネジメント支援、プロセスエンジニアリング、ソフトウェア工学研究開発に従事。最近はコーチング、ファシリテーションといったヒューマン系スキルに興味を持ち日々修得に努めている。
著者プロフィール
株式会社 エー・ピー・アイ 森田 健
コードが単純になるには?見やすいコードを書くには?を日々模索しています。「コードがドキュメントだ」が、口癖な他称人間コンパイラ。
INDEX
第1回:良いコードとは、心得5ヶ条
はじめに
サンプルプログラム(カメラショップ)の例
レベル2:外部仕様を満たすが読みにくいプログラム