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
490
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を実践するための跳躍力 / OOC 2024
pictiny
6
3.1k
どうしてこうなった命名集 ~🔥編~ / OOC 2024 LT
pictiny
4
2.7k
おかしな名前 ~ 🔥編 ~ / Strange Name
pictiny
1
180
ドローンの会社は生成AIをどう活用するか / Generative AI Bounenkai 2023
pictiny
0
240
日報には"今日の一番大きな成果"を書こう / Kichijoji.pm 34
pictiny
0
840
Scalaの現場から学ぶ設計 告知 / genba sekkei vol.2 announce
pictiny
1
140
現場から学ぶシステム設計:座談会 / genba sekkei vol 1
pictiny
5
1.7k
真のアジャイル / Clean Agile
pictiny
1
110
Scala初心者は◯◯◯にメソッドを生やしたいと考えた / Pre-ScalaMatsuri 2020
pictiny
3
2.4k
Other Decks in Programming
See All in Programming
phpunit/php-code-coverageって何をしてるんだ #phperkaigi
o0h
PRO
2
210
Building a Smaller App Binary
kateinoigakukun
2
190
Learning PHP and Static Analysis with PHP Parser
inouehi
1
250
IntelliJ IDEA を知らなかった 自分に教えたい小ネタ集 / IntelliJ IDEA Hints for My Past Self
mackey0225
3
150
「コンパイル時のユニットテスト」導入するとユニットテストを 書かなくてよくなるのか?
tomohisa
9
2.1k
Understanding Ast By Looking
inouehi
0
120
PHP 8.3で追加されたjson_validate()を徹底的に深掘りしてみよう
mashirou1234
1
720
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
490
上手な探索的テストとその上達方法について
matsu802
4
650
コミュニティに参加したことで起きた変化
ohmori_yusuke
3
130
15分間でふんわり理解するDocker @ Matsuriba MAX
ukwhatn
PRO
1
330
品質が高いコードって何?Rev2.1
ickx
1
490
Featured
See All Featured
Designing the Hi-DPI Web
ddemaree
275
33k
Fontdeck: Realign not Redesign
paulrobertlloyd
75
4.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
185
15k
Robots, Beer and Maslow
schacon
PRO
154
7.9k
Pencils Down: Stop Designing & Start Developing
hursman
115
11k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
113
18k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
12
1.4k
Faster Mobile Websites
deanohume
296
30k
Done Done
chrislema
178
15k
YesSQL, Process and Tooling at Scale
rocio
160
13k
Rebuilding a faster, lazier Slack
samanthasiow
72
8.2k
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が身近になっている事例があれば