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
Middleman on Production
Search
Hirofumi Wakasugi
May 19, 2017
Programming
0
180
Middleman on Production
Middleman の本番運用とそれを支えるサービスとか
Hirofumi Wakasugi
May 19, 2017
Tweet
Share
More Decks by Hirofumi Wakasugi
See All by Hirofumi Wakasugi
Racc Introduction
5t111111
1
470
Keep Calm and Enjoy Gachima
5t111111
3
380
Swift Functional Programming
5t111111
0
300
名古屋Ruby会議03 高速一言感想
5t111111
3
1.1k
ドキュメント翻訳懺悔のLT ~進捗ダメです~
5t111111
1
690
UFO演算子について
5t111111
0
380
Rubyと戯れるOSS DTM
5t111111
4
800
Rubyの拡張をCrystalで書いてみる
5t111111
0
150
YARV INTRODUCTION
5t111111
0
110
Other Decks in Programming
See All in Programming
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
260
コードとあなたと私の距離 / The Distance Between Code, You, and I
hiro_y
0
190
SODA - FACT BOOK(JP)
sodainc
1
8.7k
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
150
AI Agent 時代的開發者生存指南
eddie
4
2.1k
kiroとCodexで最高のSpec駆動開発を!!数時間で web3ネイティブなミニゲームを作ってみたよ!
mashharuki
0
890
Building, Deploying, and Monitoring Ruby Web Applications with Falcon (Kaigi on Rails 2025)
ioquatix
4
2.5k
Android16 Migration Stories ~Building a Pattern for Android OS upgrades~
reoandroider
0
130
チームの境界をブチ抜いていけ
tokai235
0
220
マンガアプリViewerの大画面対応を考える
kk__777
0
150
contribution to astral-sh/uv
shunsock
0
530
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
34k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
How to Ace a Technical Interview
jacobian
280
24k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Build your cross-platform service in a week with App Engine
jlugia
233
18k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
Designing for Performance
lara
610
69k
YesSQL, Process and Tooling at Scale
rocio
173
15k
Transcript
.*%%-&."/ POQSPEVDUJPO 2017/05/19 Tokyo Middleman Meetup #3 Hirofumi Wakasugi (@5t111111)
ࣗݾհ w !)JSPGVNJ8BLBTVHJ !U w !αʔόʔαΠυͰ3VCZPO3BJMT͕ϝΠϯͳϑϦʔϥϯεͰ͢ w ❤4XJGU--7.
None
.JEEMFNBOຊ൪Ͱͬͯ·͢ w ίʔϙϨʔταΠτςΟβʔαΠτ-1 w ϒϩάχϡʔεϖʔδ w ΞʔςΟετΠϕϯταΠτݸਓγϣοϓͱ͔ &$ผαʔϏεͱ͔Ͱ
w FUD ͪΖΜϓϩτλΠϐϯάͰ͏͜ͱ͋Δ
੩తαΠτ͚αʔϏεͷॆ࣮
.JEEMFNBOͷӡ༻Λࢧ͑Δͷͨͪ
"NB[PO4 4UBUJD8FCTJUF)PTUJOH
"NB[PO4 w આ໌ෆཁͳΫϥυετϨʔδαʔϏε w 4UBUJD8FCTJUF)PTUJOHͱ͍͏ػೳͰ੩తαΠτͷϗεςΟϯά͕Մೳ w ͜ͷػೳΛ$*ͱΈ߹Θͤͯ੩తαΠτͷߋ৽γεςϜΛߏங͢Δ
%&7&-01.&/5 130%6$5*0/4
%&7&-01.&/5
%&7&-01.&/5 3&104*503: 164)
%&7&-01.&/5 3&104*503: 164) $*#6*-% 16--
%&7&-01.&/5 3&104*503: 164) $*#6*-% 16-- 130%6$5*0/4 165 45"(*/(4 165
%&7&-01.&/5 3&104*503: 164) $*#6*-% 16-- 130%6$5*0/4 165 %*453*#65*0/ 45"(*/(4
165 $"$)&
%&.0
1SPT w 8FCαʔόʔͷߏங͕ෆཁ w %PDLFSίϯςφͰ.JEEMFNBO্ཱ͕͕ͪΔͷͰ։ൃڥͷߏஙෆཁ w "$.͕͑Δ w (JU
(JU)VC 'MPXతʹϦϦʔε࡞ۀ·Ͱ(JU)VC্ͷૢ࡞͚ͩͰ݁Ͱ͖Δ w ͍͍҆εέʔϥϒϧ
$POT w 44-ԽͷͨΊʹ$MPVE'SPOU͕ඞਢ ΩϟογϡઓུͪΌΜͱΔඞཁ͕͋Δ w ݁ہڥߏஙͷͭΒΈ͋Δ ϫϯόΠφϦͷ)VHPݟͪΌ͏ͱͳ͊ʜ
w 4UBUJD8FCTJUF)PTUJOHͷػೳΛ͏ͱ4ͷΤϯυϙΠϯτ௵ͤͳ͍ w (JU)VC1BHFTͷΑ͏ͳαʔϏεͰेͳ߹ଟ͍ͱࢥ͏
.JEEMFNBOͱ4Ͱ շదͳ੩తαΠτӡ༻Λ⭐ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
ʁ
͓͍߹Θͤ ϑΥʔϜ͕ཉ͍͠ʁ
(PPHMF'PSNT/( NBJMUPʜ͍͍Θ͚ͳ͍
ϑΥʔϜΛઃஔ͢Δ߹ w Ͳ͏ͯ͠΄ͱΜͲͷ߹όοΫΤϯυ͕ඞཁʹͳΔ w .JEEMFNBOʹ4JOBUSBΛϚϯτ͢Δͱ͔Ͱ͖Δ͕੩తαΠτͷར͕௵ΕΔ w ͏·͍͜ͱόοΫΤϯυଆͷॲཧ͚ͩͲ͏ʹ͔Ͱ͖Ε͍͍͚Ͳʜ
"NB[PO"1*(BUFXBZ "NB[PO-BNCEB 4FSWFSMFTT"SDIJUFDUVSF
"1*(BUFXBZ -BNCEB w "1*(BUFXBZͰ"84্ʹ"1*ͷ3&45GVMͳΤϯυϙΠϯτΛ࡞Δ͜ͱ͕Ͱ͖Δ w ΤϯυϙΠϯτͰड͚ͨϦΫΤετΛ-BNCEBGVODUJPOͰॲཧͰ͖Δ w ͋ͱ4ʹσʔλΛ֨ೲͨ͠Γϝʔϧ௨͢Ε͍͍ w
͍ΘΏΔ4FSWFSMFTT"SDIJUFDUVSFͷจ຺
$-*&/54
$-*&/54 "1*&/%10*/5 46#.*5
$-*&/54 "1*&/%10*/5 46#.*5 '6/$5*0/ */70,&
$-*&/54 "1*&/%10*/5 46#.*5 '6/$5*0/ */70,& /05*'*$"5*0/ 4%"5"4503& 165
$-*&/54 "1*&/%10*/5 46#.*5 '6/$5*0/ */70,& /05*'*$"5*0/ 4%"5"4503& 165 "((3&("5*0/ 26&3:
%&.0
੩తΣϒαΠτ 4FSWFSMFTT"SDIJUFDUVSF❤ w #BB4'BB4ͷॆ࣮͕͔ͳΓ੩తΣϒαΠτʹͱ͍ͬͯ෩ʹͳ͍ͬͯΔ ΤίγεςϜൃలͭͭ͋͠Δ -BNCEBσϓϩΠπʔϧͳͲ w ϑϧϚωʔδυͳαʔϏεͷར༻ʹΑΓ0QTͷίετΛେ෯ʹܰݮ
.JEEMFNBOͰ4FSWFSMFTTʹ շదͳ੩తαΠτӡ༻Λ⭐ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
ʁ
χϡʔεϖʔδͷߋ৽Λ ࣗͰΓ͍ͨʁ
ίϯςϯπͷߋ৽͕ߴ͍ w χϡʔεϒϩάͷΑ͏ͳ؆୯ͳίϯςϯπΫϥΠΞϯτࣗͰߋ৽͍ͨ͠ w $.4ͷΑ͏ʹ8:4*8:(ͳฤूը໘͕͋ΔΘ͚Ͱͳ͍ w .JEEMFNBOىಈͯ͠ΤσΟλͰฤूͯ͠QVTIͯ͠Β͏ʁ·͔͞ʜ w 4FSWFSMFTTؾ߹͍Ͱ͕Μͬͯ+40/ฦ͢ͱ͔Ͱ͖ΔͩΖ͏͚Ͳʜ͏ʔΜ
(JU)VC "TB$POUFOU.BOBHFNFOU4ZTUFN
(JU)VCBTB$.4 w (JU)VCʹϑΝΠϧͷฤूΞοϓϩʔυػೳ͕͋Δ w .BSLEPXOͷϓϨϏϡʔػೳ͋Δ w ͋Εʁ͜Ε(JU)VC্Ͱฤूͯ͠QVTIͯ͠Β͏͘Β͍ͳΒͰ͖ΔΜ͡Όͳ͍ʁ
%&.0
(JU)VCBTB$.4 w ؆қͳίϯςϯπͷߋ৽Ͱ͋Ε(JU)VCͰेͳ߹͋Δ w ϢʔβʔͷೝূೝՄͷཧͳͲΛ(JU)VCʹͤΒΕΔ w QVTI$*EFQMPZͷྲྀΕΛ࡞͓͚ͬͯ(JU)VCҎ֎৮Βͳ͍͍ͯ͘ w Γ͍ͨ͜ͱ࣍ୈ͚ͩͲˢ͘Β͍ͳΒ$.4ͷֶशίετΑΓ͍͘Β͍
w ͚Ͳɺ$.4తͳ6*ʹ࠷ॳ͔Β׳Ε͍ͯΔਓ͕ଟ͍ w ߋ৽͕සൟͰ͋ΕͬͺΓී௨ʹ$.4ͷํ͕͍͍ʜ w (JU)VCGPS"UPNͷొͳͲͰࠓޙঢ়گมΘ͍͔ͬͯ͘
·ͱΊ w ੩తαΠτΛ͏͖͔Ͳ͏͔݁ہΓ͍ͨ͜ͱ࣍ୈ w ޙ͔ΒࠔΒͳ͍Α͏ʹͪΌΜͱώΞϦϯά͠·͠ΐ͏Ͷʜͱ͍͏ʜ w ͨͩɺհͨ͠Α͏ͳαʔϏεͷॆ࣮Ͱ੩తαΠτͷద༻ൣғ࣮֬ʹ૿͍͑ͯΔ w ΣϒΞϓϦέʔγϣϯΛߏங͢Δલʹ੩తαΠτͰͷϑΟδϏϦΛݕ౼͢ΔՁ͋Δ
w 41"ͷྲྀΕ͋ΔͷͰɺͦͷͰϑϩϯτ͕੩తαΠτͱ͍͏ιϦϡʔγϣϯ༗
IUUQTXXXTUBUJDHFODPN ੩తαΠτͷݱঢ়
.JEEMFNBO w .JEEMFNBO͏ϞμϯͳπʔϧͰͳ͍ɻ͕ɺ͏ϝϦοτ·ͩ·ͩ͋Δͱࢥ͏ ˒ ϒϩάͷΑ͏ͳ୯७ͳͷ͚ͩͰͳ͘ͲΜͳαΠτͰ࡞ΕΔ ˒ 3VCZͷख़ͨ͠ΤίγεςϜΛར༻Ͱ͖Δ ˒ ΤΫεςϯγϣϯ͕ॻ͖͍͢
˒ &YUFSOBMQJQFMJOF؆୯ʹOQNΛར༻͢Δํ๏ͱͯ͠·͋Α͘Ͱ͖͍ͯΔ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠