Javaは面倒くさくて取っ付きにくい? しかしとてもいいものだ。『Javaの基礎』社内勉強会レポート

Javaは面倒くさくて取っ付きにくい? しかしとてもいいものだ。『Javaの基礎』社内勉強会レポート

今日は先日行われた社内勉強会のレポートを。
毎月定期的に社内勉強会を行っているSekappy。先日は『Javaの基礎』というテーマで開催されました。発表者はエンジニア歴1年目にしてOracle社の認定資格『Java SE8 Gold』を取得した見留広海さん。TOEICも900点以上、MTGの動画投稿もしていてレガシーも強い、いろいろとスーパーなお方です。
前述のとおり動画投稿もされている見留さん、テキストでお伝えするのが難しいのですが、発表の端々にユーモアがほとばしっていました。笑 初っ端から、Java Goldを取得しながらも「正直取っ付きにくくて面倒くさい。」とバサッと語るあたり、なかなかエッジの利いた発表を予感させてくれます。
発表のお品書きは、Javaに詳しくないエンジニア向けの導入からスタートしてJava8からの新機能の紹介まで触れていくフルコース。お約束のハローワールドからJavaの基本的な要素をチェックしてから、オブジェクト指向の要点であるクラスの使い方を見ていきます。ここでは「灰色熊クラス」の作り方を例に、名前を付けたり巨大化でP/Tを操作することでクラスの操作を解説してくれました。
カプセル化や public / protected / private の解説をはさんで、お次はインターフェイスについて。ここでは「配管工インターフェイス」を用いて「マリオクラス」を実装していく例をもとに説明していきます。
ここまででひとまずJavaらしいことは一通りできるとのこと。そしてここからは複雑なクラス設計の例を、見留さん作成のチャンドラとジェイスの解説をもとに見ていきます。忠誠度を増減させて能力を使ったりダメージを与え合うようなところまで作りこんでこられた模様。
ダメージを受けるものの振る舞いを定めたMortalインターフェイスとプレインズウォーカーらしい振る舞いを定めたPlaneswalkerSparkインターフェイスを用意して、ここからPlaneswalkerクラスを作っていきます。忠誠度能力を実装する際には、対象が不適正だった時の処理を例に、例外処理のtry/catchもチェック。
これらをもとにChandraHavingTorchが出来上がりました! マナを出したり、4点ダメージを飛ばしたり、簡易的な奥義も用意されていますね! さらに用意したジェイスとの掛け合いで、それぞれの忠誠度能力が正しく対象を取れているかや対象不適正な場合の処理の設定なども確認していきます。
さらにここからはJava8で追加されたラムダ式やStream APIを見ていきます。ラムダ式は普段変数として扱えない関数を変数のように扱える書き方のことで、これにより記述を簡潔にできるとのことです。確かに元が冗長な記述もスッキリした見た目になっています。
続いて、Stream APIの説明に。高度な処理をわかりやすいコードで記述できるとのことで、こちらもコードの見た目がスッキリしていますね。
Javaの基礎からJava8の新機能まで一気に駆け抜けたところで見留さんの発表が終了。Sekappyにはいろいろな言語を扱うエンジニアがいますが、JavaエンジニアにもJava以外のエンジニアにも興味深い内容だったようです。そしてなにより見留さんの熱量とユーモアが伝わってくる会でした!(あとからお聞きしたところ発表スライド数は120枚とのこと!)
この場を借りて、見留さん、参加者の皆さん、お疲れ様でした! Javaの世界を入口から前線まで触れることができて、参加者の皆さんにとっても学びの多い回だったのではないでしょうか。Sekappyでは今後も”マジック”の力だけではなく、”IT”の力もどんどん蓄えていきますよ!