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
20
8.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
2.9k
PHPのバージョンアップ実際のところどうなの? / How actually upgrade of PHP is
hiro_y
3
740
PHPのDI、attributesとこれから / PHP DI with attributes
hiro_y
1
2.2k
PHPのアノテーションの仕組みとメリット・デメリット / About PHP annotations
hiro_y
1
8.4k
株式会社 USEN Media - PHPカンファレンス北海道2019 / 2019-09-21_phpcondo-2019_usen-media
hiro_y
0
220
PHPのmiddlewareを 使いこなすために
hiro_y
3
2.4k
Slim Frameworkで始めるPHPのmiddleware
hiro_y
4
2.1k
Other Decks in Programming
See All in Programming
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
okashoi
3
870
Rubyでつくるパケットキャプチャツール
ydah
0
160
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
240
『改訂新版 良いコード/悪いコードで学ぶ設計入門』活用方法−爆速でスキルアップする!効果的な学習アプローチ / effective-learning-of-good-code
minodriven
28
4k
ゼロからの、レトロゲームエンジンの作り方
tokujiros
3
1k
Fixstars高速化コンテスト2024準優勝解法
eijirou
0
190
月刊 競技プログラミングをお仕事に役立てるには
terryu16
1
1.2k
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
0
120
BEエンジニアがFEの業務をできるようになるまでにやったこと
yoshida_ryushin
0
190
Package Traits
ikesyo
1
200
毎日13時間もかかるバッチ処理をたった3日で60%短縮するためにやったこと
sho_ssk_
1
540
Jaspr Dart Web Framework 박제창 @Devfest 2024
itsmedreamwalker
0
150
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
What's in a price? How to price your products and services
michaelherold
244
12k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Building Your Own Lightsaber
phodgson
104
6.2k
Statistics for Hackers
jakevdp
797
220k
Why Our Code Smells
bkeepers
PRO
335
57k
Gamification - CAS2011
davidbonilla
80
5.1k
Building Adaptive Systems
keathley
38
2.4k
Making the Leap to Tech Lead
cromwellryan
133
9k
Done Done
chrislema
182
16k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
500
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ͱ͔͑ղܾ͢Δʁ ҕͶͨ݁Ռɺࢼߦࡨޡ͕ݮΔ ৽͍ٕ͠ज़Λࢼ͢ؾ࣋ͪେࣄ
ଞͷڥͷ͜ͱ͓ͬͯ͘ඞཁ
͋Γ͕ͱ͏͍͟͝·ͨ͠ ࣭͕͋ΕͲ͏ͧ