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
マイクロサービスがほしいと思ったときに本当に必要だったもの〜なぜ人は共通基盤の夢を見るのか〜 ...
Search
Hiromi Hishida
March 07, 2024
Programming
5
1.7k
マイクロサービスがほしいと思ったときに本当に必要だったもの〜なぜ人は共通基盤の夢を見るのか〜 / why microservice
PHPerKaigi2024 day0前夜祭で発表
Hiromi Hishida
March 07, 2024
Tweet
Share
More Decks by Hiromi Hishida
See All by Hiromi Hishida
Beyond ORM
77web
11
1.7k
見せてあげますよ、「本物のLaravel批判」ってやつを。
77web
8
8.3k
DoctrineとPostgreSQLの便利な機能、どっちも諦めたくない!
77web
0
200
すばやく実装するための戦略とテクニック2024 / speed is power! 2024 #techramen24conf #shoyu
77web
9
4.7k
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
890
Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM
77web
4
300
100%出しきれないのを許すスクラムチーム運営
77web
1
330
モデルとはなにか / what is model?
77web
7
3.2k
たとえば、唐揚げを揚げながらPHPコードを書く技術 #phpstudy
77web
1
440
Other Decks in Programming
See All in Programming
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
5
1k
Jakarta EE meets AI
ivargrimstad
0
380
ソフトウェアエンジニアの成長
masuda220
PRO
12
2.1k
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
54
19k
未経験でSRE、はじめました! 組織を支える役割と軌跡
curekoshimizu
1
150
機能が複雑化しても 頼りになる FactoryBotの話
tamikof
0
130
Generating OpenAPI schema from serializers throughout the Rails stack - Kyobashi.rb #5
envek
1
380
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
150
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
300
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
140
はじめての Go * WASM *OCR
sgash708
1
100
Better Code Design in PHP
afilina
0
170
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
328
38k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Bash Introduction
62gerente
611
210k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
We Have a Design System, Now What?
morganepeng
51
7.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Transcript
UI.BSDI BU1)1FS,BJHJ CZ!XFC ʮϚΠΫϩαʔϏε͕΄͍͠ʂʯͱ ࢥͬͨͱ͖ʹຊʹඞཁͩͬͨͷ ʙͳͥਓڞ௨ج൫ͷເΛݟΔͷ͔ʙ
w 1)1FSྺ໊ݹࡏॅ w ʙϑϦʔϥϯε։ൃऀ w ࣗࣾαʔϏεاۀʹब৬ w స৬Λܦͯɺݱࡏ༧ҩྍςοΫ ͷϦϯέʔδͷΤϯδχΞ w
#UP#UP&༧ҩྍϓϩμΫτΛ࡞ͬ ͍ͯ·͢ w ຊ4ZNGPOZϢʔβʔձ /BHPZBQIQ XFCʢͳͳ͏͐Ϳʣ ঁੑͷ݈߁՝αϙʔτ '&.$-& ͔͔Γ͚ͭอ݈ࢣGPS-*/&
͜ͷτʔΫͷର w ϚΠΫϩαʔϏεྑͦ͞͏ͱࢥͬͯΔ1)1FS w ͏ͪͷγεςϜɺઈରϚΠΫϩαʔϏεʹ͖͢ʂͱࢥ͍ͬͯΔ1)1FS
IUUQTTQFBLFSEFDLDPNXFCQIQFSEFNPEFLJSVNBJLVSPTBCJTV 1)1FS,BJHJ
ϚΠΫϩαʔϏεͱʢ͓͞Β͍ʣ w ڠௐͯ͠ಈ࡞͢ΔখنͰࣗతͳαʔϏε w ຊମͱͳΔϝΠϯγεςϜͱ࿈ಈ͢Δ w िؒͰશମΛॻ͖ͤΔ͙Β͍খن w ಠཱͯ͠ϦϦʔεɾมߋͰ͖ɺٕज़ʹґଘ͠ͳ͍"1*Ͱͭͳ͕Δ
ϚΠΫϩαʔϏεͰԿ͕خ͍͔͠ʁʢ͓͞Β͍ʣ w ٕज़తҟ࣭ੑ w ճ෮ੑ w εέʔϦϯά w σϓϩΠ༰қੑ w
ަՄೳੑ ϝΠϯγεςϜ͕1)1͔ͩΒͬͯɺαʔϏε·Ͱ1)1͡Όͳ͍͍ͯ͘ োͷൣғ͕ݶఆͰ͖ΔɻͭͷαʔϏε͕མͪͯଞͷॲཧʹӨڹΛٴ΅͞ͳ͍ ۃʹෛՙͷߴ͍αʔϏε͚ͩߴੑೳͷαʔόʔΛར༻Ͱ͖Δɻॲཧ͖͕݅͢ ଟ͍αʔϏε͚ͩଟىಈͰ͖Δ શମͰͳͭ͘ͷαʔϏε͚ͩσϓϩΠͰ͖Δ ͭͷαʔϏε͚ͩதΛೖΕସ͑Δ͜ͱ͕Ͱ͖Δ
ϚΠΫϩαʔϏε͕΄͍͠ʂ
ͳΜͰʁ w ৽͍͜͠ͱͬͯΈ͍ͨ w ͳΜ͔ڧͦ͏ w ۜͷؙʹҧ͍ͳ͍ w ͜ΕΛωλʹͯ͠ొஃ͍ͨ͠
ͳΜͰʁ w ৽͍͜͠ͱͬͯΈ͍ͨ w ͳΜ͔ڧͦ͏ w ۜͷؙʹҧ͍ͳ͍ w ͜ΕΛωλʹͯ͠ొஃ͍ͨ͠
ͳΜͰʁ
"͞ΜෳͷγεςϜʹಉ͡Α͏ͳॲཧ͕͋Δ͔Β
"͞ΜෳͷγεςϜʹಉ͡Α͏ͳॲཧ͕͋Δ͔Β w ಉ͡ػೳ w ຊʹಉ͔͡ʁ w ܾࡁɾೝূ w ίϐϖͨ͘͠ͳ͍ w
όά͕ݟ͔ͭͬͨͱ͖ʹશγεςϜΛमਖ਼ͯ͠ճΔඞཁ͕͋Δ w ίϐϖઌͰͷΧελϜߟྀͨ͠मਖ਼ͷқ͕ߴ͍
"͞ΜෳͷγεςϜʹಉ͡Α͏ͳॲཧ͕͋Δ͔Β w ύοέʔδԽͰରॲՄೳ w ڞ௨෦ͷίʔυΛύοέʔδʹ֤ͯ͠ར༻ଆͷγεςϜ͔ΒDPNQPTFSSFRVJSF͢Δ w QBDLBHJTUʹެ։ͪ͠Ό͏ w QSJWBUFQBDLBHJTUʹ՝ۚͯࣗࣾ͠ઐ༻ͷQBDLBHJTUΛ͏ w
TBUJTΛӡ༻ͯࣗࣾ͠ઐ༻ͷΦϨΦϨQBDLBHJTUΛ͏ w SFRVJSF͢ΔଆͷDPNQPTFSKTPOͷSFQPTJUPSJFTઃఆʹWDTͱͯ͠(JU)VCϨϙδτϦ Λࢦఆ͢ΔʢҰ൪͓खܰʣ
ͳΜͰʁ
#͞Μར༻λΠϛϯάͷൟ͕ؓ͋ͬͯಛఆͷ࣌ظ͚ͩͨ͘͞Μॲཧ͠ͳ͍ͱ͍͚ͳ͍ ͔Β
#͞Μར༻λΠϛϯάͷൟ͕ؓ͋ͬͯಛఆͷ࣌ظ͚ͩͨ͘͞Μॲཧ͠ͳ͍ͱ͍͚ͳ͍ ͔Β w ݄ॳɾ݄ɾޒेͳͲϏδωε্ͷཧ༝Ͱಛఆ͚ͩγεςϜ͕ࠞࡶ͠ɺ ଞͷʹ΄ͱΜͲಈ͔ͳ͍͜ͱΑ͋͘Δ w యܕతʹձܭͷకΊ w ϚΠΫϩαʔϏεʹεέʔϦϯάՄೳͱ͍͏ಛ͕͋Δ ۃʹෛՙͷߴ͍αʔϏε͚ͩߴੑೳͷαʔόʔΛར༻Ͱ͖Δɻॲཧ͖͕݅͢
ଟ͍αʔϏε͚ͩଟىಈͰ͖Δ
#͞Μར༻λΠϛϯάͷൟ͕ؓ͋ͬͯಛఆͷ࣌ظ͚ͩͨ͘͞Μॲཧ͠ͳ͍ͱ͍͚ͳ͍ ͔Β w ϑϨʔϜϫʔΫͷδϣϒΩϡʔͰରॲՄೳ w δϣϒྔʹΑΓδϣϒϥϯφʔΛΦʔτεέʔϧͤ͞Δ w ͋Β͔͡Ί͕࣌Θ͔͍ͬͯΔͳΒಛఆ͚࣌ͩେྔىಈͰ͖Δ
ͳΜͰʁ
$͞Μಛఆͷॲཧ͚ͩ1)1Ҏ֎ͷݴޠΛ͍͍͔ͨΒ
$͞Μಛఆͷॲཧ͚ͩ1)1Ҏ֎ͷݴޠΛ͍͍͔ͨΒ w ඇಉظॲཧը૾ॲཧɺଞݴޠͷ1)1ΑΓศརͳػೳɾϥΠϒϥϦΛγε ςϜͷಛఆͷػೳ͚ͩͰ͏ w ϚΠΫϩαʔϏεʹҟ࣭ੑͱ͍͏ಛ͕͋Δ ϝΠϯγεςϜ͕1)1͔ͩΒͬͯɺαʔϏε·Ͱ1)1͡Όͳ͍͍ͯ͘
$͞Μಛఆͷॲཧ͚ͩ1)1Ҏ֎ͷݴޠΛ͍͍͔ͨΒ w FYFD TZNGPOZQSPDFTT1)1͔ΒଞͷݴޠͷॲཧΛݺͼग़͢ͷͰ࣮ݱ Մೳ w ଞݴޠͷϥΠϒϥϦ͕༗໊ͳػೳͰ1)1ʹΦʔϓϯιʔεͷϥΠϒϥϦ͕ ଘࡏ͍ͯ͠Εɺ1)1Ͱ࣮Մೳ
ͳΜͰʁ
%͞ΜෳγεςϜ͔Βڞ௨ͷσʔλϕʔε͕͍͍͔ͨΒ
%͞ΜෳγεςϜ͔Βڞ௨ͷσʔλϕʔε͕͍͍͔ͨΒ w ࣗࣾͷෳͷγεςϜʹڞ௨ͷ*%ͰϩάΠϯ͍ͤͨ͞ w ࣗࣾͷෳͷγεςϜͷܾࡁΛ߹ࢉͰߦ͑ΔΑ͏ʹ͍ͨ͠ w ࣗࣾͷෳͷγεςϜͷϙΠϯτΛ߹ࢉͰ͑ΔΑ͏ʹ͍ͨ͠
%͞ΜෳγεςϜ͔Βڞ௨ͷσʔλϕʔε͕͍͍͔ͨΒ w ϚΠΫϩαʔϏεԽΛݕ౼ͯ͠ྑ͍ w ͔ͯ͠͠ɿϚΠΫϩαʔϏεͰͳ͘ɺαϒγεςϜϓϥοτϑΥʔϜ w *%BBTࢹʹ
ϚΠΫϩαʔϏεΛקΊ͍ͨͷʁࢭΊ͍ͨͷʁ ✋
ϚΠΫϩαʔϏεͷσϝϦοτ w ϚΠΫϩαʔϏεͷ͚ͩσϓϩΠ͠ͳ͚ΕͳΒͳ͍ w ಠཱੑ w ϚΠΫϩαʔϏεͷ͚ͩϑϨʔϜϫʔΫݴޠͷΞοϓσʔτΛ͠ͳ͚Ε ͳΒͳ͍
ϚΠΫϩαʔϏε͕΄͍͠ʂ w ෳͷγεςϜʹಉ͡Α͏ͳॲཧ͕͋Δ͔Β w ར༻λΠϛϯάͷൟ͕ؓ͋ͬͯɺಛఆͷ࣌ظ͚ͩͨ͘͞Μॲཧ͠ͳ͍ͱ͍͚ ͳ͍͔Β w ಛఆͷॲཧ͚ͩ1)1Ҏ֎ͷݴޠΛ͍͍͔ͨΒ w ෳγεςϜ͔Βڞ௨ͷσʔλϕʔε͕͍͍͔ͨΒ
ϚΠΫϩαʔϏε͕΄͍͠ʂͱࢥͬͨͱ͖ʹຊʹඞཁͩͬͨͷ w ෳͷγεςϜʹಉ͡Α͏ͳॲཧ͕͋Δ͔Β w ύοέʔδԽ w ར༻λΠϛϯάͷൟ͕ؓ͋ͬͯɺಛఆͷ࣌ظ͚ͩͨ͘͞Μॲཧ͠ͳ͍ͱ͍͚ͳ͍͔Β w ϞϊϦεͷϑϨʔϜϫʔΫͷδϣϒΩϡʔ׆༻ɾεέʔϦϯά w
ಛఆͷॲཧ͚ͩ1)1Ҏ֎ͷݴޠΛ͍͍͔ͨΒ w FYFD TZNGPOZQSPDFTTɺ1)1ͷΦʔϓϯιʔεϥΠϒϥϦͷ׆༻ w ෳγεςϜ͔Βڞ௨ͷσʔλϕʔε͕͍͍͔ͨΒ w ϚΠΫϩαʔϏεͰͳ͘ϓϥοτϑΥʔϜɻ*%BBTࢹʹɻ
ϚΠΫϩαʔϏε͕΄͍͠ʂ w ෳͷγεςϜʹಉ͡Α͏ͳॲཧ͕͋Δ͔Β w ར༻λΠϛϯάͷൟ͕ؓ͋ͬͯɺಛఆͷ࣌ظ͚ͩͨ͘͞Μॲཧ͠ͳ͍ͱ͍͚ ͳ͍͔Β w ಛఆͷॲཧ͚ͩ1)1Ҏ֎ͷݴޠΛ͍͍͔ͨΒ w ෳγεςϜ͔Βڞ௨ͷσʔλϕʔε͕͍͍͔ͨΒ
"/%
ΞϓϦέʔγϣϯΛ࣋ଓతʹ։ൃՄೳʹ͢Δ͜ͱ͕Ұ൪େࣄ w ͯ͢ͷʮͳΜͰʁʯΛݕ౼ͯ͠ɺͦΕͰ·ͩϚΠΫϩαʔϏε͕ඞཁͳΒ Δ͠
None
ʲืूʳঁੑैۀһ͚݈߁αϙʔταʔϏεࠓݶఆແྉ 13 w '&.$-&͕ްੜ࿑ಇল࣮ূࣄۀʹ࠾͞Ε·ͨ͠ w ࢀՃاۀͷঁੑैۀһͷํʹ'&.$-&ͷ༷ʑͳػೳΛ࣮ ࡍʹͬͯΒ͍ɺޮՌΛݕূ w ௨ৗ༗ྉͷαʔϏε͕ɺ࣮ূࣄۀ൛ʢࠓݶఆʣΛ͝ར ༻ͷ߹✨ແྉ✨
w ࢀՃاۀืूதʢ݄·Ͱडதʣ w ৄࡉࢲʢ!XFCʣʹ9ͷ%.ΛૹΔ͔ɺ1)1FS,BJHJձ Ͱֻ͓͚͍ͩ͘͞🙏 આ໌ձਃࠐΈϖʔδ
5IBOLZPV