OO設計とは異なるアプローチ 関数型・代数的ドメインモデリングとは #ScalaMatsuri #sm_a

関数型、代数的なドメイン・モデリングの方法 @debasishg
0
Debasish (দেবাশিস্) Ghosh 🇮🇳 @debasishg

Programmer. Author: Functional and Reactive Domain Modeling (Manning 2016), DSLs In Action (Manning 2010). Father. Husband. Seinfeld fanboy. FP aficionado.

https://t.co/iMNdBBu9Ga

Debasish (দেবাশিস্) Ghosh 🇮🇳 @debasishg

The first talk @ScalaMatsuri has numerous references to shapeless, scalaz, Prisms & Iso .. What can go wrong from here ?

2016-01-30 10:43:11

sifue(吉村 総一郎) @sifue

#ScalaMatsuri #sm_a 関数型、代数的なドメイン・モデリングの方法、一番聞きたかったやつだ。ちゃんと DDD 的文脈のドメインのお話。これを聞いたら目的を果たした感ある。

2016-01-30 16:03:37
sifue(吉村 総一郎) @sifue

#ScalaMatsuri #sm_a サーバーを関数として考える。不変性、関数の合成、副作用の分離に基づく。例の twitter の論文だ。

2016-01-30 16:05:09
コツメカワウソ @_nnioo_

”Our domain model is a collection of functions" #ScalaMatsuri #sm_a

2016-01-30 16:05:16
sifue(吉村 総一郎) @sifue

#ScalaMatsuri #sm_a ドメインモデルの代数をどう実装するか→型、型の制約、代数を用いて表現して、型で検証したりプロパティベーステストとか使って検証する。p

2016-01-30 16:10:53
コツメカワウソ @_nnioo_

ドメインモデルを関数的な性質を考えつつ設計する、非常に実用的だ #ScalaMatsuri #sm_a

2016-01-30 16:11:07
にわタコ @niwatako

通訳日本語チャンネル変わった? #ScalaMatsuri #sm_a

2016-01-30 16:11:32
ゆきあす @YukiAsu

日本語が 2chになってる・・・ #scalamatsuri #sm_a

2016-01-30 16:12:12
migimigi @migimigi_

日本語訳チャンネルが2になった? #ScalaMatsuri #sm_a

2016-01-30 16:12:40
seraphr @seraphr

翻訳のチャンネル、間違えてるな #scalamatsuri #sm_a

2016-01-30 16:12:46
コツメカワウソ @_nnioo_

振る舞いは関数、エンティティは代数データ型、ビジネスルールを不変条件、あとモナド、これらをすべて満たしたものをドメイン代数とする #ScalaMatsuri #sm_a

2016-01-30 16:12:52
sifue(吉村 総一郎) @sifue

#ScalaMatsuri #sm_a 銀行の業務モデル出てきた。 エンティティは口座とか顧客とか、さまざまな銀行処理を関数にしちゃう。あとモナドとかモノイド使って表現。これをやればドメインを代数的に表現できてる。

2016-01-30 16:13:02
migimigi @migimigi_

チャンネル戻ったが、難しいなこのないよう… #ScalaMatsuri #sm_a

2016-01-30 16:14:33
sifue(吉村 総一郎) @sifue

#ScalaMatsuri #sm_a ビジネスルールを関数にして、それを実行という関数に合成するスタイルにするとより代数的に表現できるよなぁ。そしてそれらの関数を trait を使ってモジュール化するのね。

2016-01-30 16:17:00
phenan @phenan

例によって大体内容が同じスライド見つけたのでリンク置いときますね つ slideshare.net/debasishg/doma… #ScalaMatsuri #sm_a

2016-01-30 16:18:05
コツメカワウソ @_nnioo_

代数的設計手法:代数はAPIが準拠する成約、実装は代数には含まないとする #ScalaMatsuri #sm_a

2016-01-30 16:18:39