Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Scalaの現場から学ぶ設計:座談会 / genba sekkei vol 2
Search
集約のエンティティ
March 19, 2022
Programming
810
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Scalaの現場から学ぶ設計:座談会 / genba sekkei vol 2
2022年3月19日に開催された ScalaMatsuri 2022 で開催した座談会のスライドです。
https://scalamatsuri.org/
集約のエンティティ
March 19, 2022
More Decks by 集約のエンティティ
See All by 集約のエンティティ
組織を強くするPdMのマインド / PMHub vol.2
pictiny
5
850
戦略的DDDは重いのか? / Is strategic DDD heavy?
pictiny
4
3.2k
戦略的DDDを実践するための跳躍力 / OOC 2024
pictiny
9
11k
どうしてこうなった命名集 ~🔥編~ / OOC 2024 LT
pictiny
8
5.2k
おかしな名前 ~ 🔥編 ~ / Strange Name
pictiny
2
360
ドローンの会社は生成AIをどう活用するか / Generative AI Bounenkai 2023
pictiny
0
540
日報には"今日の一番大きな成果"を書こう / Kichijoji.pm 34
pictiny
1
1.3k
Scalaの現場から学ぶ設計 告知 / genba sekkei vol.2 announce
pictiny
1
210
現場から学ぶシステム設計:座談会 / genba sekkei vol 1
pictiny
5
2.1k
Other Decks in Programming
See All in Programming
Jetpack Compose Mechanisms
skydoves
2
610
パーソナライズPodcastを作った話
repunit11
0
130
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
1
2.3k
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
360
Verilogで学ぶCPU自作入門
uyuki234
8
4k
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
200
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
940
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
140
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
380
dotNET_vulnclicker_intro.pdf
deka_morita
0
130
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
450
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
560
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
10k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
590
Music & Morning Musume
bryan
48
7.4k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Designing for humans not robots
tammielis
254
26k
Optimizing for Happiness
mojombo
378
71k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
A better future with KSS
kneath
240
18k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
420
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
KATA
mclloyd
PRO
35
16k
Transcript
Scalaの現場から学ぶ 設計 座談会 2022.03.19
None
本セッションについて • アルプは社内で定期的に設計についての相談会を実施 • 今回は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が身近になっている事例があれば