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
460
Keep Calm and Enjoy Gachima
5t111111
3
370
Swift Functional Programming
5t111111
0
290
名古屋Ruby会議03 高速一言感想
5t111111
3
1.1k
ドキュメント翻訳懺悔のLT ~進捗ダメです~
5t111111
1
670
UFO演算子について
5t111111
0
360
Rubyと戯れるOSS DTM
5t111111
4
790
Rubyの拡張をCrystalで書いてみる
5t111111
0
140
YARV INTRODUCTION
5t111111
0
110
Other Decks in Programming
See All in Programming
Result型で“失敗”を型にするPHPコードの書き方
kajitack
5
980
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
820
ふつうの技術スタックでアート作品を作ってみる
akira888
1
1.1k
テスト駆動Kaggle
isax1015
1
510
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
3
790
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
750
MCPを使ってイベントソーシングのAIコーディングを効率化する / Streamlining Event Sourcing AI Coding with MCP
tomohisa
0
160
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
130
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
1k
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
650
Agentic Coding: The Future of Software Development with Agents
mitsuhiko
0
120
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
900
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
54
11k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Typedesign – Prime Four
hannesfritz
42
2.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
BBQ
matthewcrist
89
9.7k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Into the Great Unknown - MozCon
thekraken
40
1.9k
Making Projects Easy
brettharned
116
6.3k
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Λར༻͢Δํ๏ͱͯ͠·͋Α͘Ͱ͖͍ͯΔ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠