JJUG CCC 2016 Fall に行ってきた

JJUG CCC 2016 Fall に行ってきました。簡単に所感をまとめます。

[CCC2016Fall]Be a great engineer! #jjug_ccc #ccc_a1 - Speaker Deck

  • 「こんなセッションを聞きに来てる時点でダメ」とのこと
  • 技術の本質を考える
  • 適材適所で使い分ける
  • 技術には必ずニーズが伴う (解決したい課題はなにか)
  • 技術的に優れていてもそれが正解とは限らない

他所のとある現場で、流行りの技術を使おうとして半ば強引に某フレームワークを採用しているんじゃないかと思えるようなケースを見たことがあります。そのシステムでそのフレームワークを使う必要があるのかと疑問ではありましたが、自分の考えにイマイチ自信を持つことができませんでした。
そういう意味で、このセッションの話を聴いて自分の考えは概ね間違ってないなと思えた気がします。いきなり「こんなセッションを聞きに来てる時点でダメ」とか言われてお茶吹きそうになりましたが、いい話が聴けてよかったです。

SpringはどうやってDIしているのか? #jjug_ccc - Speaker Deck

とにかくひとが多くて、改めて Spring の勢いを感じました。Spring のコードリーディングの話はたまに聴くけど、毎回勉強せねばって思う...。

メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −

  • 回答 -> PR -> レビュー のサイクル
  • 教える側も本質を正しく理解していないといけない
  • アンチパターンには名前をつけるとよい
  • 「あなたが書いたコードはコピペであってもあなたのもの」
    • 自分がコードを書くところは自分の責任

Oracle のベンダー資格あたりも入門として使えそうな気がするけど、Java 100本ノックはより実践的な内容っぽいし、レビューし易いというのがメリットな気がします。

どうしようJUnit5 - Speaker Deck

  • この日、最も聴きたかったセッション
  • JUnit4 と JUnit5 の互換性はない (別のフレームワーク)
  • 基本的な機能は名前やパッケージが変わった程度
  • assertThat がなくなった (hamcrest を入れれば使える)
  • @Enclosed -> @Nested
    • @BeforeEach を使えばネストクラス間で初期化処理を共通化できそう
  • @DisplayName でテストに名前を付けることができる
    • メソッド名を日本語で書いてた日々に別れを告げる...

既存のテストを JUnit4 から移行する必要はなく、JUnit5 の正式リリース以降、新しくテストを書く場合に採用する感じでよさそう。
あと、テストメソッドの実行順序を制御する機能(@FixMethodOrder)があることを初めて知りました...。というか、実行順序を制御しないといけないケースに遭遇したことがないし、そもそも実行順序に依存するのはユニットテストとして NG だと思ってました。が、JUnit をシナリオテストで使うケースがあるんですね、なるほど。
現時点で自分のやりたいことは JUnit4 + JMockit でひと通りはできていて、JUnit5 ならそれがもう少し簡潔にできるのかなという印象。ただ、ぶっちゃけ Runner とか Rule とか Parameterized とか Theory とか JUnit の機能をまだ全然使いこなせていないのでもっと勉強が必要です...。

JPA と DDD の関係で僕が思っていること - Qiita

その他

CCCは7回目の参加になりますが、昔に比べて参加者が格段に増えて規模も大きくなりました。その分、セッション数も増えてどれを聴こうか迷います。あと、マスクがノベルティとして配布されてたけど、大人数が集まる場ではとてもよいですね。ありがたや。

その他の資料 (把握してる分のみ)

(2016/12/06 追記) ここに資料まとまってた。

github.com