JJUC CCC 2017 SpringでJava8移行事例について登壇しました。

5/20に開催されたJJUG CCC 2017 SpringでJava8移行事例について登壇しました。

www.java-users.jp

www.slideshare.net

もうすぐJava SE 9がリリースされようかというのにJava 8の移行の話なのかよ、というのもあるのですが、逆にこの事例の話をするのはここがラストチャンス、ということで突っ込ませてもらいました。テーマ自体はJava SE 8への移行の話ですが、

  • Java SE 9がリリースされたとして、Java SE 8/7/6/5/さらにその前…と、それまでのバージョンの移行パスをスキップして最新のJavaランタイムに移行できるとも思えない
  • こまめにコードベースをメンテナンスすることの重要さ、エンジニアリングの組織にとって、最新の技術に追従することの重要さは、特定のJavaランタイムバージョンに関係ない話である
  • 大体Javaエコシステムの場合、Java SEのリリースサイクルと、ミドルウェアフレームワークの最新のJava SEをサポートしたバージョンのリリースサイクルの間には相当な時差があり、Java SE 9がリリースされても当分の間はJava SE 8を用いることに現実的にはなってくる

というわけで、色々皆様に参考になる事例の話が出来たと思っています。

講演の中で、移行プロセス中で、git-flowでのブランチごとに徐々にビルドに使用するJDKを切り替える話をしていたのですが、これをやるには、プロジェクト内でのブランチ管理の運用がしっかり確立されていること、CI(継続的インテグレーション)での各ビルドとGitのブランチの管理の関連付けが確立されていて、プロジェクト内で共有されていることなどが前提としてあります。この案件はオフショアも含めた複数チームで、同一コードベースを並行開発しているということもあり、どこのチームでも即できることではないことをこのチームではやっている、というのがあります。この開発チーム、コミュニティーの技術セッションで発表の題材になることをしれっとやってのけるので、事例紹介のストーリーの組み立てに苦労するというのが私の密かな悩みです(笑)

最後になりますが、講演の機会をいただいたJJUG幹事のみなさん、スタッフの皆さん、当日JJUG CCCに来場いただいた大勢の皆さん、ありがとうございました!