Java8でプロジェクトをやっていて後悔していることを5点挙げます。 上から後悔している順です。
null
を返すな、Optional
を使え
文字通りなんですが、null
が絡むと何が返ってくるのか分からない状態になるのでOptional
使った方がいいです。
特にnull
を返しがちなものをUtilにしてしまったのは深い後悔が有ります。
var
/ val
は使った方がよい
lombok
のvar
/ val
を想定しています。
lombok
に依存してしまうというのはそうなんですが、省力化や可読性の高さよる開発効率の向上を考えれば、最初に開発するときはvar
/ val
を使った方が結果としてマシなコードになりやすいと考えています。
(もっと言うならKotlinなどオルトJavaのがプロダクトは綺麗になるなとは思いますが、障壁の厚さも、、、)
オブジェクト名は冗長なぐらいの命名にした方がよい
後からオブジェクトが増えたとき、一体どんな役割を持っているか本当に分からなくなったので、冗長に感じてももっと具体的な命名をすればよかったです。
Lintはチェックルールよりコーディング規約を変更すべきだった
Lint関連の修正はお願いするのも実行するのも手間だったので、ツール側に全部合わせた方が楽でした。
その辺が負担になると機械の奴隷感が出てくるので、何かしらのデフォルトを使った方がいいんじゃないかと思っています。
引数に取るならList
よりCollection
List
にしてて困ることが少ないのはそうなんですが、Set
を入れたいときに困ったりするんですよね。
Collection
を引数に取って困ることはあまり無いと思うので、やっておくとスマートになったかなと思います。