Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Scalaの現場から学ぶ設計:座談会 / genba sekkei vol 2
Search
集約のエンティティ
March 19, 2022
Programming
0
630
Scalaの現場から学ぶ設計:座談会 / genba sekkei vol 2
2022年3月19日に開催された ScalaMatsuri 2022 で開催した座談会のスライドです。
https://scalamatsuri.org/
集約のエンティティ
March 19, 2022
Tweet
Share
More Decks by 集約のエンティティ
See All by 集約のエンティティ
組織を強くするPdMのマインド / PMHub vol.2
pictiny
4
740
戦略的DDDは重いのか? / Is strategic DDD heavy?
pictiny
4
2.8k
戦略的DDDを実践するための跳躍力 / OOC 2024
pictiny
9
9.5k
どうしてこうなった命名集 ~🔥編~ / OOC 2024 LT
pictiny
7
4.8k
おかしな名前 ~ 🔥編 ~ / Strange Name
pictiny
1
290
ドローンの会社は生成AIをどう活用するか / Generative AI Bounenkai 2023
pictiny
0
420
日報には"今日の一番大きな成果"を書こう / Kichijoji.pm 34
pictiny
1
1.1k
Scalaの現場から学ぶ設計 告知 / genba sekkei vol.2 announce
pictiny
1
170
現場から学ぶシステム設計:座談会 / genba sekkei vol 1
pictiny
5
1.9k
Other Decks in Programming
See All in Programming
OUPC2024 Day 1 解説
kowerkoint
0
390
いまさら聞けない生成AI入門: 「生成AIを高速キャッチアップ」
soh9834
12
3.5k
PHPによる"非"構造化プログラミング入門 -本当に熱いスパゲティコードを求めて- #phperkaigi
o0h
PRO
0
1.1k
小さく段階的リリースすることで深夜メンテを回避する
mkmk884
2
120
Node.js, Deno, Bun 最新動向とその所感について
yosuke_furukawa
PRO
6
3k
Windows版PHPのビルド手順とPHP 8.4における変更点
matsuo_atsushi
0
360
Devin , 正しい付き合い方と使い方 / Living and Working with Devin
yukinagae
1
510
コンテナでLambdaをデプロイするときに知っておきたかったこと
_takahash
0
140
NestJSのコードからOpenAPIを自動生成する際の最適解を探す
astatsuya
0
180
2025/3/18 サービスの成長で生じる幅広いパフォーマンスの問題を、 AIで手軽に解決する
shirahama_x
0
160
PHPer's Guide to Daemon Crafting Taming and Summoning
uzulla
2
960
SQL Server ベクトル検索
odashinsuke
0
100
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.4k
Agile that works and the tools we love
rasmusluckow
328
21k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
176
52k
Adopting Sorbet at Scale
ufuk
75
9.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
470
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Rails Girls Zürich Keynote
gr2m
94
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
15
1.1k
Git: the NoSQL Database
bkeepers
PRO
429
65k
Code Reviewing Like a Champion
maltzj
521
39k
How GitHub (no longer) Works
holman
314
140k
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が身近になっている事例があれば