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
510
Scalaの現場から学ぶ設計:座談会 / genba sekkei vol 2
2022年3月19日に開催された ScalaMatsuri 2022 で開催した座談会のスライドです。
https://scalamatsuri.org/
集約のエンティティ
March 19, 2022
Tweet
Share
More Decks by 集約のエンティティ
See All by 集約のエンティティ
戦略的DDDは重いのか? / Is strategic DDD heavy?
pictiny
3
2k
戦略的DDDを実践するための跳躍力 / OOC 2024
pictiny
8
7.6k
どうしてこうなった命名集 ~🔥編~ / OOC 2024 LT
pictiny
6
4.2k
おかしな名前 ~ 🔥編 ~ / Strange Name
pictiny
1
220
ドローンの会社は生成AIをどう活用するか / Generative AI Bounenkai 2023
pictiny
0
270
日報には"今日の一番大きな成果"を書こう / Kichijoji.pm 34
pictiny
0
890
Scalaの現場から学ぶ設計 告知 / genba sekkei vol.2 announce
pictiny
1
140
現場から学ぶシステム設計:座談会 / genba sekkei vol 1
pictiny
5
1.8k
真のアジャイル / Clean Agile
pictiny
1
130
Other Decks in Programming
See All in Programming
RaaP
ksss
0
140
TCAとKMPを用いた新規動画配信アプリ 「ABEMA Live」の設計
tomu28
2
140
RailsConf 2024: Riffing on Rails: sketch your way to better designed code
kaspth
0
200
Effectで作る堅牢でスケーラブルなAPIゲートウェイ / Robust and Scalable API Gateway Built on Effect
yasaichi
7
1.2k
Sheets API使ってみた
toshi0383
2
180
otelcol receiver 自作RTA / Pepabo Tech Conference #22 春のSREまつり
arthur1
0
110
Amazon Aurora Serverless v2が意外と高かった話と、AWS Database Migration Serviceの話
satoshi256kbyte
1
100
Namespace, What and Why
tagomoris
3
580
Let's learn code review
riofujimon
2
630
TypeScriptでもLLMアプリケーション開発 / LLM Application In Typescript
rkaga
5
1.3k
Going beyond Apache Parquet's default settings
xhochy
0
150
Apache Hive 4 on Treasure Data
ryukobayashi
1
470
Featured
See All Featured
Web development in the modern age
philhawksworth
203
10k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Docker and Python
trallard
35
2.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.7k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.3k
Design by the Numbers
sachag
274
18k
Building a Modern Day E-commerce SEO Strategy
aleyda
22
6.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
15
1.6k
Adopting Sorbet at Scale
ufuk
69
8.6k
5 minutes of I Can Smell Your CMS
philhawksworth
199
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が身近になっている事例があれば