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
kosen12sLT_4.pdf
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Shintani Teppei
March 30, 2019
Technology
260
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
kosen12sLT_4.pdf
Shintani Teppei
March 30, 2019
More Decks by Shintani Teppei
See All by Shintani Teppei
すべてがオンボーディングタスクになる / Everything becomes an onboarding task
euglena1215
0
130
「地続き」の技術面接 / "Continuous" technical interview
euglena1215
0
71
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
310
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
290
ISUCONで型をつける
euglena1215
1
160
3年でバックエンドエンジニアが5倍に増えても破綻しなかったアーキテクチャ そして、これから / Software architecture that scales even with a 5x increase in backend engineers in 3 years
euglena1215
11
5.7k
モジュラモノリス、その前に / Modular monolith, before that
euglena1215
8
1.2k
いつか使える ObjectSpace / Maybe useful ObjectSpace
euglena1215
2
280
rbs-inlineを導入してYARDからRBSに移行する
euglena1215
1
980
Other Decks in Technology
See All in Technology
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
330
AIはどのように 組織のアジリティを変えるのか?
junki
1
560
脆弱性対応、どこで線を引くか
rymiyamoto
1
380
protovalidate-es を導入してみた
bengo4com
0
170
200個のGitHubリポジトリを横断調査したかった
icck
0
120
Dario Amodi『Policy on the AI Exponential』を理解する
nagatsu
0
230
ルールやカスタム機能、どう活かす?ハンズオンで体感するIBM Bobの出力コントロール
muehara
1
140
爆速でマルチプロダクトを立ち上げる時 事業・CTO目線で大事にしたい事
miyatakoji
0
110
FinOps × AIエージェントで実現する コストインシデントの自動調査
oasis1994liveforever
0
130
EventBridge Connection
_kensh
5
700
中期計画、2回作ってみた ~業務委託と正社員、両方の視点から~
demaecan
1
700
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
890
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
230
How STYLIGHT went responsive
nonsquared
100
6.2k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
330
WCS-LA-2024
lcolladotor
0
630
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
The Cult of Friendly URLs
andyhume
79
6.9k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
160
Tell your own story through comics
letsgokoyo
1
950
Documentation Writing (for coders)
carmenintech
77
5.4k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
140
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Transcript
ϞϊϦεΛখ͘͢͞ΔͭΒΈ kosen12s LT#4 Shintani Teppei (@euglena1215)
͍͑ͨ͜ͱ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ Ͱ͏·͘ར༻͢Ε αʔϏεͷण໋ΛԆ͢͜ͱ͕Ͱ͖Δ(͔)
ͭΒΈΛ͢લʹ •ɹͦͦͳͥਓྨϚΠΫϩαʔϏεԽΛ͕ͨ͠Δͷ͔ʁ •ɹͦͦϚΠΫϩαʔϏεͱʁ
What is microservices? • ༧ݴऀ Martin Fowler͕ఏএ • ϚΠΫϩαʔϏεΞʔΩςΫνϟελΠϧ୯ҰͷΞϓϦέʔγϣϯΛখ ͞ͳαʔϏε܈ͷΈ߹Θͤͱͯ͠ߏங͢Δख๏
ref: https://martinfowler.com/articles/microservices.html
ref: https://martinfowler.com/articles/microservices.html
ϚΠΫϩαʔϏεԽͷϝϦοτ • ։ൃ࣌ʹߟ͑ͳ͍ͱ͍͚ͳ͍είʔϓ͕ڱ͘ͳΔ • “ਖ਼͘͠αʔϏεͷΓ͚͕Ͱ͖Ε” ࣗͷαʔϏεͷ͜ͱ͚ͩΛߟ͑ΕΑ͘ͳΔ • োͷൖͷ࠷খԽ • αʔϏε͝ͱʹαʔόʔΛىಈͤ͞ΔͷͰෆྀͷࣄނʹΑΓαʔόʔ͕ͪΐͬ͜ͱαʔόʔ͕མͪͨͱ
ͯ͠”ਖ਼࣮͍ͯ͘͠͠Ε”αʔϏεશମͷμϯ͕໔ΕΔ • αʔόʔεϖοΫͷ࠷దԽ • αʔϏε͝ͱʹཁٻ͞ΕΔύϑΥʔϚϯε͕ҧͬͨΓ͢ΔͷͰ”ͪΌΜͱΠϯϑϥΛཧͰ͖ͯΕ” ʮ͜ͷαʔϏεϝϞϦϚγϚγͰʯ͕؆୯ʹͰ͖Δ • CIͷߴԽ • ଞαʔϏεͷॲཧmockͯ͠ςετΛॻ͘ͷͰঢ়ଶͷֻ͚ࢉ͕ݮͬͯςετ͕؆ܿʹͳΔ • ਖ਼͘͠mock͢ΔͷΊͪΌେม • Ϟμϯͳ։ൃΛͯͦ͠͏ͳงғؾ͕ग़Δ • ຊ͔ͳΓటष͍
લఏ ྫͱͯ͠ԫ৭ΞΠίϯͷϓϩάϥϚͷͨΊͷ ٕज़ใڞ༗αʔϏεΛϚΠΫϩαʔϏεԽΛఆ ※ தΛݟͨ͜ͱͳ͍ͷͰશʹໝͰ͢ • ϚΠΫϩαʔϏε࠷ߴʂͬͯΛΑ͘ฉ͘ͷͰͬͯΈΔ͜ͱʹͨ͠ • ͱ͍͑ػೳ։ൃΛࢭΊΔΘ͚ʹ͍͔ͳ͍ͷͰ2νʔϜʹ͚ͯ ฒߦͯ͠ਐΊ͍ͯ͘
ঢ়گ
None
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙݱࡏʙ
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job ػೳ։ൃνʔϜʹΑΔʮJobػೳʯͷՃ
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job ϚΠΫϩαʔϏεԽ͠Α͏ʂʂʂ
Α͏ͦ͜ࠈ
ࠈͷ͓ॻ͖ ᶃ ཧ͢Δαʔό૿͑Δࠈ ᶄ ϩάऩूͲ͏͢ΔΜͩࠈ ᶅ ࠷దͳݴޠͰ࣮ͨ͘͠ͳͬͯ͘Δࠈ ᶆ JOIN, τϥϯβΫγϣϯ,
֎෦ࢀর੍͑ͳ͍ࠈ ᶇ ϙϦϞʔϑΟοΫςʔϒϧࠈ ᶈ Ϩίʔυอଘ࣌ͷؔ࿈ςʔϒϧߋ৽callback֎͢ࠈ ᶉ Ҡߦظؒͷίʔυڞ༗Ͳ͏͢Δ͔ࠈ ᶊ ΫϥΠΞϯταΠυԿͱ௨৴͢Ε͑͑Μࠈ ᶋ ͦͦυϝΠϯڥքมΘΔࠈ ᶌ ϚΠΫϩαʔϏε͚͗ͯ͢͠·ͬͨࠈ and many more…
ᶃ ཧ͢Δαʔό૿͑Δࠈ • ͍··Ͱ1ͭͰ͍݁ͤͯͨ͞αʔόΛෳʹ͚Δ • Ͳ͔͜ͰҰݩཧ͢Δඞཁੑ͕ग़ͯ͘Δ • ΠϯϑϥͳΜͰͬͯΔchigita͞Μ͕શͯख࡞ۀͰཧͯͨ͠Β • →
chigita͞Μͷୀ৬ = αʔϏεऴྃͷ͓Βͤ
ᶃ ཧ͢Δαʔό૿͑Δࠈ ͦΜͳ͋ͳͨʹɿInfrastructure as Code(IaC) • ϓϩϏδϣχϯάɺ֤αʔόͷཁٻੑೳΛશͯίʔυͰཧ͢Δ • →ଐਓԽΛͳ͘͢ •
࠷ۙΑ͘ฉ͘ͷTerraformΛͬͯk8s(GKE/EKS)ECSΛཧ͢Δ • ͜ͷลͷಋೖҰேҰ༦Ͱ·ͣແཧ • αʔόཧʹΦʔφʔγοϓΛ࣋ͭΠϯϑϥΤϯδχΞඞਢ Terraform ɾɾɾ༗໊ͳΫϥυαʔϏεΛڞ௨ͷॻ͖ํͰίʔυԽͰ͖Δπʔϧ k8s(kubernetes)ɾɾɾͨ͘͞Μͷdocker containerΛ͍͍ײ͡ʹཧ͢ΔϑϨʔϜϫʔΫ(OSS) GKE/EKSk8sͷSaaS ECS ɾɾɾEKSͱҧ͍͕͔ΒΜɻ୭͔ڭ͑ͯ΄͍͠
ᶄ ϩάऩूͲ͏͢ΔΜͩࠈ • هࣄϚΠΫϩαʔϏε͕όάͬͯΔ͜ͱ͜ͱ͕໌ • όάͷݪҼΛಥ͖ࢭΊ͍ͨ • ࠓ·ͰstacktraceΛݟΕϝιουͷݺͼग़͠ݩ͕͔ΔͷͰ͙͢ݪҼ Λಥ͖ࢭΊΔ͜ͱ͕Ͱ͖͍ͯͨ •
αʔϏε͕͔ΕΔͱstacetraceʹදࣔ͞Εͳ͘ͳΔͷͰ stacktraceʹରԠ͢ΔͷΛ࠶࣮͢Δඞཁ͕͋Δ
ᶄ ϩάऩूͲ͏͢ΔΜͩࠈ ͦΜͳ͋ͳͨʹɿؤு࣮ͬͯ or ۚͷؙ • ؤு࣮ͬͯ • ֤ϚΠΫϩαʔϏεؒͷϦΫΤετʹUUIDΛ༩ͯ͠௨৴Λߦ͏͜ͱʹΑΓ ͋ͱͰ௨৴ܦ࿏ΛௐΒΕΔΑ͏ʹ͢Δ
• ۚͷؙ • ্هͷػೳΛఏڙͯ͘͠ΕͯΔSaaS(AWS X-Ray)Λ͏
ᶅ ࠷దͳݴޠͰ࣮ͨ͘͠ͳͬͯ͘Δࠈ ͦΜͳ͋ͳͨʹɿզຫ͢Δ ࠷దͳݴޠͰͷ࠶࣮ϚΠΫϩαʔϏεԽ͕ࡁΜͰ͔Β ϚΠΫϩαʔϏεԽͱ࠶࣮ͱಉ࣌ʹߦ͏ͱઈରʹऴΘΒͳ͍ ʮRuby͍͠ܕͳ͍͠GoͰॻ͖͑ͨ͘ͳ͍ʁʯ
ᶆ JOIN, τϥϯβΫγϣϯ, ֎෦ࢀর੍͑ͳ͍ࠈ • DBΛ͚Δͱ͍͏͜ͱࠓ·ͰͷਓྨͷӥஐΛࣺͯΔͱ͍͏͜ͱ • ҟͳΔDBಉ࢜ͷJOINͰ͖ͳ͍͠ɺτϥϯβΫγϣϯషΕͳ͍ɺ ֎෦ࢀর੍͑ͳ͍ •
ͱ͍͑σʔλෆ߹Λى͜͢Θ͚ʹ͍͔ͳ͍ͷͰαʔϏεؒ௨৴ͷҝͷผͷΈ Λ༻ҙ͢Δඞཁ͕͋Δ • API callʁ HTTPԆͯͳ͘ͳ͍ʁ • ඇಉظॲཧʁ σʔλෆ߹ͷՄೳੑ͋ΔΑͶʁ • ͜͜ཁ݅ͱʹΒΊͬͯ͜͠ͲͪΒ͕ྑ͍ͷ͔அ͢Δඞཁ͕͋Δ • Ԇͤ͞ΒΕͳ͍͠ෆ߹ࠔΔ௨৴͕͋Δ߹ಉҰαʔϏεʹ ஔ͍͓͔ͯ͘͠ͳ͍
ᶆ JOIN, τϥϯβΫγϣϯ, ֎෦ࢀর੍͑ͳ͍ࠈ ͦΜͳ͋ͳͨʹɿؤு࣮ͬͯ • ͜͜ؤுΔ͔͠ͳ͍ • ࣗͷͱ͜Ζͷ߹ •
API call → ϨεϙϯεJSONܗࣜͰͳ͘protobufܗࣜͰ௨৴ • ඇಉظॲཧ → Cloud Pub/SubΛͬͯpub/subͰΓऔΓ • payloadͷserializeAPI callͱಉ༷ͷprotobufܗࣜͰߦͳ͍ͬͯΔ pub/subɾɾɾ1ݸͷpublisherͱNݸͷsubscriber͕ඇಉظతʹΓͱΓΛ͢ΔΈɻCloud Pub/SubͦͷSaaS protobufɾɾɾσʔλࣗମόΠφϦͰૹ৴࣌/ड৴࣌ʹserialize/deserializeΛߦ͏ɻJSONͱͷҧ͍ܕ͕͍ͭͯΔ
ᶇ ϙϦϞʔϑΟοΫςʔϒϧࠈ • ϚΠΫϩαʔϏεΓग़͕࢝͠·ͬͯޙ… • ʮ͋Εɺλά͕هࣄ͚ͩ͡Όͳͯ͘Ϣʔβʔʹඥ͍ͮͯΔͧ…ʁʯ ࣌ؒͳ͚Εskip
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job
ᶇ ϙϦϞʔϑΟοΫςʔϒϧࠈ • Ϣʔβʔొ͢Δͱ͖ʹهࣄαʔϏεϦΫΤετ͠ͳ͍ͱ͍͚ͳ͍σΟετϐΞͷੜ • ʮهࣄλάʯςʔϒϧͱʮϢʔβʔλάʯςʔϒϧʹ͚ͯɺͦΕͧΕͷϚΠΫϩαʔϏ εʹ࣋ͨͤΔ • ݱ࣮ͷαʔϏεͰେͳʹͳΔͷͰશ෦͚Δͷۤߦofۤߦ •
͚Δඞཁͷ͋Δσʔλͱ͚ͳ͍͍ͯ͘σʔλΛਫ਼ࠪ͠ͳ͕ΒਐΊ͍͖ͯ͘
ᶇ ϙϦϞʔϑΟοΫςʔϒϧࠈ • Ϣʔβʔొ͢Δͱ͖ʹهࣄαʔϏεϦΫΤετ͠ͳ͍ͱ͍͚ͳ͍σΟετϐΞͷੜ • ʮهࣄλάʯςʔϒϧͱʮϢʔβʔλάʯςʔϒϧʹ͚ͯɺͦΕͧΕͷϚΠΫϩαʔϏ εʹ࣋ͨͤΔ • ݱ࣮ͷαʔϏεͰେͳʹͳΔͷͰશ෦͚Δͷۤߦofۤߦ •
͚Δඞཁͷ͋Δσʔλͱ͚ͳ͍͍ͯ͘σʔλΛਫ਼ࠪ͠ͳ͕ΒਐΊ͍͖ͯ͘ ͦΜͳ͋ͳͨʹɿؤு࣮ͬͯ
ᶈ Ϩίʔυอଘ࣌ͷؔ࿈ςʔϒϧߋ৽callback֎͢ࠈ • ͦΕͧΕͷϚΠΫϩαʔϏε͕ࣗΦʔφʔγοϓΛ͍࣋ͬͯΔςʔϒϧ͚ͩૢ࡞ͯ͠΄ ͍͠ • Ϩίʔυ͕আ͞ΕͨΒࢠϨίʔυҰॹʹআ͢Δ or ֎෦Ωʔͷͱ͜ΛNULLʹ͢Δ •
Φʔφʔγοϓ֎ͷϨίʔυΛมߋ͍ͨ͠߹ଟʑ͋Δ • ී௨Ͱ͋ΕO/R mapperwebϑϨʔϜϫʔΫ͕͍͍ײ͡ʹͬͯ͘ΕΔػೳΛ ࠶࣮͢Δඞཁ͕͋Δ ࣌ؒͳ͚Εskip
ᶈ Ϩίʔυอଘ࣌ͷؔ࿈ςʔϒϧߋ৽callback֎͢ࠈ • ͦΕͧΕͷϚΠΫϩαʔϏε͕ࣗΦʔφʔγοϓΛ͍࣋ͬͯΔςʔϒϧ͚ͩૢ࡞ͯ͠΄ ͍͠ • Ϩίʔυ͕আ͞ΕͨΒࢠϨίʔυҰॹʹআ͢Δ or ֎෦Ωʔͷͱ͜ΛNULLʹ͢Δ •
Φʔφʔγοϓ֎ͷϨίʔυΛมߋ͍ͨ͠߹ଟʑ͋Δ • ී௨Ͱ͋ΕO/R mapperwebϑϨʔϜϫʔΫ͕͍͍ײ͡ʹͬͯ͘ΕΔػೳΛ ࠶࣮͢Δඞཁ͕͋Δ ͦΜͳ͋ͳͨʹɿؤு࣮ͬͯ
ᶉ Ҡߦظؒͷίʔυڞ༗Ͳ͏͢Δ͔ࠈ • ϚΠΫϩαʔϏεԽʹ͋ͨͬͯผϦϙδτϦʹίʔυΛҠ͍ͯ͘͠ඞཁ͕͋Δ • Ͱػೳ։ൃνʔϜΰϦΰϦػೳ࡞ͬͯΔͷͰҠͦ͏ʹҠͤͳ͍
ᶉ Ҡߦظؒͷίʔυڞ༗Ͳ͏͢Δ͔ࠈ • ϚΠΫϩαʔϏεԽʹ͋ͨͬͯผϦϙδτϦʹίʔυΛҠ͍ͯ͘͠ඞཁ͕͋Δ • Ͱػೳ։ൃνʔϜΰϦΰϦػೳ࡞ͬͯΔͷͰҠͦ͏ʹҠͤͳ͍ ͦΜͳ͋ͳͨʹɿ͕ΜΔ 1. ϞϊϦγοΫͳΞϓϦέʔγϣϯʹϚΠΫϩαʔϏεʹରԠ͢ΔॲཧΛߦ͏ ΫϥεΛ࡞࣮ͬͯΛҠ͍ͯ͘͠(·ͩಉ͡ϦϙδτϦ)
2. ϚΠΫϩαʔϏεʹରԠ͢ΔॲཧΛॻ͍ͨΫϥεΛڞ௨ϥΠϒϥϦԽ • ػೳ։ൃνʔϜͦͷϥΠϒϥϦʹมߋΛՃ͑ͯΒ͏Α͏ʹ͢Δ 3. ৽͘͠ϦϙδτϦΛ࡞Γڞ௨ϥΠϒϥϦΛͬͯϚΠΫϩαʔϏεΛ࡞͍ͬͯ͘ 4. ϞϊϦε͔Βஈ֊తʹڞ௨ϥΠϒϥϦΛൈ͍͍͖ͯ࠷ऴతʹϥΠϒϥϦফ໓
ᶊ ΫϥΠΞϯταΠυԿͱ௨৴͢Ε͑͑Μࠈ • ϚΠΫϩαʔϏεԽͯ͠όοΫΤϯυ͞Εͯ៉ྷʹͳͬͨ • ΫϥΠΞϯτΞϓϦΛಈ͔ͨ͢Ίʹͨ͘͞Μͷαʔόͱ௨৴Λ͠ͳ͍ͱ ͍͚ͳ͘ͳͬͨ • ΞϓϦΤϯδχΞɺౖΓڰ͏
ᶊ ΫϥΠΞϯταΠυԿͱ௨৴͢Ε͑͑Μࠈ ͦΜͳ͋ͳͨʹɿBackend For Frontend(BFF) • ΫϥΠΞϯτͱόοΫΤϯυͷதؒཧ৬తͳଘࡏ(proxy server) • ΫϥΠΞϯτ͔Βཉ͍͠ใͷϦΫΤετ͕ಧ͘ͱόοΫΤϯυ(ϚΠΫϩ
αʔϏε)ʹ͍߹ΘͤͯΑ͠ͳʹσʔλΛऔ͖ͬͯͯ͘ΕΔ • ΫϥΠΞϯτBFFͱ௨৴͢Δ͚ͩͰΑ͘ͳΔ • ΫϥΠΞϯτͱBFFGraphQLͰΓऔΓ͢Δ͜ͱ͕ଟ͍ؾ͕͢Δʁ GraphQLɾɾɾ୯ҰͷΤϯυϙΠϯτʹରͯ͠POSTΛߦ͍ɺbodyʹΫΤϦΛ༩͢Δ͜ͱʹΑΓཉ͍͠σʔλΛ ɹɹɹɹɹɹɹऔಘͰ͖ΔΑ͏ʹ͢ΔΈɻJSONͱҧͬͯܕ͕͍ͭͯΔͷ͕خ͍͠ɻ
ᶋ ͦͦυϝΠϯڥքมΘΔࠈ • ϚΠΫϩαʔϏεΓग़࢝͠·ͬͯिؒޙ • ʮJobͷࢪࡦͱͯ͠هࣄʹJobΛඥ͚͍ͮͨͰ͢ʯ
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job
ᶋ ͦͦυϝΠϯڥքมΘΔࠈ • ϚΠΫϩαʔϏεΓग़࢝͠·ͬͯिؒޙ • ʮJobͷࢪࡦͱͯ͠هࣄʹJobΛඥ͚͍ͮͨͰ͢ʯ • ຊJob୯ମͰϚΠΫϩαʔϏεͱͯ͠Γ͚Δ͖ͩͬͨ • ϚΠΫϩαʔϏεΓग़͠ͷஈ֊ͰఆͰ͖ͳ͍͜ͱ
ᶋ ͦͦυϝΠϯڥքมΘΔࠈ • ϚΠΫϩαʔϏεΓग़࢝͠·ͬͯिؒޙ • ʮJobͷࢪࡦͱͯ͠هࣄʹJobΛඥ͚͍ͮͨͰ͢ʯ • ຊJob୯ମͰϚΠΫϩαʔϏεͱͯ͠Γ͚Δ͖ͩͬͨ • ϚΠΫϩαʔϏεΓग़͠ͷஈ֊ͰఆͰ͖ͳ͍͜ͱ
ͦΜͳ͋ͳͨʹɿ1ճϞϊϦεʹ͚ͬͭͯ͘͠࠶Γग़͠ Railsͷ࡞ऀ DHH͕ӡӦͯ͠ΔαʔϏε basecamp3ճॻ͖ͯ͠ΔΒ͍͠
ᶌ ϚΠΫϩαʔϏε͚͗ͯ͢͠·ͬͨࠈ • ϚΠΫϩαʔϏεʹ͚·ͬͨ݁͘Ռɺੜ࢈ੑ͕͔ͳΓ্͕ͬͨ • ΤϯδχΞ2ਓͰ1ͭͷϚΠΫϩαʔϏεΛݟΔ·Ͱʹ • ηΩϡϦςΟύονΛͯΕΔαʔϏε͕ग़ͯ͘Δ • ਓ͕গͳ͍ɺαʔϏεؒͰίʔυʹ͕ࠩग़ͯ͠·͏
• ಛఆͷσβΠϯύλʔϯଟ༻͢ΔϚϯͱ͔ ref: https://speakerdeck.com/ota42y/how-should-we-face-with-microservices-wo- hamaikurosabisutodouxiang-kihe-ubekika
ᶌ ϚΠΫϩαʔϏε͚͗ͯ͢͠·ͬͨࠈ ͦΜͳ͋ͳͨʹɿਓΛ૿͢ • Γ߹͍Λwanted͠·͠ΐ͏ ͓͢͢ΊͷαʔϏεͪ͜Βɿhttps://www.wantedly.com/
·ͱΊ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ Ͱ͏·͘ར༻͢Ε ʮαʔϏε͕ෳࡶ͗ͯ͢։ൃͭΒ͍ʯ͔Β ʮαʔϏεΛ։ൃ͢ΔਓΓͳͯͭ͘Β͍ʯʹ εέʔϧՄೳͳ(ۚͰղܾͰ͖Δ)ͱϘτϧωοΫΛҠͤΔ
·ͱΊ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ ޙͷࣗͷੜ࢈ੑΛ֬อ͢ΔͨΊʹ֤Ґ͕Μ͍͖ͬͯ·͠ΐ͏ Ͱ͏·͘ར༻͢Ε ʮαʔϏε͕ෳࡶ͗ͯ͢։ൃͭΒ͍ʯ͔Β ʮαʔϏεΛ։ൃ͢ΔਓΓͳͯͭ͘Β͍ʯʹ εέʔϧՄೳͳ(ۚͰղܾͰ͖Δ)ͱϘτϧωοΫΛҠͤΔ