FLINTERS Engineer's Blog

FLINTERSのエンジニアによる技術ブログ

Scala関西Summit2018へ参加してきました!

こんにちわ、Scalaが好きな堀越( @tkt_hoorie )です。

ということでプログラミング言語Scalaの関西最大級カンファレンスイベント
Scala関西Summit2018 へ参加してきました。

2018.scala-kansai.org

f:id:t_horikoshi:20181114202958j:plain

こちらは会場の天満研修センター。

弊社からの参加者

f:id:t_horikoshi:20181114201724j:plain

冒頭から打ち上がっていて恐縮ですが、
弊社からはわたしを含め5名が参加しました。

ブース

どのカンファレンスイベントでも出展ブースは見どころの一つですがとても盛り上がってました。
※掲載できるかどうかグレーな写真しかなかったので詳細は公式 Twitter アカウントをご参照ください。

twitter.com

ZOZOスーツを無料配布していて、長蛇の列ができていたのが印象に残ってます。
わたしは手に入れることができませんでしたが...。

書籍販売

最近、話題になっていたの技術書店*1にて売り切れるほど人気の書籍も並んでたんだとか。

個人的に技術本を書いたりなど考えたことはありませんでしたが、
機会があれば是非という気持ちになりました。

f:id:t_horikoshi:20181114213332j:plain

f:id:t_horikoshi:20181114213334j:plain

おっと、忘れてはいけない、
アドバイザーの麻植さん( @OE_uia )、弊社CTOの河内さん( @kawachi )、
冒頭で、すしざんまいポーズをガッツリ決めてくれた青山さん( @AoiroAoino )共著の実践Scala入門も販売されていました。

f:id:t_horikoshi:20181114212217j:plain

labs.septeni.co.jp

Amazon でポチったら購入特典で、
青山さんが握手してくれました(その日、手を洗わなかったことは言うまでもありません)。

弊社社員のセッション

Readable Code in Scala

f:id:t_horikoshi:20181115011246j:plain

t.co

同じチームで一緒に仕事をしている門脇さん( @blac_k_ey )です。
Readable Code in Scala ということで Scala らしく読みやすいコードについて解説してくれました。

わたし自身、コードレビューなどでアドバイスをいただいたり、
普段から大変お世話になっています。

変位指定についてわかりやすく解説させてください

f:id:t_horikoshi:20181115011657j:plain

speakerdeck.com

組織開発部で新卒の教育や採用活動をする傍らで、
オンラインスクールでScalaを教えているマルチプレーヤーな池田さん( @taket0ra1 )です。

コップ本を読んだ方ならわかると思いますが、
変位指定の章は一度読んだだけでは理解しづらい部分なので、
個人的にはハードルの高さを感じていました。

ですが、ここはさすが池田さん。

文字通り、わかりやすく解説してくれました。
SNSでのフィードバックを見ていても好評なものばかりでした。

JSON Codec を楽しもう現場で役立つ circe

f:id:t_horikoshi:20181115012727j:plain

わたしです(苦笑)。

gitpitch.com

JSONライブラリの circe について発表しました。

こういった大きいイベントでの発表は初めてだったので、
自社の勉強会と、友人が開催しているLTイベントの計2回リハーサルを行わせていただきました。

何度か噛んだり、英語を読み間違えたりしましたが、
練習したかいあって、初回にしては納得の行くセッションができたと思ってます。

参加したセッション

http4sとcats-effectで可愛らしい、関数型らしいアプリケーションを書こう!٩(๑o^๑)۶

speakerdeck.com

ZOZOテクノロジーズさんのテックリード、タラソワダーシャさんのセッションです。
Scala可愛い」というパワーワード誕生の瞬間を目の当たりにしました。

ビジネスロジックはコード読めなくても英語読める人はわかるように書きたい

これはとても重要なことだなと大変感銘を受けました。

Cats Effect, Tagless Final というキーワードが出てきたので、
Functional Programming を積極的に行っている印象でした(わたしはそのたりまだまだ小並です...)。

circe から学ぶ GenericProgramming入門

speakerdeck.com

Fringe81さんの森本さん( @shnmorimoto )のセッションです。

自身のセッションが circe 入門編だったので、
だいぶ前から意識はしていました笑。

導入の circe の説明から、型クラス、そして本題の GenericProgramming 解説への流れがスムーズで
とてもわかり易かったです。

弊社では、あまり Shapeless のコードを見ることはないですが、
HList はなかなか便利そうでした。

Akka-HTTPで作るAPIサーバ

speakerdeck.com

イベントの運営もされていたカミジンさん(@kamijin_fanta) のセッションです。

Akka HTTPは触ったことなかったのですが、
APIを実装するのに必要なモノは揃っている一方で、無駄に機能が充実していないぶんスムーズに開発できたりするのかなーという印象でした。

Routing DSL の紹介で複数のエンドポイントを組み合わせて Route できるのは便利そうでした。
ただ、気をつけないとエンドポイント同士が依存する実装になる気がするのでそのあたりは整理しながら実装する必要がありそうです。

Akka HTTP入門するぞ。

エンタープライズScala

speakerdeck.com

フリーランスプログラマのYohei Tsujiさん(@crossroad0201)のセッションです。

エンタープライズ案件におけるScala導入時の留意点について解説していただきました。
普段からScalaを書いていると失念しがちな点に加えて新しい学びも多く大変勉強になりました。

セッションの内容とは関係ないのですが、密かにQiitaの記事によくお世話になっていて、
最近でいうと O'Reilly の書籍のマイクロサービスサービスアーキテクチャのまとめ記事を拝見させていただいてました。

個人的な感想ですが書籍はかなり読みづらい部分があって苦しんでいたので大変助かりました。
めちゃくちゃ丁寧にまとめられていてとてもわかりやすかったので紹介させていただきます。

qiita.com

もしExcel方眼紙を愛するSIerScala案件に投げ込まれたら

株式会社アットウェアさんの佐藤貴比呂さん( @Satoooooooooooo )のセッションです。
※スライドを見つけることができませんでしたm(._.)m

わたしも前職が Sler でしたので共感ポイントが多く他のセッションとはまた違ったテンションで参加できました。

現在は社内でScala普及活動をされていて、その活動の一貫として横浜でScala勉強会を開催されているそうです。

yokohamascala.connpass.com

Scalaでのドメインモデリングのやり方

speakerdeck.com

弊社でもアドバイザーとしてお世話になっているかとじゅんさん ( @j5ik2o ) のセッションです。

個人的に印象的だったのが質疑応答での一面で、
モデリングをしているとアクターに振る舞いを実装しがちになってしまうという相談に対しての回答でした。

アクターがカンファレンス主催者、エンティティをカンファレンスとした場合に、 カンファレンスはモノではなくて擬人化した何かである、
という発想でもってモデリングした方がうまくいくかもしれませんという回答でこれは非常に目からウロコでした。

まだまだ満足にDDDできているとは胸をはって言うことはできませんが、
引き続きがんばっていきたいです。

懇親会

カンファレンス後、さくらインターネットさんのおしゃれ過ぎるカフェスペースで 懇親会が行われました。

f:id:t_horikoshi:20181115115501j:plain

f:id:t_horikoshi:20181115115303j:plain

豪華...。

界隈で有名な方や、密かに Qiita などで密かにお世話になっていた方と、
親交を深めるることができました。

宿泊

アドバイザーの麻植さん(@OE_uia)が参加者を募って、
カンファレンスの前日から3泊4日で合宿を開催してくださいました。

その名もスカラハウス!!!

個人的には寝具がびっくりするくらい快適で感動的でした。
自宅より寝れた気がします。

品数の多い、朝ごはんもとてもおいしかったです。

アンカンファレンス

2日目はアンカンファレンスが開催されました。

事前に用意されたプログラムはなく、参加者がテーマを決めてハッカソンや、
LTなどを行っていくというものです。

f:id:t_horikoshi:20181115120417j:plain

Fixしたアンカンファレンスのスケジュール。

Airframeハンズオン

わたしははじめに、Scala用のDIライブラリAirframeのハンズオンに参加しました。

github.com

まず、軽量であるということ。
コンストラクタインジェクションに @Inject をする必要がなく、
構文からプロバイダーのバインディングを実現できるなど色々利点がありそうでした。

高嶋さんのセッション

f:id:t_horikoshi:20181115120407j:plain

次に参加したのは、弊社の高嶋さん( @takashima0411 )のセッション。

リトライ処理の実装で気をつけるべきポイント、
Akka Streams + alpakka によるS3アップロード処理について解説していただきました。

チームが違えど、会社が同じということもあり、
日々の業務の中で参考になりそうな内容でとても学びがありました。

伊バル SCALA!!!

f:id:t_horikoshi:20181118014236j:plain

アンカンファレンス後の打ち上げ会場の名前がまさかのScalaでした!!!
無限に出てくる揚げニョッキが素敵な思い出です。

参加してみて

CFPを出すこと自体が初めてだったのですが大変貴重な経験でした。
自分のセッションに対してフィードバックをもらって初めて知ることがあったりと成長に繋った気がします。

外部のコネクションを作るきっかけになったり、
他の企業さんがどんな新しい技術を使っているのか知る機会にもなりますし、
引き続きこういった技術系のカンファレンスには積極的に参加していきたいです。

運営スタッフの皆様ありがとうございました。
また来年もよろしくお願いいたします。