WebエンジニアのLoL日記

LoLをプレイしたりLJLの試合を見たりするのが好きなエンジニア。LoLのイベントやパッチノートなど気になった点を記事にしたり、LJLについの記事をかいたりしています。某社でWeb系のエンジニアとして働いているので、技術系の記事もたまに書きます。コンタクトを取りたい場合はtwitterまで。

【ScalaMatsuri2018】「もしScala初心者がMonoidを投げ込まれたら」メモ

もくじ

これはなに?

ランチタイムに行われたLT(10分の発表)の一つです。

もしScala初心者がMonoidを投げ込まれたら

注意

  • Monoidの説明はしません
  • Scala初心者が新しい概念と戦っていく有様です

自己紹介

あるひ

こんなコードがプルリクで投げられた

trait Monoid[A] extends Semigroup[A] {
  def zero: A
}

trait SemiGroup[A] {
  def append(a1: A, a2: A) = ...
}

なにこれ。Monoidって?

ググってみる

なるほどわからん

エンジニア困惑

チャットでのやり取り

自分「MonoidやSemigroupの追加はドラスティックでは?」 ???「Monoidに怯えすぎでしょ...」

なぜ困惑

  • 業務で知らない概念に触れたときどう対処したらいいのかわからなかった
  • チームの(Scalaなどの)技術レベルの共有が十分ではなかった

新しい概念と戦っていく力をつける必要がある。

対策

チームとして最適化していく

モチベーションが非常に重要。

まとめ

  • DO IT! so, Just DO IT!
  • monoidに怯えすぎでしょ

おまけ