LoginSignup
1
2

More than 3 years have passed since last update.

【Java】指摘しないこともあるけど出来ればリファクタリングしてほしいこと【好みの問題】

Last updated at Posted at 2019-06-09

はじめに

この記事は【Java】ソースレビューを依頼する前にセルフチェックできること【初心者】のおまけになります。
個人的な好みもあるので、ソースレビューでは指摘したりしなかったりします。

個人的に好きじゃないから指摘しちゃうもの

拡張for文はList専用ではありません。

配列でも使えますし、逆にListでも普通のfor文使えます。
indexの値を必要としないなら、全て拡張for文でOKなくらいです。

// 配列を拡張for文で回す例
String[] strArray = new String[5];
for (String str : strArray) {
  System.out.println(str)
}

// Listを普通のfor文で回す例
List<String> strList = new ArrayList<String>();
for ( int i = 0 ; i < strList.size() ; i++) {
  System.out.println(strList.get(i))
}

よければ、こちらも参考にしてください。
:link: 【Java】今さらだけど拡張for文はList専用じゃないよ?

メソッドの戻り値はそのままreturnできませんか?

例えば、以下のようなソースコードは、変数String strに取り出さなくても、そのままreturnできます。

String str = hogehogeClass.fugafugaMethod(condition);
return str;

特に何もせず、素直にreturnするだけであれば、いちいち変数に取り出さずに真っ直ぐreturnしてOKです。

return hogehogeClass.fugafugaMethod(condition);

メソッド名・変数名は長すぎませんか?

getterが連続するとき

DBから取得した値などは、オブジェクト構造の関係で、getter呼び出しが長くなることもあります。

// 例)
hogehogeObject.gethogeList().get(0).getfugafuga();

これくらいだったらかわいいですが、実際の現場ではhogehoge部分はもっと長くなることもあります。
読み辛いだけなので、適当な短い名前の変数に入れてください:dizzy_face:
何回も使うような場合は特に!

おことわり

「こんなオブジェクト設計が間違ってる!」とか「イケてない:anger:」とか、思うことがあるプログラマは多いと思います。
が、数年以上続いてる案件だとツギハギだらけでこんな設計になってしまった
悲しいソースにも出会います・・・:cry:

クラス名そのままの変数

クラス名をそのまま変数名としている場合が多いですが。

// 例)
HogeHogeDataReq hogeHogeDataReq;

明らかに判別可能な場合は、クラス名をそのまま変数名にしなくてよいです。上記の例だと、reqとかでOKです。

その英語合ってますか?

例えば、「取引」という日本語を英訳サイトなどで検索すると、パパッと見ただけでも、これだけ引っかかります 1

英単語 日本語の意味
deal 取り決め、契約
dicker (政治的な)駆け引き
trading 貿易、通商

いま使いたい「取引」は、どの「取引」でしょうか?
ECサイトなのに「dicker」は、まずナシですよね。

その略し方、合ってますか?

日本語にもある程度略し方があるように、英語にも略し方があります。
正しく略せば、プログラムの中の変数は自然と統一されてくると思います。

手前味噌ですが、英単語の省略の仕方に自信がない方はこちらを参考にどうぞ。
:link: 【変数】英単語の略し方や省略形を検索する【命名】

おわりに

好みの問題もありますが、誰が読んでもイライラ:angry:しないソースを書きたいですね。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2