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
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
150
「地続き」の技術面接 / "Continuous" technical interview
euglena1215
0
83
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
320
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
290
ISUCONで型をつける
euglena1215
1
170
3年でバックエンドエンジニアが5倍に増えても破綻しなかったアーキテクチャ そして、これから / Software architecture that scales even with a 5x increase in backend engineers in 3 years
euglena1215
11
5.8k
モジュラモノリス、その前に / Modular monolith, before that
euglena1215
8
1.2k
いつか使える ObjectSpace / Maybe useful ObjectSpace
euglena1215
2
290
rbs-inlineを導入してYARDからRBSに移行する
euglena1215
1
1k
Other Decks in Technology
See All in Technology
書籍セキュアAPIについて
riiimparm
0
310
ここは地獄!つらい朝会を体験することで、チームとしてのより良い振る舞いに気づくワークショップ / The stand-up meeting from hell in the game industry
scrummasudar
0
300
Jitera Company Deck
jitera
0
460
Power Automateアップデート情報
miyakemito
0
160
Alphaモジュール使っていいのかい!?いけないのかい!?どっちなんだいっ!?
watany
1
330
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
260
20260720_クラウド女子会×PyLadiesTokyoコラボ Amazon Bedrock ハンズオン用資料
yuuka51
2
110
Multicaで30個のミニプロジェクトをAIエージェント運用して見えてきたこと
eiei114
1
650
「休む」重要さ
smt7174
6
1.7k
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
300
論語・武士道・産業革命から見る かわるもの、かわらないもの
ichimichi
5
500
人とエージェントが高め合う協業設計
kintotechdev
0
850
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
Navigating Team Friction
lara
192
16k
Chasing Engaging Ingredients in Design
codingconduct
0
240
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
260
So, you think you're a good person
axbom
PRO
2
2.1k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
410
Mobile First: as difficult as doing things right
swwweet
225
10k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
360
Are puppies a ranking factor?
jonoalderson
1
3.7k
Discover your Explorer Soul
emna__ayadi
2
1.2k
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/
·ͱΊ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ Ͱ͏·͘ར༻͢Ε ʮαʔϏε͕ෳࡶ͗ͯ͢։ൃͭΒ͍ʯ͔Β ʮαʔϏεΛ։ൃ͢ΔਓΓͳͯͭ͘Β͍ʯʹ εέʔϧՄೳͳ(ۚͰղܾͰ͖Δ)ͱϘτϧωοΫΛҠͤΔ
·ͱΊ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ ޙͷࣗͷੜ࢈ੑΛ֬อ͢ΔͨΊʹ֤Ґ͕Μ͍͖ͬͯ·͠ΐ͏ Ͱ͏·͘ར༻͢Ε ʮαʔϏε͕ෳࡶ͗ͯ͢։ൃͭΒ͍ʯ͔Β ʮαʔϏεΛ։ൃ͢ΔਓΓͳͯͭ͘Β͍ʯʹ εέʔϧՄೳͳ(ۚͰղܾͰ͖Δ)ͱϘτϧωοΫΛҠͤΔ