好きなところ嫌いなところ(Java界隈編)
個人の見解です。
Java
基本的には言語仕様とOracleJavaをターゲット
好きなところ
- 静的型付けなのでスキルセットのよくわからないメンバーで大量生産する際にコーディングをコントロールしやすい。
- フレームワークの成熟度が高いモノがおおい。
- 実行環境がシンプルで、運用が楽。
- 歴史がある=ノウハウ、ライブラリ、プラクティス、ナレッジ、ツール、開発者がいっぱい
嫌いなところ
- やたらInterfaceつくる、つくりたがる
- setter、getter
- JavaEEは仕様が重すぎる
- コード記述が冗長になりがち(最近はそうでもなくなってきつつあるが)
- オブジェクト指向言語にあと一歩な感じ(プリミティブ、NULLの許容)
- クラス数が多くなりがち→コンパイル、ビルドがおそい。
- GCがらみのパフォーマンス問題。地道に調べるしかないけど。大体実装が悪いことがおおいけど
- 手軽さがイマイチ。スクリプト言語ぐらいの勢いでささっと使えることもできれば。groovy使えばいいんだろうけど
- DIいるかな?
Spring Framework
好きなところ
- 設定要素が(だいぶ)減ってきた。Config Less、XML Less
- 大きな組織が面倒見てる
- 一応まだ開発が活発
嫌いなところ
- サブプロジェクトが多すぎる。Mavenの依存関係がたまにわからなくなる
- ロガーがjava.utilの実装。替えられるけど、一手間必要。
- JavaEEの仕様と独自の仕様がまぜこぜ
- (Webアプリケーションに対して)フルスペックじゃない(ORM、MVC2などIoC以外は弱いかサードパティーになっちゃう)。
Tomcat
好きなところ
- シェアおおい
- (僕の感覚で)ミニマム。
- コンテナをjarファイルに埋め込みできる
嫌いなところ
- Cookieが使えない場合、JSESSIONIDをURLにつけるとこ(Tomcatだけが悪いんじゃないけど)
- セキュリティバグ多い(他のが少ないというわけではない)
- コンソールログがcatalina.outへ垂れ流しなところ
JBoss
好きなところ
- 起動がだいぶ早くなった
- EEの仕様を満たしているので、EEのFullProfileのサービスが使える(あんまり使うことはないけど)。
嫌いなところ
- WebコンテナのServletの実装がいけてない。リクエストパラメータのKEYがなければ、エラーになっちゃう
- 設定めんどくさい。特にmoduleあたり。デプロイモジュールにないjarが優先されるケースがある
- IDEとの統合ツールが重厚