Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
マイクロサービスの思想から捉える Backends for Frontendsとその類似パター...
Search
qsona
June 07, 2018
Technology
27k
19
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
マイクロサービスの思想から捉える Backends for Frontendsとその類似パターン / Backends for Frontends and its similar pattern from the microservices perspective
UIT#3 The “Backends for Frontends” sharing
qsona
June 07, 2018
More Decks by qsona
See All by qsona
サーバー間 GraphQL と webmock-graphql の話 / server-to-server graphql and webmock-graphql
qsona
4
640
Backend エンジニア視点からの GraphQL / GraphQL from a perspective of backend engineer
qsona
28
9.1k
3 Practices about Service-to-Service GraphQL Ruby Client
qsona
1
1.2k
いかにして GraphQL を組織に導入するか (新規開発編) / how we introduce GraphQL on scratch development
qsona
6
4.2k
Well-organized Transaction Script - リファクタリングの妥協的手法 -
qsona
4
1.6k
GraphQL と Prisma から考える次のN年を見据えた技術選定 / Architecture decision for the next N years at StudySapuri
qsona
25
17k
最高のマスターデータ管理手法考察 & VSCode Extension を活用した話 / developing masterdata management tool by using vscode extension
qsona
9
8.5k
GraphQL を活用したスキーマ駆動開発の実践 / schema-driven development with GraphQL
qsona
6
7.6k
GraphQL を利用したアーキテクチャの勘所 / Architecture practices with GraphQL
qsona
37
18k
Other Decks in Technology
See All in Technology
Vue で書く 空間コンピューティング、TresJS と WebXR を使ったXR デバイスのフロントエンド開発
hiranuma
0
120
演劇と私とスクラム
chinmo
0
160
自宅サーバと脆弱性
masakiokuda
1
120
AIエージェント時代、Kaggleにどう取り組むか
takanao
1
320
AI時代の開発はウォーターフォールに回帰する? / development-with-ai-back-to-wf
okamototakuyasr2
0
140
Patterns in AI Driven Software Development
akosma
PRO
0
280
PostgreSQL at Microsoft: Open Source, AI, & Cloud | Claire Giordano | PGConf.EU 2026
clairegiordano
0
110
構造で守らせる データ・法務・セキュリティ・開発チームとつくる AI時代のデータガバナンスとデータ基盤のリアル
legalontechnologies
PRO
2
620
Don't write the architecture only in the prompt.
neohsu
0
170
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
350
1週間、Opus封印でお願いします
kintotechdev
0
320
キヨさん67歳 AIコーディングエージェント物語
happysamurai294
0
120
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Everyday Curiosity
cassininazir
0
370
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
HDC tutorial
michielstock
2
980
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Code Review Best Practice
trishagee
74
20k
WENDY [Excerpt]
tessaabrams
14
40k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
560
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
470
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Transcript
ϚΠΫϩαʔϏεͷࢥ͔Βଊ͑Δ #BDLFOETGPS'SPOUFOETͱͦͷྨࣅύλʔϯ ٱଠ!RTPOB גࣜձࣾ'J/$ 6*55IFl#BDLFOETGPS'SPOUFOETzTIBSJOH
ࣗݾհ 2 • ໊લٱଠ !RTPOB • גࣜձࣾ'J/$ • ओʹαʔόαΠυΤϯδχΞ
͓खॊΒ͔ʹʂ • #''ྺ ʙ • .JDSPTFSWJDFT.FFUVQओ࠵
ΞδΣϯμ 3 ‣ ষ#''ͱɺͦͷҐஔ͚ͮͱత ‣ ষ#''ͱϚΠΫϩαʔϏεͷؔੑ ‣ ষ#''ͱͦͷྨࣅύλʔϯͷ࣮ફ
ΞδΣϯμ 4 ▾ ষ#''ͱɺͦͷҐஔ͚ͮͱత ‣ #''ͱʁ ‣ #''ͷཱͪҐஔ ‣ #''ͷతɾղܾ͢Δ՝
‣ ষ#''ͱϚΠΫϩαʔϏεͷؔੑ ‣ ষ#''ͱͦͷྨࣅύλʔϯͷ࣮ફ
#''ͱʁ 5 • ࢲݟ#'' #BDLFOETGPS'SPOUFOET ʹ গ͠༻ޠͷࠞཚ͕͋ΔΑ͏ʹࢥ͏ • ʮ4FSWFSTGPS'SPOUFOETʯ͕ΑΓ࣮ଶʹ͍ۙ •
'SPOUFOE#BDLFOEཧతͳྨ • $MJFOU4FSWFSཧతͳྨ
#''ͷཱͪҐஔ 6 • ཧత'SPOUFOEʹҐஔ͠ɺཧతʹ4FSWFSͰ͋Δ
#''ͷతɾղܾ͢Δ՝ 7 • ϚΠΫϩαʔϏεͷ"1*܈Λɺ6*͚ʹ߹͢Δ • ͜ͷൃදͰ͜ΕΛ۷ΓԼ͛Δ • ͦͷଞʹ͍Ζ͍Ζ͋Δ • Ωϟογϡ
6*ϨΠϠͷ"#ςετ FUD • ࠓ͍ΖΜͳࣄྫ͕ݟΕΔͣʂ
ΞδΣϯμ 8 ‣ ষ#''ͱɺͦͷҐஔ͚ͮͱత ▾ ষ#''ͱϚΠΫϩαʔϏεͷؔੑ ‣ ϚΠΫϩαʔϏεͱʁ ‣ ΫϥΠΞϯτͱϚΠΫϩαʔϏεͷؔ
‣ ϚΠΫϩαʔϏεͷ౷߹ͷํ๏ ‣ ষ#''ͱͦͷྨࣅύλʔϯͷ࣮ફ
ϚΠΫϩαʔϏεͱʁ 9 • ڠௐͯ͠ಈ࡞͢ΔɺখنͰࣗతͳαʔϏε • ֤ϏδωεΛ୲͢ΔνʔϜ͕ɺಠཱʹϦϦʔεαΠΫ ϧΛ࣋ͪɺߴʹ1%$"Λճ͢͜ͱ͕Ͱ͖Δ • 'J/$ͷαʔϏεΛྫʹͱͬͯઆ໌͢Δ •
'J/$ݸͷϚΠΫϩαʔϏεΛӡ༻த
10 'J/$ͷϓϩμΫτ ʙϔϧεέΞɾඒ༰ʹಛԽͨ͠&$αΠτʙ Ҩࢠใ ݂ӷݕࠪ݁Ռ ݈σʔλ νϟοτ ͍߹Θͤ ߪങཤྺ ࠂใ
ϩάΠϯ࣌ؒ ར༻ස ੜମใɾ׆ಈσʔλ ҩྍɾݕࠪσʔλ ߦಈཤྺ ͓Έ าɾ׆ಈྔ ݂ѹ ମௐɾؾ ৯ࣄ࣌ؒɾ༰ ਭɾब৸࣌ؒ ମॏɾମ ੜཧ ੜ׆श׳ ʙϨγϐϑΟοτωεϥΠϑϋοΫͷಈըίϯςϯ πʙ ࢟ ʙ'J/$๏ਓɾ݈อ͚ΣϧωειϦϡʔγϣϯʙ
'J/$ͷϓϩμΫτͱϚΠΫϩαʔϏε 11 • ֤ϓϩμΫτ͕ɺߋʹ༷ʑͳػೳΛแ͍ͯ͠Δ • ྫ'J/$ΞϓϦ • ϥΠϑϩά า ਭ
FUD • ϑΟοτωεத৺ͷಈըϝσΟΞ • ίϛϡχςΟػೳ • QVTI௨ ΦϯϘʔσΟϯά ͳͲ • ֤ػೳ૬ޓʹ࿈ܞ͍ͯ͠Δ • ྫา͘ͱϙΠϯτ͕Β͑Δ'J/$ϞʔϧͰ͑Δ • "1*࿈ܞඇಉظΠϕϯτ࿈ܞ
'J/$ͷϓϩμΫτͱϚΠΫϩαʔϏε 12 • ֤ػೳɺಠཱͯ͠େ͖ͳϏδωεʹҭ͍ͯͨ • 'J/$ͷϓϩμΫτͷػೳʹɺ୯ମͰࣄۀʹͳΓ͏Δ ͷ͕ͨ͘͞Μ͋Δ • ͦΕΒΛಠཱͯ͠αʔϏεʹΓग़͢͜ͱͰɺνʔϜ͕ ࣗɾಠཱͯ͠։ൃϦϦʔεαΠΫϧΛճ͠ɺߴʹ
1%$"͢Δ͜ͱ͕Ͱ͖Δ
• ϞϊϦγοΫαʔϏεͷ߹ • ΫϥΠΞϯτOαʔϏε ΫϥΠΞϯτͱαʔϏεͷؔ 13
• ϚΠΫϩαʔϏεͷ߹ • ΫϥΠΞϯτONαʔϏε ΫϥΠΞϯτͱαʔϏεͷؔ 14
• ͜ͷਤͷΑ͏ʹɺΓͱΓ͢ΔͱͲ͏ͳΔ͔ʁ ϚΠΫϩαʔϏεͷ౷߹ͷํ๏ 15
ΓͱΓ͢Δ 16 • ΫϥΠΞϯτʹछʑͷෳࡶ͕͋͞Δ • ༷ʑͳϗετΛΒͳ͚ΕͳΒͳ͍ • ը໘Λߏ͢Δͷʹෳճ"1*ϦΫΤετ͕ඞཁ •
୯Ұͷ#BDLFOEͰ͋Εɺ(SBQI2-͕Ұͭͷղܾࡦ • ෳͷϚΠΫϩαʔϏεͷݺͼग़͠ґવͱͯ͠ • ղܾࡦதؒʹαʔόΛஔʁ
"1*(BUFXBZύλʔϯ 17 • ͯ͢ͷαʔϏεΛू͠ɺ'SPOUFOE͚ʹఏڙ͢Δ ϨΠϠ
"1*(BUFXBZύλʔϯ 18 • ,POHͳͲͷ"1*(BUFXBZ͕͋Δ • "1*ूͷଞʹɺೝূɺྲྀྔ੍ޚͳͲΛͬͯ͘ΕΔ • جຊతʹ#BDLFOEͷΤϯδχΞ͕ཧ͢Δͷ
"1*(BUFXBZύλʔϯ 19 • "1*(BUFXBZʹಠࣗͷϩδοΫ࣋ͨͤʹ͍͘ • ϩδοΫΛ࣋ͭͱɺڊେͳ݁߹ϨΠϠʹͳΓɺΫϥΠΞϯ τͷ૿Ճʹରͯ͠εέʔϧ͠ͳ͍ • ༷ʑͳϩδοΫ͕ฆΕࠐΈ͘͢ͳΓɺ݁ՌతʹϚΠΫϩ
αʔϏεͷಠཱੑΛ્͍͢͠ • 'SPOUFOE͕ࣗ༝ʹ͑ΔϨΠϠͰͳ͍ • ෳͷϦιʔεΛϦΫΤετͰฒྻʹऔಘɺ Ͱ͖Δ ͋Δ • ෳͷϦιʔεΛϚʔδͯ͠ฦ͢ɺͳͲͰ͖ͳ͍
#''ύλʔϯ 20 • ΫϥΠΞϯτ͝ͱʹɺར༻͢ΔαʔϏεΛू͢Δ
#''ύλʔϯ 21 • "1*(BUFXBZύλʔϯͱࣅͯඇͳΔͷ • αʔϏεଆ͕ूͯ͠ఏڙ͢ΔͷͰͳ͘ɺ ϑϩϯτΤϯυଆ͕ࣗͰબΜͰू͍ͯ͠Δ • ϚΠΫϩαʔϏεͷࣗੑ͕อͨΕΔ
• ϑϩϯτΤϯυͷࣗ༝͕ߴ͍
'SPOUFOE❤#''❤#BDLFOE
#''ͷҙ 23 • ຊདྷόοΫΤϯυͰΔ͖ϩδοΫΛ #''ʹ࣋ͨͳ͍Α͏ʹ͢Δ • ྑ͘ͳ͍ྫ#''Ͱߋ৽ॲཧΛΦʔέετϨʔγϣϯ • ͍ͣΕ͔ͷόοΫΤϯυαʔϏε͕Ұٛతʹߋ৽ॲཧΛड ͚ɺͦͷαʔϏε͕ඇಉظΠϕϯτΛൃߦ͠ଞαʔϏεʹ
ͤ͞ΔͱΑ͍ • ϚΠΫϩαʔϏεශ݂ʹҙ • ۃྗόοΫΤϯυʹدͤΔҙࣝ
͜͜Ͱએ 24 • ٕज़ॻయͰʮ.JDSPTFSWJDFTBSDIJUFDUVSFΑΖͣຊʯ ͱ͍͏ಉਓࢽΛग़͠·ͨ͠ • 'J/$ͷΤϯδχΞਓͷڞஶ • ඇಉظΞʔΩςΫνϟ.JDSP'SPOUFOETͷͳͲΛղઆ ͍ͯ͠·͢ʂ
ΞδΣϯμ 25 ‣ ষ#''ͱɺͦͷҐஔ͚ͮͱత ‣ ষ#''ͱϚΠΫϩαʔϏεͷؔੑ ‣ ষ#''ͱͦͷྨࣅύλʔϯͷ࣮ફ ‣ 'J/$ͷ৽ࣄྫ#''GPSJ04"OESPJE"QQ
‣ .JDSP'SPOUFOET
ΞδΣϯμ 26 ‣ ষ#''ͱɺͦͷҐஔ͚ͮͱత ‣ ষ#''ͱϚΠΫϩαʔϏεͷؔੑ ‣ ষ#''ͱͦͷྨࣅύλʔϯͷ࣮ફ ‣ 'J/$ͷ৽ࣄྫ#''GPSJ04"OESPJE"QQ
‣ .JDSP'SPOUFOET
ߏਤ 27
J04 "OESPJEͰͭͷ#'' 28 • J04"OESPJEͰجຊతʹಉ͡ΞϓϦΛఏڙ͍ͯ͠Δ • ػೳɺը໘ߏɺભҠͳͲಉ͡ • ࡉ͔͍6*ϓϥοτϑΥʔϜ͝ͱʹҟͳΔ͕ɺ ͜Ε$MJFOUଆ͕୲͢Δɻ#''ͷͰͳ͍
• #''͕୲͢ΔϨΠϠɺΉ͠Ζڞ௨Խ͔ͨͬͨ͠ • %PNBJO%SJWFO%FTJHOͰݴ͏ͱ͜Ζͷ 3FQPTJUPSZͱ ͯ͠%PNBJO0CKFDUΛฦ͢ͱ͜Ζ·ͰΛຊ୲͍ͨ͠ • ݴޠͷน·ͨ͛ͳ͍ͷͰશͳ%PNBJO0CKFDUΛฦ͢ͷ ແཧ͕ͩɾɾɾ
8IZH31$ 29 • 31$ܗࣜͷݺͼग़͠ʹ͔ͨͬͨ͠ • ਖ਼֬ʹʮ3&45GVMආ͚͔ͨͬͨʯ͔ • ఏڙͷత͕୯ҰͰ͋ΓɺΫϥΠΞϯτΛڧ͘ҙࣝͨ͠"1* ʹͯ͠ͳ͍ Ή͠Ζ͢Δ͖
• 3&45GVMతͳ"1*ʹ͢Δͱɺ$MJFOUͰ+40/ΛϚοϓ͢Δίʔ υ͕ଟ͘ඞཁʹͳΔ • J04"OESPJEͰͷ࣮ͷࠩΛͳΔ͘ͳ͍ͨ͘͠ • ʮ#''31$తͳ"1*ఏڙΛ͖ͩ͢ʯͱ͍͏ࡶͳఏىΛ ͓ͯ͘͠ͷͰɺ࠙ձͱ͔Ͱ͍ٞͨ͠ • ܕཉ͔ͬͨ͠ 1SPUPDPM#VGGFST
8IZ,PUMJO 30 • 'SPOUFOEͷΤϯδχΞ͕ॻ͘͜ͱΛڧ͘ҙ͍ࣝͯ͠Δ • "OESPJEͰ,PUMJOΛ࠾༻͍ͯ͠Δ • J04 4XJGU ͔Βͷֶशίετ͍
• ʮฒྻॲཧʯͷཁ݅ΫϦΞͰ͖Δ • $PSPVUJOFTBSFFYQFSJNFOUBMJO,PUMJO • ฒྻॲཧɺ#''Ͱ΄΅ඞਢཁ݅Ͱ͋Δ • ฒྻॲཧͰ͍͑(P/PEFKTͷ͕ݱঢ়্
ΞδΣϯμ 31 ‣ ষ#''ͱɺͦͷҐஔ͚ͮͱత ‣ ষ#''ͱϚΠΫϩαʔϏεͷؔੑ ‣ ষ#''ͱͦͷྨࣅύλʔϯͷ࣮ફ ‣ 'J/$ͷ৽ࣄྫ#''GPSJ04"OESPJE"QQ
‣ .JDSP'SPOUFOET
ڀۃͷϚΠΫϩαʔϏε 32 • αʔϏε͕ಠཱͷσϓϩΠαΠΫϧΛ࣋ͪɺ Ϗδωεͷ1%$"ΛߴʹճͤΔ • ϏδωεόοΫΤϯυ͚ͩͰͳ͍ • 6*Ϗδωεʹؚ·ΕΔͣ •
νʔϜͷதʹ#BDLFOE୲ 'SPOUFOE୲͕͍ͯ ڠྗ͍ͯ͠Δͷ͕ཧ Ή͠Ζී௨ʁ • #'''SPOUFOEνʔϜͷ͚࣋ͪͩͲɺ 'SPOUFOEνʔϜͦͦϚΠΫϩαʔϏεͷཧͱ ͢Δʂ
αʔϏε͕6*ఏڙʁ 33 • ϚΠΫϩαʔϏε͕6*ίϯϙʔωϯτΛఏڙ͢Δ • $MJFOU͕ͦΕΛ౷߹͢Δ
JGSBNF 34 • JGSBNFΛར༻͢ΕͰ͖Δ • ֤αʔϏε௨ৗͷ)5.-Λఏڙ͢Δ • QPTU.FTTBHFͰΓͱΓ͢Δ
ڀۃͷ.JDSP'SPOUFOET 35 • ͦΕ8FC$PNQPOFOUTͰͰ͖ΔΑ • ֤αʔϏε$VTUPN&MFNFOUTΛఏڙ͢Δ • $VTUPN&WFOUTͰΓͱΓ͢Δ
.JDSP'SPOUFOETͷͱରࡦ 36 • 6* 69 ͷҰ؏ੑΛ୲อ͢Δͷ͕͍͠ • ΨΠυϥΠϯ6*ϥΠϒϥϦͰରॲ • খ͞ͳ'SPOUFOEνʔϜ͕
$MJFOUͱελΠϧΨΠυΛϝϯςφϯε͢Δ
.JDSP'SPOUFOETͷ͓ؾ࣋ͪ 37 • αʔϏεͷಠཱੑͱҰ؏ੑຊ࣭తʹτϨʔυΦϑ • τϨʔυΦϑΛཧղ͠ɺͦΕͧΕͰదͳબΛ • #''ͱͷϋΠϒϦουख๏औΕΔ • αʔϏεͷڥքͰ6*͕໌֬ʹ͔ΕΔͷɺ
αʔϏε͕6*࣋ͭ • ͦ͏Ͱͳ͍ͷ#''Ͱ"1*߹
ϋΠϒϦουख๏ 38
8FCҎ֎ͷ 39 • ωΠςΟϒΞϓϦͰʁ • جຊతʹ αʔϏε͕6*ΛఏڙͰ͖ͳ͍ • $MJFOUͷϞδϡʔϧԽΛۃྗϚΠΫϩαʔϏεͷ୯Ґʹ ߹Θ͍ͤͯ͘
• ߹ʹΑͬͯ8FC7JFX͋Δ
·ͱΊ 40 • ϚΠΫϩαʔϏεɺ֤ϏδωεΛಠཱͯ͠ߴʹ1%$" Λճ͍ͯͨ͘͠Ίͷख๏ • #''ɺϚΠΫϩαʔϏεͷ"1*౷߹Λߦ͏ • ֤'SPOUFOEͷॴ༗ͱͯ͠࡞Δ͜ͱͰɺ#BDLFOEͷಠཱੑ Λ୲อͨ͠··'SPOUFOE͕ࣗ༝ʹѻ͑Δ
• #''31$తͳ"1*ఏڙΛ͖ͩ͢ ࡶͳఏى • ͞ΒʹϏδωεͷಠཱΛߴΊΔख๏͕͋ΓɺτϨʔυ Φϑ͕ଘࡏ͢Δ