Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Scalaの現場から学ぶ設計:座談会 / genba sekkei vol 2
集約のエンティティ
March 19, 2022
Programming
0
200
Scalaの現場から学ぶ設計:座談会 / genba sekkei vol 2
2022年3月19日に開催された ScalaMatsuri 2022 で開催した座談会のスライドです。
https://scalamatsuri.org/
集約のエンティティ
March 19, 2022
Tweet
Share
More Decks by 集約のエンティティ
See All by 集約のエンティティ
Scalaの現場から学ぶ設計 告知 / genba sekkei vol.2 announce
pictiny
1
52
現場から学ぶシステム設計:座談会 / genba sekkei vol 1
pictiny
5
1.4k
真のアジャイル / Clean Agile
pictiny
0
15
Scala初心者は◯◯◯にメソッドを生やしたいと考えた / Pre-ScalaMatsuri 2020
pictiny
3
2.1k
振る舞いからモデリングするオブジェクト指向な開発プロセス / OOC 2020
pictiny
0
1k
時を正しく扱うためのシステム設計
pictiny
9
4.4k
プログラミング言語プロレス / Simple VS Easy
pictiny
0
840
Other Decks in Programming
See All in Programming
Independently together: better developer experience & App performance
bcinarli
0
150
Jakarta EE 10 - Feature by Feature with My Open Source Journey
ivargrimstad
0
2k
Beyond Micro Frontends: Frontend Moduliths for the Enterprise @enterjs2022
manfredsteyer
PRO
0
110
Web API連携でCSRF対策がどう実装されてるか調べた / how to implements csrf-detection on Web API
yasuakiomokawa
2
250
Voiceflowではじめる音声アプリ・チャットボット開発〜2022年版〜 / Introduction to Developing Voice Apps & Chatbots with Voiceflow
kun432
0
170
Node.jsデザインパターンを読んで
mmmommm
0
920
Value and Record Types
hschwentner
0
540
実践エクストリームプログラミング / Extreme Programming in Practice
enk
1
340
Modern Android Developer ~ 안내서
pluu
1
580
git on intellij
hiroto_kitamura
0
160
競プロのすすめ
uya116
0
650
Jetpack Compose best practices 動画紹介 @GoogleI/O LT会
takakitojo
0
210
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
337
17k
Raft: Consensus for Rubyists
vanstee
126
5.4k
Adopting Sorbet at Scale
ufuk
63
7.6k
Rebuilding a faster, lazier Slack
samanthasiow
62
7.2k
Typedesign – Prime Four
hannesfritz
33
1.3k
BBQ
matthewcrist
74
7.9k
Become a Pro
speakerdeck
PRO
3
830
Pencils Down: Stop Designing & Start Developing
hursman
112
9.8k
VelocityConf: Rendering Performance Case Studies
addyosmani
316
22k
Learning to Love Humans: Emotional Interface Design
aarron
261
37k
Fontdeck: Realign not Redesign
paulrobertlloyd
73
4.1k
Agile that works and the tools we love
rasmusluckow
319
19k
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が身近になっている事例があれば