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
Node.jsやPHPでも こわくないHeroku
Search
YAMAOKA Hiroyuki
June 22, 2017
Programming
1
1.6k
Node.jsやPHPでも こわくないHeroku
2017年6月22日、Heroku Meetup #17での発表資料です。
https://herokujp.doorkeeper.jp/events/61354
YAMAOKA Hiroyuki
June 22, 2017
Tweet
Share
More Decks by YAMAOKA Hiroyuki
See All by YAMAOKA Hiroyuki
エンジニアの「センス」とは何か / What is the sense of engineers
hiro_y
21
9k
CSRF対策のやり方、そろそろアップデートしませんか / Update your knowledge of CSRF protection
hiro_y
29
25k
PHPで任意精度演算を行って「正しい」金額計算をする方法 / Perform arbitrary precision arithmetic in PHP to achieve "accurate" monetary calculations
hiro_y
2
3k
PHPのバージョンアップ実際のところどうなの? / How actually upgrade of PHP is
hiro_y
3
750
PHPのDI、attributesとこれから / PHP DI with attributes
hiro_y
1
2.3k
PHPのアノテーションの仕組みとメリット・デメリット / About PHP annotations
hiro_y
1
8.5k
株式会社 USEN Media - PHPカンファレンス北海道2019 / 2019-09-21_phpcondo-2019_usen-media
hiro_y
0
230
PHPのmiddlewareを 使いこなすために
hiro_y
3
2.4k
Slim Frameworkで始めるPHPのmiddleware
hiro_y
4
2.1k
Other Decks in Programming
See All in Programming
Pulsar2 を雰囲気で使ってみよう
anoken
0
240
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
11
3.8k
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
130
sappoRo.R #12 初心者セッション
kosugitti
0
250
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
130
AIの力でお手軽Chrome拡張機能作り
taiseiue
0
170
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
130
『GO』アプリ バックエンドサーバのコスト削減
mot_techtalk
0
140
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
110
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
510
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
0
180
ARA Ansible for the teams
kksat
0
150
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
336
57k
Docker and Python
trallard
44
3.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
550
KATA
mclloyd
29
14k
Designing Experiences People Love
moore
140
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Git: the NoSQL Database
bkeepers
PRO
427
64k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
174
51k
Transcript
/PEFKT1)1Ͱ ͜Θ͘ͳ͍)FSPLV )FSPLV.FFUVQ)FSPLV4USJLF ߹ಉձࣾςϯϚυɹࢁԬ
ࢿྉޙ΄Ͳެ։͠·͢ ࣸਅࡱӨ0, ʢγϟολʔԻফ͍ͯͩ͘͠͞ʣ
XFCΤϯδχΞͷਓʁ 3VCZ1)1/PEFKTଞ
·ͩ)FSPLVΛ ͬͨ͜ͱ͕ͳ͍ਓʁ
ࣗݾհ ࢁԬ UXJUUFSDPNIJSP@Z HJUIVCDPNIJSPZ ߹ಉձࣾςϯϚυදࣾһ גࣜձࣾΠϊϕʔλʔɾδϟύϯ$50ɺ(-"%%גࣜձٕࣾज़ސ
)FSPLVʹؔ͢Δొஃ 1)1ΧϯϑΝϨϯεԬ ʮ1)1Ͱ͜Θ͘ͳ͍)FSPLVʯ 1)1ΧϯϑΝϨϯεւಓ ʮ)FSPLVͰ1)1ͷίί͕ศརʯ
߹ಉձࣾςϯϚυ ݄ઃཱʢظʣ දࣾһਓ Ϗδωεࢧԉࣄۀ αʔϏε։ൃࣄۀ
Ϗδωεࢧԉࣄۀ ٕज़ސࣾ֎$50 ͍ΘΏΔडୗҊ݅ ྫελʔτΞοϓࢧԉͰࣾ֎$50 Λͭͭ͠ॳظ։ൃͷશͯΛ୲ )FSPLVͰ1)1ʢ1PTUHSF42-3FEJTʣ
αʔϏε։ൃࣄۀ DPOBTVʢνʔϜͰΓऔΓ͢ΔͨΊͷλεΫཧπʔϧʣ JSVDBʢϩάΠϯෆཁͰ͑Δࡏ੮ཧαʔϏεʣ NJNFNPʢ.BSLEPXOه๏Ͱॻ͚ΔςΩετڞ༗αΠτʣ
શ෦)FSPLVʢ1)1/PEFKTʣ
ུྺ XFCΞϓϦέʔγϣϯΤϯδχΞ 1)1ͱ͔/PEFKTͱ͔ ࣗࣾαʔϏεͰΠϯϑϥۀܦݧ͋Γ ࣸਅڞ༗ͷαΠτͱ͔
ࣾαʔόʔ͔Β%$ɺΫϥυ·Ͱ
ΠϯϑϥͷͭΒΈ ηοτΞοϓ ϛυϧΣΞͷόʔδϣϯΞοϓ ηΩϡϦςΟɾ੬ऑੑରԠ ϩάɺࢹɺϞχλϦϯάʜͳͲͳͲ
େมͰ͢ΑͶʂʂʂ
)FSPLVͰͷެ։ ΞϓϦΛ࡞ͬͯ %ZOPͷϓϥϯΛબΜͰ "EEPOΛΈ߹Θͤͯ ڥมΛઃఆͯ͠⚙
ίʔυΛQVTIͯ͠σϓϩΠ
ڥઃఆΛίʔυԽ 5FSSBGPSNCZ)BTIJ$PSQ Ϋϥυڥͷࣗಈߏஙπʔϧ ςϯϓϨʔτϑΝΠϧͰߏΛཧ "84($1.4"[VSF)FSPLV
͘͞ΒͷΫϥυʹରԠ
5FSSBGPSN)FSPLV1SPWJEFS ΞϓϦͷཧ DPOpHཧ ΞυΦϯͷཧ υϝΠϯཧ
1JQFMJOFཧʜͳͲ
NJNFNPͷ߹ Ͱ͖Δ͜ͱ ΞϓϦͷཧʢDPOpHཧʣ ΞυΦϯͷཧ υϝΠϯཧ
1JQFMJOFཧ
ڥߏஙͷํ ڥมʢDPOpHʣ5FSSBGPSNͰ "EEPOͷߏIFSPLVίϚϯυͰ શ෦5FSSBGPSNͰ͍͍͚Ͳɺ NJHSBUJPOͱ͔ͪΐͬͱ͜Θ͍ͳͱ υϝΠϯ44-ͷઃఆઃఆը໘Ͱ
)FSPLVͰ44- IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFT BVUPNBUFEDFSUJpDBUFNBOBHFNFOU -FUT&ODSZQUͰ͏·͍͜ͱͯ͘͠ΕΔ ࣗಈԆ %/4ͷઃఆ͕దͳΒɺ
ઃఆը໘ͰϘλϯԡ͚ͩ͢
ଞʹ%PDLFSΛ ͏ͱ͍͏ख͋Γ·͢Ͷ ʢͦͷ͏ͪखΛग़͍ͨ͠ʣ
1)1Λ)FSPLVͰಈ͔͢ DPNQPTFSMPDLʢDPNQPTFSKTPOʣ 1)1PS))7. "QBDIFPS/HJOY 1)1'1.ͱͯ͠ಈ࡞
֦ுἧ͍ͬͯΔʢDPNQPTFSKTPOͰࢦఆʣ
/PEFKTΛ)FSPLVͰಈ͔͢ ZBSOMPDLPSQBDLBHFKTPO OQNTUBSUͳͲͰىಈεΫϦϓτ XFCOQNTUBSU UISPOHͳͲͰΫϥελϦϯά
JSVDBͷ߹ IUUQTJSVDBDP ϩάΠϯෆཁͷࡏ੮ཧπʔϧ% ʮௐ͞ΜʯΈ͍ͨͳ ͦ͏͍͑։ൃ߹॓ͰͰ࡞ͬͨ
؆୯ʹಈ͔͍ͨ͠➡)FSPLVͰ
JSVDBDPUPQ
JSVDBDPSPPN
JSVDBͷΘΕํ ࠓ݄ߋ৽ͷ͋ͬͨϧʔϜ ඇ*5ܥͷάϧʔϓاۀ༷͕த৺ 4MBDLͳΜͯΒͳ͍͕ଟ͍ ࡏ੮͚ͩͰͳ͘ग़ୀۈͷཧͱͯ͠
ߦಈ༧ఆදͱͯ͠ʜͳͲͳͲ
JSVDBͷ࡞Γํ ॳΊͯͷ/PEFKTΞϓϦ ϑϨʔϜϫʔΫ&YQSFTT σʔλϕʔε1PTUHSF42- ηογϣϯͱΩϟογϡ3FEJT
ॳ͔Β)FSPLVΛҙࣝͨ͠։ൃ
ॳΊͯͳͷͰ /PEFKTͷΠϯϑϥͷΈํΒͳ͍ ։ൃ߹॓ͳͷͰௐͯΔ༨༟ͳ͍ DPOBTVͰ)FSPLVطʹ͍ͬͯͨ ͦ͏ͩɺ)FSPLVͰ/PEFKT
JSVDBͷ։ൃϓϩηε ϩʔΧϧͰ։ൃ (JU)VCͱ$JSDMF$*Λར༻ $JSDMF$*͔Β)FSPLVʹࣗಈσϓϩΠ TUBHJOHڥͷΈɺຊ൪ڥखಈ
1JQFMJOFͷػೳ͍ͬͯ·ͤΜ
JSVDB3FTPVSDFT
JSVDBͷຊ൪ߏ ࢮ׆ࢹ6QUJNF3PCPU ϞχλϦϯά.FUSJDTͱ-JCSBUP %#)FSPLV1PTUHSFT ηογϣϯͱΩϟογϡ3FEJT$MPVE
ϩάू1BQFSUSBJM
4MBDLʹ͍Ζ͍Ζ௨ ։ൃ(JU)VCɺ$JSDMF$* σϓϩΠ௨)FSPLV%FQMPZ)PPLT Τϥʔϩά1BQFSUSBJM͔Βਖ਼نදݱͰ ʑͷ(PPHMF"OBMZUJDTͷʢ("4ʣ
Πϕϯτ৽نొͳͲ
)FSPLV$IBU0QT IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFT DIBUPQT 1VCMJD#FUBʢࢼͤΔʂʣ 1JQFMJOFͷૢ࡞σϓϩΠ͕Ͱ͖Δ ΕΔ͜ͱ૿͑Δͷ͔ɺظ
)FSPLVຊʹศར ͋Γ͕ͱ͏ɺͰ
ศར͗͢Δฐʜ ΠϯϑϥΛ)FSPLVʹҕͶ͗͢Δ %PDLFSͱ͔͑ղܾ͢Δʁ ҕͶͨ݁Ռɺࢼߦࡨޡ͕ݮΔ ৽͍ٕ͠ज़Λࢼ͢ؾ࣋ͪେࣄ
ଞͷڥͷ͜ͱ͓ͬͯ͘ඞཁ
͋Γ͕ͱ͏͍͟͝·ͨ͠ ࣭͕͋ΕͲ͏ͧ