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
790
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
840
戦略的DDDは重いのか? / Is strategic DDD heavy?
pictiny
4
3.1k
戦略的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
520
日報には"今日の一番大きな成果"を書こう / 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
その節約、円になってますか?
isamumumu
1
710
仕様駆動開発の消費期限
watany
17
7.3k
Built Our Own Background Agent at LayerX
layerx
PRO
9
5.1k
霧の中の代数的エフェクト
funnyycat
1
490
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
210
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
670
AIが無かった頃の素敵な出会いの話
codmoninc
1
390
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
620
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
180
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
220
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
180
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
150
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6.2k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
500
Mind Mapping
helmedeiros
PRO
1
300
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
420
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
210
Prompt Engineering for Job Search
mfonobong
0
400
RailsConf 2023
tenderlove
30
1.5k
Un-Boring Meetings
codingconduct
0
380
The Limits of Empathy - UXLibs8
cassininazir
1
600
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Scaling GitHub
holman
464
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が身近になっている事例があれば