lombok を採用した結果wwwwwww

冗長なコードがだいぶ減った。
その分ロジックが増え、コードの「濃度」が上がった。


まず、lombok を知らない人はコチラ:Java のコード量を激減できる lombok がスゴイ


自分が携わるプロジェクトは、テストコード抜きでおよそ 6 万行程度のコードが存在する。
lombok を採用した結果、およそ5000 行もの冗長なコードを削除することができた。


これは絶大なる効果だろう。同じ機能を有しながら、8% 程度もコードが減ったことは、驚異的である。


しかも lombok の機能を全て採用したわけではなく、かなり安全側に倒して使用した。例えば @Data が使える場面であっても、元のコードに equals/hashCode が存在していないクラスについては @Getter, @Setter を付与するだけにした。equals/hashCode が生成されると挙動が変わる可能性があるからである。他にも、型推論してくれる val は Java の構文から逸脱するので用いていない。@Cleanup も便利そうであるが、Java7 の try-with-resources で事足りたので、特に必要になる場面はなかった。

導入時も特にトラブル無くスムーズに導入することができた。最初は少しトラブルが出ることも想定していたが、lombok プラグインの出来が良かったので EclipseIntelliJ が混在するプロジェクトでも実にスムーズな導入であった。


導入してしばらく経ったが、感想としては、「快適」の一言に尽きる。

不要なコードを見なくても済むので、見つけたいロジックを発見できるまでの時間が短くなる。IDE が出すメソッド一覧でも当然候補に出てくるし、本当にコードが見た目上存在しないだけなのである。
呼び出し階層機能を使う時もデバッガで止める時も問題は発生しない。例えば、デバッガでステップ実行して自動生成された getter 内に入ると、@Getter の部分が処理している行としてハイライトされる。


lombok、工数を減らせる類のものではないけど、少しずつ、じわじわと着実に効いてきます。
冗長なコードをざくっと減らすことができる、大変優れたツール。

きしださんも言っているように、特に理由(過去とのしがらみ等)が無いなら採用すべきでしょう。


ドススメです。