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
マイクロサービスがほしいと思ったときに本当に必要だったもの〜なぜ人は共通基盤の夢を見るのか〜 / why microservice
Search
Hiromi Hishida
March 07, 2024
Programming
5
1.2k
マイクロサービスがほしいと思ったときに本当に必要だったもの〜なぜ人は共通基盤の夢を見るのか〜 / why microservice
PHPerKaigi2024 day0前夜祭で発表
Hiromi Hishida
March 07, 2024
Tweet
Share
More Decks by Hiromi Hishida
See All by Hiromi Hishida
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
270
Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM
77web
4
120
100%出しきれないのを許すスクラムチーム運営
77web
1
120
モデルとはなにか / what is model?
77web
6
2.4k
たとえば、唐揚げを揚げながらPHPコードを書く技術 #phpstudy
77web
1
320
ベテランのバグ調査の秘訣、こっそり教えちゃいます。
77web
22
9.2k
Symfony+Doctrine ORMで始める安全なモジュラモノリス
77web
2
3.9k
他人がはやく読めるコードを書く ために
77web
11
4.7k
すばやく実装するための戦略とテクニック2023年版 #prtimes_dev
77web
9
2.6k
Other Decks in Programming
See All in Programming
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
13
4.4k
戦略的DDDは重いのか? / Is strategic DDD heavy?
pictiny
3
2.2k
The Final Frontier of Web Development: React Server Components vs Jakarta EE
ivargrimstad
0
190
地方こそサーバーレス、その意義に迫るサーバーレスPHP / Serverless PHP: The Rural Areas, and Why Serverless PHP Matters
seike460
PRO
2
110
[RubyKaigi 2024] Ruby Mixology 101: adding shots of PHP, Elixir, and more
palkan
0
140
RaaP
ksss
0
160
RailsConf 2024: Riffing on Rails: sketch your way to better designed code
kaspth
1
220
Runtime Objects in Rust
mitsuhiko
0
220
チーム立ち上げにAWSを活用したらClaudeさんに褒められた話
mkdev10
3
230
An adventure of Happy Eyeballs
coe401_
1
300
Adding Security to Microcontroller Ruby
sylph01
1
170
Jetpack Composeとデザインシステム
rmakiyama
0
240
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.7k
Facilitating Awesome Meetings
lara
43
5.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
Teambox: Starting and Learning
jrom
128
8.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
1
130
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Creatively Recalculating Your Daily Design Routine
revolveconf
211
11k
What's new in Ruby 2.0
geeforr
338
31k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
Happy Clients
brianwarren
92
6.4k
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