JJUG-CCC-2014-Fall
JJUG -CCC-2014-Fall に参加してきました。
といっても、自分はJavaを触っておらず、専門的な内容はわからないので、数あるセッションは別の切り口で以下を選びました。
アプリケーション層の統合テスト
単体テストの次、総合テストの前に実施するテスト。結合テストと同じ位置付けだが、テスト範囲を、モデルなどのつながりを広くカバーし、ただし機能部分は狭くすること、ハッピーパスのみを行うというところが違うところ。機能に着目するのではなく、振る舞いを確認する事で、プロダクションコードの変更によるテストコードの破壊が起きないようにすることが大切。
日本語プログラミング
シンタックス部分が日本語で書ける言語の話かと思ったが、変数名に日本語を使う方がコードを読みやすいよねって話でした。
テストサイズに合わせたテスト環境の構築
テストピラミッドを考えた時どうしてもアイスクリームコーンになるが、テストサイズに合わせ、その比率になるように進めた。気になったのは、このテストサイズの考え方はGoogleが採用しているものだが、これってCtoCや、スタートアップ、エンタープライズと様々なサービスに適用できるものなのだろうか?ついつい、Googleがやっているから真似したくなるけど、サービス内容が全然違っても大丈夫なのだろうか?
テストが正しいかテストする MutationTest
テストコードを書くのが当たり前になったら次に考えるのはこれだと思う。実際のところ、テストコード書いてます!というところでも、そのテストの品質がどうなっているかを話しているところはあまり聞かない。出てきてもC0, C1 C2 CMM といったカバレッジ率ぐらい。
このテスト手法はバイトコードをテストツールが書き換えてテストコードがエラーをちゃんと検出するかをテストする。
最初、このためにプロダクションコードの意図的にエラーを埋め込むのかと思ってドキドキした。
プロダクトが変わればテストも変わる
ここでもテストサイズの話が出てきた。流行ってるのかな?
オブジェクト指向プログラミングの教え方と学び方
新人研修でオブジェクト指向プログラミングを教える時どうして進めれば良いかのノウハウを話されてました。どの会社でもオンボーディングはやった方がいいのはわかっているけど、ほとんどがOJTという名前で基礎を教えず実務に投入しがち。これはこれで間違いではなく、動くものをまず見せるそれから意味を理解させると、ちゃんとフォローができればの話だが。
借りてきた抽象的な言葉ではなく、ちゃんと目的から話し、投げっぱなしにしないで 20分話したら10分手を動かすといった教育についてはどんな現場でも心がけなければならない内容でした。このセッションも途中で飽きないように、ちょくちょくCMを入れてました。
map関数の内部実装から探るJVM言語のコレクション: Scala, Kotlin, Clojureコレクションの基本的な設計を理解しよう
Javaの勉強会でありながら、 Scala, Kotlin, Clojureという別言語のmap関数の内部構造を話すというなかなか楽しいセッション。そして公聴者も立ち見が出るほどの人気ぶり。言語の出自によって実装とその指向が異なっているのが面白かった。
その他
・Java界隈の人たちが集まる会だからか、参加されている方の年齢層が幅広いのがちょっと驚いた。
・どのような開発をしている人たちが来ているのか比率が気になる。
・こうしたユーザーイベントに参加する人は割と顔馴染みになったりするので、かなり内輪でワイワイするところも多く見られ、アットホームな感じだった。
・講演の資料はどこかで公開されているのだろうか?
・セッションの数に驚いた。どんなものでもはやりが合ったりしてトークテーマが被ったりするものだけど、今年はなんだったのだろう。
・オフラインのみで開催。遠方だったりするとオンラインも欲しくなるが、オフラインだと人がそこにいるという意味で温度感などが感じられて楽しいのも事実。
たくさんの参加者とたくさんの登壇者、そしてそれを支えるボランティアのスタッフの皆さんで盛り上げられた、とても刺激を受けるコミュニティーイベントでした。