Scala関西 Summit 2019で登壇しました!

マーベリック株式会社技術広報のリチャード 伊真岡です。

Scala関西 Summit 2019に参加してきました。2日間に渡って行われたこのカンファレンスですが、1日目の感想をブログにまとめます。公式Webサイトにあるように2トラックあった中で私は一日中ずっとトラック1の発表を聞き続けました。

2019.scala-kansai.org

トラック1ではClean Architectureに関連した発表が5本中3本ありました。弊社ではClean Architecture本やエリック・エヴァンズのドメイン駆動設計本の読書会を行っている最中ですので、実践をしている開発者たちからの知見がえられるのは嬉しかったです。

Dependent method types を利用した軽量Clean Architecture の紹介

最初のトークはがくぞさん。(スライド)

難しい抽象化の概念と捉えられがちなモナドにたよることなく、Tagless FinalやFree Monadなどで実現される利点をDependent method typeによって得ようという発表でした。

Scalaは高度な抽象化ができるからといって、モナドという理解のハードルが高いと思われがちな概念を取り入れるより、Javaに馴染みの深いエンジニアにもその延長線で理解できる技術を使うのはメリットがありそうです。

ソースコード全体に関わるかつ短期では変更しづらい方針なので、Tagless Finalを採用するかFree Monadにするか、Dependent method typeかは開発リーダーの腕が問われそうです。技術の取り入れやすさ、教育のしやすさ、メンテナンスコストなど様々なことを年単位で見通すという難しい判断になるでしょう。

Java 5.0時代の非同期処理技術から学び直すScala/Java非同期処理

次は私の発表。(スライド)

非同期処理はある程度時間をとって学ばないと何がなんだかわからない分野なので、いったんJava 5.0の時代までもどって、そこから現代の技術までたどると大きな流れが見えます。それが非同期処理理解の助けになりそうです、という発表でした。

Chatworkでリアクション機能をリリースした話

勝野さんの発表。(スライド)

Chatworkのリアクション機能楽しいですよね!今回はリアクション機能開発で行われていた性能要件分析とそれをもとにした技術選定、さらにベンチマーキングを行って詳細を検討する話でした。

特にベンチマーキングを行って「やってみないとわからないつまづき」(ベンチマーク環境でのAWSネットワーク構成の影響など)をひとつずつ潰して解決策を発見していく過程は、実践した人にしか提供できない価値ある情報だと思いました。

大きなシステムの改変を性能要件を見極めながら設計・開発していくのは非常に難しい一方楽しそうな仕事ですね。わたしもいつかそういう仕事をやってみたいと思える発表でした。

資産運用スタートアップの開発で採用した、PlayによるClean Arcitectureでの設計・開発事例

株式会社クラウドポートの若松さん(スライド)。資産運用サービスをたった3人のエンジニアで開発しているということにおどろいたのですが、少人数で効率良い開発を行うためにClean Architectureをどう活かしているかという発表でした。

Clean Architecture本に書いてあるようなメリットをうまく生かして少人数での開発を効率化している様子が伺える発表でした。

金融サービスの実装が複雑というのはそのとおりで、私が証券会社にいたときも感じていました。関連する規制・法律や業界慣習などが多岐にわたり複雑というのが一つの理由ですが、後のFolioさんの発表でも言及されますが金融関連のサービスは複雑になりがちです。

FOLIO のマイクロサービス in Action

最後はFolioのむらみんさんの発表(スライド)。むらみんさんの発表はスライドがきれいで発表慣れもしているのか話し方がわかりやすいです。

こちらもClean Architectureを絡めた話。Clean Architectureを使って層の分離をたもつことで、DDDの知識の蒸留のサイクルを回し続けるといった内容の前半と、マイクロサービス構成をFolioではどのように実現しているかという内容の後半に分かれていました。

Folio流の実践は工夫がたくさんあり、また発表からその工夫によって改善のサイクルがうまくまわっていることがうかがえる素敵な発表でした。

2日目はアンカンファレンスでした。アンカンファレンスの内容はこちらのブログには載せませんがツイッターのハッシュタグ #scala_ksでアンカンファレンスを含むScala 関西 Summitの様子がわかると思います。

楽しいカンファレンスでした!!