Slide 1

Slide 1 text

Scalaの現場から学ぶ 設計 座談会 2022.03.19

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

本セッションについて ● アルプは社内で定期的に設計についての相談会を実施 ● 今回はScalaMatsuriのバーチャルブースを借りて相談会の出張版となります ● 質問やコメントはDiscordの #alp-雑談と実況 チャンネルにご投稿ください ● ツイッターのハッシュタグ #genba_sekkei もご利用ください

Slide 4

Slide 4 text

今日のテーマ オブジェクト指向(OOP)と関数型(FP)について

Slide 5

Slide 5 text

アルプにおけるOOPとFP ● アルプではScalaでOOPをしっかりやっている ○ DDDにも注力している ● 同時にFPのエッセンスもプロダクトに取り入れている ○ 一番の具体例は Eff ● アルプでのFP ○ 静的型付き言語の表現力を上げるために使っている ○ 可読性を上げるためのアーキテクチャの一部 相談(トークテーマ) ● 設計の観点で、どういうときにFP(OOP)の要素が役に立つか ● こう使うと可読性が上がるよね、などの言語化

Slide 6

Slide 6 text

OOPとFPの対立 ● OOPとFPは対比して語られることが多い ○ 部分的には相反しているかもしれないけど ○ 全てが相反しているわけではない ● ステートレスなOOPはOOPではないのか? ○ そんなはずはない ● 相反していないから、部分的に共存できる ○ 両方の要素を実用的に取り入れている Scalaいいよね 相談(トークテーマ) ● 双方のいいところを両取りしていくには ● 何が相反していて、何が相反していないのか

Slide 7

Slide 7 text

2022年のFP ● FPはどうしても難しい話から入ってしまいがち ○ 高階関数、モナド、モナトラ ● アルプではあまり意識せずにFPのエッセンスを使えている ○ モナドがわからなくても for式で合成してくれる便利な道具( Eff)がある ● 他社の事例にもそういう流れはないのだろうか ○ FPが実は身近になっている説 相談(トークテーマ) ● FPが身近になっている事例があれば