|
||||||||||||||||||||||||||
| 前のページ 1 2 3 4 | ||||||||||||||||||||||||||
| if文とelse文の繰り返しやswitch文の利用はなるべく避け、オブジェクト指向の手法を利用する(C_CTR010) | ||||||||||||||||||||||||||
|
ifやelse文の繰り返しやswitch文の利用はなるべく避けてください。switchやifかelse文が何度も繰り返されているコードは可読性が低下し、メンテナンス性の低下につながります。 例えば状態遷移をif文かelse文で実装すると、仕様変更により新しい遷移が追加された場合に徐々にネストが増加していきます。ネストが深くなると、それだけ可読性が低下します。 度重なる仕様変更により分岐が頻繁に追加されるような場合の時は、ポリモフィズムやデザインパターンなどの利用を検討してください。 なお、この規約はJava特有のものではありません。 |
||||||||||||||||||||||||||
| 繰り返し処理の内部でtryブロックを利用しない(例外あり)(C_CTR011) | ||||||||||||||||||||||||||
|
ループの中にtryやcatchブロックはできるだけ置かないでください。これは、パフォーマンスの低下につながり、ループ内の処理も見づらくなります。 特に理由がない場合はループの外でtryかcatchを行ってください。ただしループ内で例外をキャッチした場合に、適宜例外処理をしてループ処理を最後まで実行したい場合はこの限りではありません。 ループ処理を最後まで実行したい場合の例 |
||||||||||||||||||||||||||
// ループ内部にtryやcatch ブロック
|
||||||||||||||||||||||||||
|
なお、この規約はJava特有ものになります。 |
||||||||||||||||||||||||||
| まとめ | ||||||||||||||||||||||||||
|
今回は、制御構造に関するコーディング規約を紹介してきました。はじめにでもお伝えしたとおり規約には表1の2つがありました。
表1:制御構造に関する規約の分類(再掲) 今回は、前者についてはオブジェクトの生成やtry-catch文にかかわる部分の制御構造などを例として取りあげ、後者についてはforとwhile文、ifとelse文などを例として取りあげました。 今回説明した規約を守ることによって、表4にあげる効果が期待できることが理解頂けたのではないでしょうか。
表4:今回の規約を守る利点 しかし単純にコーディング規約をすべて採用することが良いかどうかは、ケースバイケースです。設計の方針やプロジェクトの方針によって、コーディング規約を適宜取捨選択していくことが大切です。 表4にあげた4点の効果を最大限に享受できるよう、今回説明した規約を取捨選択して頂ければと思います。 |
||||||||||||||||||||||||||
|
前のページ 1 2 3 4 |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||


