Opt Technologies Magazine

オプトテクノロジーズ 公式Webマガジン

イベントレポート「市ヶ谷Geek★Night#17 ScalaMatsuri補完計画 〜追加枠をきみに〜 [ScalaMatsuri非公式]」

f:id:opttechnologies2015:20180411154225p:plain

2018/04/03 (火)に市ヶ谷のオプトカフェで開催された『市ヶ谷Geek★Night #17 ScalaMatsuri補完計画 〜追加枠をきみに〜 [ScalaMatsuri非公式]』のレポートです。

あいさつ

こんにちは!オプトテクノロジーズエンジニアの内堀です。オプトでは主にScalaを使って開発しています。

直近ではAkka-Httpを使った開発をしていますが、Akkaも触っていきたいです!

市ヶ谷Geek★Nightとは

オプトではエンジニア向けイベントとして「市ヶ谷Geek★Night」を定期的に開催しています。 おもしろくてタメになるイベントを目指し、エンジニア中心に運用されているイベントです。

過去開催回はこちらになります。

ichigayageek.connpass.com

#17 ScalaMatsuri補完計画 〜追加枠をきみに〜 [ScalaMatsuri非公式] について

ichigayageek.connpass.com

先日開催されましたScalaMatsuri2018のCFPに惜しくも選外となったセッションを中心に構成され、Scalaの話題もりだくさんなイベントとなりました。

f:id:opttechnologies2015:20180411155524j:plain

セッション

株式会社オプト 渋谷充宏 「Scalaによるtype-safeなCloudFormation DSL」

qiita.com

Scalaを用いて現在開発中の、CloudFormationをtype-safeに書けるDSLについての発表でした。

AWSリソースをコード管理できるCloudFormationですが、大規模な構成をJSONやYAMLだけで書いて行くのは辛いというモチベーションから開発されたそうです。 静的な型チェックにより安全にインフラ変更を行えるほか、コードの大半をAWSの仕様から自動生成できCloudFormationの更新にも追従しやすいという特徴も大変興味深かったです。

f:id:opttechnologies2015:20180411224315j:plain

株式会社メディロム しんぺい@猫型技研 様 「Building native apps with Scala.js」

speakerdeck.com

Scala.jsを用いたネイティブアプリ開発についての発表でした。

UIに近い部分はJavaScriptをそのまま使うことでScalaでのネイティブアプリ開発も実現可能であることをお話していただきました。 Scalaではバックエンド側の開発しかしたことのない私にとっては新鮮な発表でした。

f:id:opttechnologies2015:20180411161822j:plain

ノースカロライナ州立大学 @mogproject 様 「フロントエンド初心者の大学生が Scala.js で Web アプリを作ってみた話」 (リモート登壇)

www.slideshare.net

Scala.jsを使用した将棋webアプリ開発についての発表でした。

独自の将棋フォーマットを開発し、将棋の情報を全てクエリ・パラメータに含ませる完全サーバレスな設計をされていました。 ベンチマークをJVM/JSそれぞれで計測していたり、コマの動かせる範囲をビット演算により最適化することでパフォーマンス改善を行なっており、実用まで意識していることを強く感じられました。

f:id:opttechnologies2015:20180411155727j:plain

リチャード伊真岡 様 「akkaによるスレッドの使い方」

speakerdeck.com

Akkaが内部で行なっているスレッドの使い方についての発表でした。

普段意識することの少ないAkka内部の動きを150枚を超えるスライドと動きのある図でご紹介いただきました。 パフォーマンスが良いのでForkもJoinもしないForkJoinTaskを使用しているというお話など、コードや論文を引用してわかりやすく解説してくださり大変勉強になりました。

f:id:opttechnologies2015:20180411161743j:plain

株式会社ブレインパッド 渥美達也 様 「実践 Play2+kubernetes」

docs.google.com

Kubernetesを使用したPlay2アプリケーション管理についての発表でした。

ビルドからコンテナ作成までをsbtで完結させる方法や、Play2のコンフィギュレーション・ロギング周りの設定についてもご紹介頂きました。 Kubernetesについてのご紹介もあり、Kubernetesを知らない方に対してもイメージしやすい内容だったのではないでしょうか。

f:id:opttechnologies2015:20180411155827j:plain

株式会社セプテーニ・オリジナル 下村朋之 様 「compile time DIのススメ」

speakerdeck.com

Compile Time DIであるMacWireについての発表でした。

Runtime DIのGuiceとCompile Time DIのMacWireについて、具体的なコード例を交えてメリット・デメリットをご紹介頂きました。 コンパイル時間が伸びるデメリットはありますが、コンパイル時に依存関係を検証できたりシンプルな使い方ができる点はとても魅力的に感じました。

f:id:opttechnologies2015:20180411224355j:plain

kyo_ago 様 「ScalaJS in Production / ScalaJS for TypeScripter」

Scala.jsを採用する際のモチベーションや具体的なハマりどころについての発表でした。

JavaScriptのundefinedがScalaのOptionでNoneにならないという注意点をはじめとする実務を行う上で出てくる問題やそれに対する技術選択など、現場の空気が感じられる発表だったと思います。 実際にScala.jsを採用しようか検討している方にとって、参考となるお話が多かったのではないでしょうか。

f:id:opttechnologies2015:20180411161659j:plain

まとめ

今回は ScalaMatsuri補完計画の名の通り、Scalaに関する話題が豊富なイベントとなりました。中でもScala.jsの話題が多く、フロントエンドやネイティブアプリの領域でもScalaが活躍できる可能性を感じられました。

今回Twitterでは#ichigayageekがトレンド入りした瞬間もあり、当イベントも盛況のうちに終えることが出来ました。登壇者ならびに参加者の皆様、どうもありがとうございました。

また、6/26(火)に、市ヶ谷オフィスにて「市ヶ谷Geek★Night #18 フロントエンド、マジ卍」と題しまして、フロントエンドを代表するライブラリ/フレームワークに関するイベントを開催します!

ichigayageek.connpass.com

こちらのイベントにも是非ご参加ください。


株式会社オプトでは、エンジニアを随時募集しています。エントリーはこちらから。

※カジュアル面談ご希望の方は、補足欄に「カジュアル面談希望」とご記載ください。