2022年3月19日に開催された ScalaMatsuri 2022 で開催した座談会のスライドです。 https://scalamatsuri.org/
Scalaの現場から学ぶ設計 座談会2022.03.19
View Slide
本セッションについて● アルプは社内で定期的に設計についての相談会を実施● 今回はScalaMatsuriのバーチャルブースを借りて相談会の出張版となります● 質問やコメントはDiscordの #alp-雑談と実況 チャンネルにご投稿ください● ツイッターのハッシュタグ #genba_sekkei もご利用ください
今日のテーマオブジェクト指向(OOP)と関数型(FP)について
アルプにおけるOOPとFP● アルプではScalaでOOPをしっかりやっている○ DDDにも注力している● 同時にFPのエッセンスもプロダクトに取り入れている○ 一番の具体例は Eff● アルプでのFP○ 静的型付き言語の表現力を上げるために使っている○ 可読性を上げるためのアーキテクチャの一部相談(トークテーマ)● 設計の観点で、どういうときにFP(OOP)の要素が役に立つか● こう使うと可読性が上がるよね、などの言語化
OOPとFPの対立● OOPとFPは対比して語られることが多い○ 部分的には相反しているかもしれないけど○ 全てが相反しているわけではない● ステートレスなOOPはOOPではないのか?○ そんなはずはない● 相反していないから、部分的に共存できる○ 両方の要素を実用的に取り入れている Scalaいいよね相談(トークテーマ)● 双方のいいところを両取りしていくには● 何が相反していて、何が相反していないのか
2022年のFP● FPはどうしても難しい話から入ってしまいがち○ 高階関数、モナド、モナトラ● アルプではあまり意識せずにFPのエッセンスを使えている○ モナドがわからなくても for式で合成してくれる便利な道具( Eff)がある● 他社の事例にもそういう流れはないのだろうか○ FPが実は身近になっている説相談(トークテーマ)● FPが身近になっている事例があれば