もくじ
資料
http://gakuzzzz.github.io/slides/why_composability_matters/
はじめに
Scalaはオブジェクト指向 + 関数型プログラミングという言語 最近のプログラニング言語はラムダ関数などの関数型プログラミングの要素を含んだオブジェクト思考言語も多い Composabilityというのが特にscalaの特徴である
そもそもComposabilityとは?
そのまえにCompositionとはなんだろう。
Compositionとは
Composition=構成
といってもいろいろあったりする。Function composition, Object composition, デザインパターンのComposit pattern などなど…
複数のOptionインスタンスから新しいOptionインスタンスを作ることもCompositionという。
同じ概念の異なる要素を特定の方法で組み合わせて同一の別概念を作ること
(動画IDとスレッドIDを組み合わせてWatchIDとするみたいな?(適当))
Composabilityとは
Composabilityが高い/低い とは。
このセッションでは、2つの概念を比較して合成する「方法」が(相対的に)多い側をComposabilityが高いと表現することにする。
なぜComposabilityは重要か
プログラミングはいかに複雑な問題を分解するかが重要。
独自型の変換
例えばWebフレームワークを考える。HTTPを受け取って何らかの処理をしたい。当然HTTPのリクエストはテキストなので、扱いやすくクラスにマッピングしてやりたい。
そこで Conversion Custom Typesがある。Play Frameworkとかで使える。
モナドなんかもComposabilityのためのデザインパターン
参考
なぜComposabilityは重要か を聞いてきたメモ。 #ScalaMatsuri pic.twitter.com/nOCazBkTwq
— Nakayama san (@nakayama_san) 2018年3月17日