skillup

技術ブログ

Java

Javaでのコーディングで気を付けること

投稿日:

会社でSoftWareDesignを定期購読しており、Javaのコーディングで気をつけることなどがあったので、ちょっとチェック。

以前も似たようなエントリーは書いたことがあったのだけど、再確認。メモ書きです。

良いコードとは

  • 良いコード=保守性が高いコード
  • 何を言っているのか理解しやすい
  • 不具合を発見しやすい

個人的には修正に強い、バグの影響を最小限にしやすいのような意味だとも思ってます。

具体的なテクニック

変数の初期化と変数のスコープの最小化

不要な初期化をさけること。String str =””などとしない。スコープはなるべく最小限にすることと、変数の宣言、代入はなるべく近い距離で行う。

メソッドは短く(目安として20~30行に)

長いメソッドは何を言っているかがわからず、処理を理解するのに非常に労力を使う。処理の塊ごとに区切ること。目安は20~30行。

finalを検討する

変数の変更は少なければ少ないほど良い。値が変わらなければその変数をおう労力を少なくできる。finalをつけることで変更がないことを宣言できる。そうでなくても変数の変更はなるべく行わないようにすべき。

ラムダ式のすすめ

Javaのみだが、複雑な処理を簡潔に書くことができる、配列関連で有効なメソッドがあり、非常に有用。

Optional

nullがあるものに関してはOptional。そうでないものは通常の型(Stringなど)で返せば、通常の型の時にいちいちnullチェックをする必要がなくなる。OptionalのときはisPresentなどのメソッドを使えばよい。

enumを使おう

定数的な値に意味のない値(SUNDAY =1など)を避けることができ、保守性を向上させることができる。

-Java
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

Javaでの文字コード判定、変換

Javaにて文字コード判定の処理を書きます。 Contents1 通常の文字コードの判定、変換2 ファイルの文字コード判定、変換2.1 juniversalchardet2.1.1 ダウンロード2.1 …

no image

BeanUtilsについて

以前このエントリーでも紹介しましたが、BeanUtils、思った以上に使い方が幅広いです。 Contents1 クラスからクラスに2 マップからクラスに3 クラスからマップ4 特定の値の取り出し5 リ …

no image

jenkinsのオートデプロイ

久々にJavaやりました。 Contents1 やりたいこと2 ハマりポイント2.1 Antでのjobの設定2.2 jenkinsでビルドできない2.3 jenkinsのオートデプロイ2.4 SSHで …

no image

ガベージコレクタに関して

本日はガベージコレクタに関して。 Contents1 ガベージコレクタとは?1.1 1 nullを代入1.2 2 参照変数を他のオブジェクトに割り当てる1.3 finalize()メソッドの定義 ガベ …

no image

配列の初期化&代入+Mapから別Map作成

最近、業務ではコードの量が肥大化し、とにかく短く書くことを心がけてます。 まあ、短ければいいってもんでもないんですが・・・ Listにクラスを使いするときに↓みたいな書き方を紹介したんですが、 [cr …

アーカイブ