Comments
Description
Transcript
第1章.ソースコードの見た目を整えよう
第1章.ソースコードの見た目を整えよう 読 み や す い プ ロ グ ラ ム を 書 く に は 、 ま ず 、ソ ー ス コ ー ドの 見 た 目 を整 えて 、 き れ い に 書 く こ と が 大 切 で す。 手 書 き で文 章 を書 く とき の 動 作 に 例 え る と 、 「 丁 寧 な字 で 、 位 置 を まっ す ぐ 揃 え て 書 く 」 と い う感 覚 に 近 い です 。 こ の 章 では 、 ソ ー ス コ ー ドの 見 た 目 の 整 え 方 や 、 整 え る 上 で 気 を つ ける ポ イ ン ト に つ い て説 明 し ま す 。 1-1.インデント(字下げ)を行おう ソースコードの見 た目 で最 も重 要 なのがインデント(字 下 げ)です。 インデントとは、if や for など、波 括 弧 { } で作 られるブロック内 の各 行 を、1タブ分 (半 角 スペース 4 個 分 等 )下 げることです。 インデントを行 うことにより、プログラムの構 造 が把 握 しやすくなります。 逆 に、インデントがきちんと行 わ れていないソースは、どこからどこまでが分 岐 や繰 り返 しの範 囲 なのかが分 かりづらく、 プログラムの内 容 を解 析 するのが難 しくなります。 インデントが崩 れているソースコードは、読 みにくさのあまり、読 む気 を無 くしてしまうことさえあります。 ま た、そのようなプログラムは、プログラムロジックの品 質 まであやしく思 えてきてしまいます。 ブロックの構 造 もきちんと整 えられないプログラマに、まともな論 理 構 造 が組 み立 てられるとは到 底 思 えないからです。 プ ログラムを書 く際 は、必 ずインデントを行 うようにしましょう。 Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved. タブ or スペース ? インデントには、タブ文 字 を使 用 する方 法 と半 角 スペースを使 用 する方 法 があります。 インデントにタ ブ文 字 を使 うか半 角 スペースを使 うかは、各 プロジェクトで決 められていることもありますが、 プログラ ムを書 く人 の好 みだったりすることもあります。 まともなエディタであれば、タブキーを押 下 したときに半 角 スペース 4 個 分 等 に置 き換 えてインデントを 行 う機 能 を備 えています。 また、タブ文 字 を半 角 スペース何 個 分 の幅 でエディタ画 面 上 に表 示 するの かを指 定 することもできます。 よって、タブとスペースのどちらを使 用 してもコーディング作 業 に支 障 が あるというようなことは特 にありません。 ただし、半 角 スペースでインデントを行 っていると、 たまにソースを修 正 する際 に誤 ってスペース1文 字 分 だけずれてしまって微 妙 にインデントが崩 れてしまうことがあります。 通 常 は、タブ文 字 を使 用 した ほうが、インデントがきれいに整 った状 態 を保 ちやすいです。 一 般 的 には、インデントには半 角 スペー ス 4 個 分 の幅 のタブ文 字 を使 用 することが多 いようです。 1-2.空白(スペース)を入れよう 変 数 名 と演 算 子 の間 や、括 弧 やカンマの前 /後 には、適 宜 半 角 スペースを挿 入 し、それぞれが識 別 しや すくなるようにしましょう。 全 くスペースを入 れずに記 述 してしまうと、変 数 と演 算 子 等 の区 切 りが分 かりづ らくなり、読 みにくくなってしまいます。 以 下 に、スペースを挿 入 した記 述 例 を示 します。 Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved. ・代入演算子、算術演算子 i = num + 10; ^ ^ ^ ^ ・if 文、比較演算子 if (ret == 0) { ^ ^ ^ ^ ※「(」とその直後の文字の間には空白を入れない。 「)」とその直前の文字の間には空白を入れない。 ・for 文 for (expression1; expression2; expression3) { ^ ^ ^ for (int i = 0; i < arr.length; i++) { ^ ^ ^ ^ ・3 項演算子 absNum = (num >= 0) ? num : -num; ^ ^ ^ ^ ・キャスト演算子 ave = (double) sum / count; ^ ・配列、new 演算子 int[] arr = new int[10]; ^ ^ ^ ※ Java では、配列は型の後ろに[]が来る。 型と「[」の間には空白を入れない。 ・アクセス修飾子、フィールド private String message; ^ ^ ・コンストラクタ public HelloJava() { ^ message = "Hello, Java!"; } ※ コンストラクタ名と「(」の間には空白を入れない。 Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved. ・メソッドの呼び出し hj.print(name, age); ^ ※ ドット演算子の前後には空白を入れない。 メソッド名の後ろに続く「(」の前には空白を入れない。 1-3.空行を入れよう プログラムは色 々な処 理 が組 み合 わさって出 来 上 がりますが、プログラムが長 くなってくると処 理 の流 れ を 追 うのが大 変 になってきます。 このとき、まとまった処 理 ごとにソースコードに空 行 が挿 入 されていると、 空 行 から空 行 までのまとまった 処 理 をひとつの「かたまり」と認 識 して読 むことができ、 プログラムの流 れが追 いやすくなります。 逆 に、ソ ースコードに空 行 が全 く挿 入 されていない場 合 、 どこからどこまでをひとつの処 理 のまとまりと見 てよいの かが分 かりづらくなり、読 みにくくなります。 プログラムを記 述 する際 は、関 連 した処 理 のまとまりを意 識 して、適 宜 空 行 を挿 入 しましょう。 Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved. 1-4.波括弧 { } の記述位置を統一しよう Java では、波 括 弧 { } で関 数 /メソッドや if、for 文 などのブロックを作 りますが、波 括 弧 を記 述 する位 置 は コーディングのスタイルによりさまざまな種 類 があります。 基 本 的 に、どのスタイルを使 用 しても問 題 はありません。 しかし、ひとつのソースファイル内 で複 数 のスタ イルが混 在 していると、とても読 みにくいソースになってしまいます。 波 括 弧 の記 述 位 置 のスタイルは、一 貫 して同 じものを使 うようにしましょう。 Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved. Java で一 般 的 な、K&R スタイルでのソースコードの記 述 例 を以 下 に示 します。 1-5.波括弧 { } は省略せずに書こう Java では、if や for 文 などで処 理 が1文 の場 合 は、波 括 弧 を省 略 して記 述 することができます。 しかし、 処 理 が1文 の場 合 でも、波 括 弧 は省 略 せずに必 ず記 述 するようにしたほうがよいです。 波 括 弧 を省 略 すると、以 下 のような問 題 があります。 文 のインデントのみで処 理 部 分 を判 別 しなければならないため、やや明 確 さに欠 ける。 else-if 等 で複 数 の判 定 が存 在 する場 合 に、波 括 弧 のあるものとないものが混 ざっていると読 みにくくなる。 ループや判 定 のネストが深 くなると制 御 文 の対 応 関 係 が把 握 しづらくなる。 その周 辺 でバグがあった場 合 、「これは波 括 弧 がなくて本 当 に大 丈 夫 か?」「つけ忘 れではないか?」等 、括 弧 の有 無 による動 作 の違 いやコードの妥 当 性 をわざわざ検 証 しなければならなくなる。 プログラムの修 正 の際 に処 理 内 容 が複 数 文 必 要 になったとき、処 理 を追 加 すると同 時 に記 述 されていなかっ た波 括 弧 を付 け加 えないといけないため、少 し面 倒 。 if がネストしているときに else-if や else を記 述 する場 合 は、その else がどの if にかかっているかを 把 握 するためにひとつひとつの if の制 御 の範 囲 を確 認 する必 要 があり、煩 雑 。うっかり読 み誤 ると難 解 なバグ になる。 波 括 弧 を必 ず記 述 するようにした場 合 、若 干 行 数 が増 えてしまいますが、上 述 のような問 題 は解 消 されま す。 プログラムをより明 確 にし、余 計 な誤 解 を避 け、少 しでも安 全 にするため、波 括 弧 は省 略 せずに書 き ましょう。 Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved. 1-6.一行が長くなりすぎないようにしよう ソースコードの各 行 は、長 くなりすぎないようにしましょう。 行 が長 すぎると、エディタのウィンドウ幅 に収 まらず、横 スクロールバーを操 作 しなければならなくなります。 コード内 容 を確 認 するためにいちいちスクロールバーを操 作 するのは面 倒 です。 一 般 的 に、一 行 の長 さは 半 角 の 80~100 文 字 くらいまでに収 めるようにしたほうがよいです。 しかし、条 件 式 が複 合 条 件 になって if 文 が長 くなる場 合 など、行 がどうしても長 くなってしまうこともあり ます。 その場 合 は適 宜 改 行 を入 れて読 みやすくなるようにする必 要 があります。 Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved. 改 行 する場 合 はインデントしたほうがよいです。 後 続 の行 と明 確 に区 別 できるように2つ分 のインデント を行 うと読 みやすくなります。 Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved.