Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
日経電子版を支える基盤API
Search
osamunmun
February 03, 2017
Programming
17
7.3k
日経電子版を支える基盤API
osamunmun
February 03, 2017
Tweet
Share
More Decks by osamunmun
See All by osamunmun
日経電子版SREチーム立ち上げ中
osamunmun
6
14k
Other Decks in Programming
See All in Programming
React Native New Architecture 移行実践報告
taminif
1
140
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
160
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
8
2.1k
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
510
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
1.2k
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
4
1.4k
ゲームの物理 剛体編
fadis
0
280
WebRTC と Rust と8K 60fps
tnoho
2
1.9k
tparseでgo testの出力を見やすくする
utgwkk
1
160
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
660
20 years of Symfony, what's next?
fabpot
2
330
CSC509 Lecture 14
javiergs
PRO
0
220
Featured
See All Featured
Fireside Chat
paigeccino
41
3.7k
The Language of Interfaces
destraynor
162
25k
Bash Introduction
62gerente
615
210k
BBQ
matthewcrist
89
9.9k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
700
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Context Engineering - Making Every Token Count
addyosmani
9
480
How to train your dragon (web standard)
notwaldorf
97
6.4k
Building Adaptive Systems
keathley
44
2.9k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Transcript
ܦిࢠ൛Λࢧ͑Δج൫"1* "1*.&&561 0TBNV5BLBZBTV
2 0TBNV5BLBZBTV &OHJOFFSBU/JLLFJ *OD 1ZUIPO "84 3VCZ MVB ʹܦʹ+0*/ ओʹܦిࢠ൛ͷ"1*ͷ։ൃʹैࣄ
"CPVUNF
3 ݄ʹץ ༗ྉձһ ԁ݄ ສਓ ݄ؒΞΫηεԯ݅
ຖ݅ͷهࣄΛ৴ 1$ɾϞόΠϧαΠτɺJ04ɺ "OESPJEΞϓϦʹରԠ ܦిࢠ൛ͱ
4 "1*ͷΞʔΩςΫνϟ ։ൃɺӡ༻ํ๏ʹ͍ͭͯ ࠓޙͷํੑɺ՝ ࠓ͓͢͠Δ͜ͱ
ΞʔΩςΫνϟ 5
6 ܦిࢠ൛ͷγεςϜશମ૾ "84 ϩάੳͳͲɺαʔϏε ։ൃऀ͕ར༻ هࣄͷฤूɺཧ $.4 هࣄ৴ ֤छ"1* ੳج൫
ࠓ͓͢͠Δ zج൫"1*z͜ͷҰ෦
7 ج൫"1*ΞʔΩςΫνϟ "1*("5&8": 4&"3$) '-"( 1"1&3 ʜ ֤$MJFOU ଞγεςϜͷαʔόʔ *."(&
$%/ ج൫"1* ݸͷ"1* ֤"1*ϦΫΤε τͷೝՄݕূ TJHOFEVSMͰ ΞΫηε੍ޚ 4FBSDI&OHJOF %#4UPSBHF #BUDI -PH
8 "1*("5&8":ͷׂ ɾϢʔβʔʗΫϥΠΞϯτೝূ ɾ֤"1*ͷϦΫΤετͷೝՄݕূ ɾཧը໘Ͱ֤$MJFOUͷݖݶཧ ɾ֤"1*ͷ*'༷υΩϡϝϯτ
.JDSPTFSWJDFT 9
10 ߏཁૉ "1*("5&8": 4&"3$) '-"( 1"1&3 ʜ *."(& $%/ ج൫"1*
4FBSDI&OHJOF %#4UPSBHF #BUDI -PH &MBTUJD#FBOTUBML &MBTUJD#FBOTUBML &MBTUJD#FBOTUBML &MBTUJD#FBOTUBML &MBTUJD#FBOTUBML $MPVE'SPOU 4 3FEJT 3%4 3FETIJGU "VSPSB &MBTUJD#FBOTUBML #JH2VFSZ 4
&$JOTUBODF 11 &MBTUJD#FBOTUBMLͷத "QQMJDBUJPO$POUBJOFS -PH4FOEFS$POUBJOFS ˞ ˞IUUQTHJUIVCDPNCVOHPVNFMPHTFOEFS ʜ ʜ ʜ
ʜ ෛՙʹԠͯ͡ BVUPTDBMF &-# &#ͷڥΛίʔυͰఆٛ ɾ&MBTUJD#FBOTUBMLͷઃఆϑΝΠϧ 71$ &-# 4FDVSJUZ(SPVQ "VUPTDBMF $MPVE8BUDI"MBSN ɾ%PDLFSSVOBXTKTPO $POUBJOFS ڥม Ϧιʔε ɾFCFYUFOTJPOT IPTU໊मਖ਼ OFXSFMJDઃఆ
12 ֤"1*ʹڞ௨෦͕ଟ͍ "1*("5&8": 4&"3$) '-"( 1"1&3 ʜ *."(& $%/ ج൫"1*
4FBSDI&OHJOF %#4UPSBHF #BUDI -PH &MBTUJD#FBOTUBML &MBTUJD#FBOTUBML &MBTUJD#FBOTUBML &MBTUJD#FBOTUBML &MBTUJD#FBOTUBML $MPVE'SPOU 4 3FEJT 3%4 3FETIJGU "VSPSB &MBTUJD#FBOTUBML #JH2VFSZ 4
13 ֤"1*ͷڞ௨෦ΛςϯϓϨʔτԽ SFRVJSFNFOUTUYU UPYJOJ %KBOHPΞϓϦͷઃఆ %PDLFSpMF
&MBTUJD#FBOTUBMLͷઃఆϑΝΠϧ $JSDMF$*ͷઃఆϑΝΠϧ
14 ڞ௨Խ͓ͯ͘͠ϝϦοτ &$JOTUBODF "QQMJDBUJPO$POUBJOFS -PH4FOEFS$POUBJOFS ˞ ʜ ʜ ʜ ʜ
։ൃऀ֤"1*ݻ༗ͷ ϏδωεϩδοΫʹྗ &-# ɾ৽͍͠"1*Λ্ཱ͙ͪ͛͢ΒΕΔ ɾมߋ༰Λ֤"1*ʹ؆୯ʹөͰ͖Δ UFNQMBUFͷߋ৽ DPPLJFQBUDIFS ˞ ͱ͍͏πʔϧ͕ ͋Δ ֤"1*ϨϙδτϦʹ࠷৽ͷςϯϓ ϨʔτΛద༻ ˞IUUQTHJUIVCDPNIJSPLJLZDPPLJFQBUDIFS
15 .JDSPTFSWJDFTͰΑ͔ͬͨ͜ͱ ɾ"1*͝ͱ ˺αʔϏε͝ͱʣͰૄ݁߹ʹ։ൃΛਐΊΒΕɺ ɹ։ൃεϐʔυ͕ͰΔ ɾ"1*͝ͱʹಠཱͯ͠σϓϩΠ͕ՄೳͰɺมߋ͍͢͠ ɾෛՙͷߴ͍"1*͚ͩεέʔϧͰ͖ɺϦιʔεͱίετͷ ɹ࠷దԽ͕Ͱ͖Δ
#BUDI 16
&$JOTUBODF 17 #BUDI&# %PDLFSͰߏங "QQMJDBUJPO$POUBJOFS &-# &$JOTUBODF /HJOY$POUBJOFS &-#
ʜ ʜ ɾ36/%&$,ͷઃఆ +0#ͷઃఆɺ࣮ߦཤ ྺ 3%4 .Z42- ʹอଘ ɾ֤+0#͝ͱʹ%PDLFSQVMM࣮ͯ͠ߦ &-#ͷIFBMUIDIFDLͷ ͨΊʹ/HJOY͕͍Δ ෳ+0#͕ͬͯޓ͍ʹ Өڹ͠ͳ͍ૉͳؔ
-0( 18
19 -PHͷྲྀΕ "QQMJDBUJPO$POUBJOFS -PH4FOEFS$POUBJOFS -PH"HHSFHBUPS BDUJPOMPH V84(*MPH OHJOYMPH ҙͷϩάFYݕࡧΫΤϦ ֤"1*
$MPVE'SPOU 4 MBNCEB ۙdϲ݄ ͘Β͍ͷϩά #JH2VFSZ 4 DGMPHTEPNBJOͱ͍͏CVDLFUʹॻ ͖ग़͢ͱMBNCEBͰॲཧͯ͠&4ʹೖΔઃఆ
%FQMPZ 20
21 %FQMPZqPX VOJUUFTU EPDLFSCVJME EPDLFSQVTI &MBTUJD#FBOTUBML EFQMPZ 1SPE&/7 4UBOECZ&/7 TXBQ
$MPVE'SPOU FFUFTU FFUFTU NBTUFSCSBODIEFWڥ EFQMPZNFOUQSPEVDUJPOCSBODIQSPEڥ JNBHF"1*͚ͩɺ$'͕લஈʹ ͍ΔͷͰɺ$'ܦ༝Ͱςετ EPDLFSQVMM &MBTUJD$POUBJOFS3FHJTUSZ DPNNJUIBTIͷઌ಄ จࣈͰUBH͚
22 TXBQ͙ͯ͢͠ΓସΘΔͷʁ ɾ&#ͷ%/4ͷ55-NJO EFGBVMU ɾͨͩ͠ɺ$MJFOU͕ΩϟογϡΛ࣋ͬͨ߹PVUPGDPOUSPM &$JOTUBODF /HJOY$POUBJOFS &-# ͜͜TXBQ
͠ͳ͍ SPVUF &MBTUJD#FBOTUBML 1SPE&/7 4UBOECZ&/7 &MBTUJD#FBOTUBML 1SPE&/7 4UBOECZ&/7 SFWFSTFQSPYZ͕ɺ "1*ͷTXBQΛै
NJOTFD 23 EFQMPZʹ݁ߏ͕͔͔͍࣌ؒͬͯͨ VOJUUFTU EPDLFSCVJME EPDLFSQVTI &MBTUJD#FBOTUBML EFQMPZ 1SPE&/7 4UBOECZ&/7
TXBQ $MPVE'SPOU FFUFTU FFUFTU EPDLFSQVMM &MBTUJD$POUBJOFS3FHJTUSZ NJO NJOTFD NJO ͦͷଞॾʑ߹Θͤͯ5PUBMNJO΄Ͳ
24 EFQMPZ࣌ؒΛॖ ɾ#BTF*NBHFʹ"MQJOF-JOVYΛར༻ ΠϝʔδαΠζΛେ෯ݮ.#.#ఔ ɾ$JSDMF$*ͰΩϟογϡΛར༻ EFQFOEFODJFTηΫγϣϯͰґଘϥΠϒϥϦΛΠϯετʔϧ EPDLFSCVJME͢Δલʹ࠷৽ΠϝʔδΛQVMM͓ͯ͘͠
NJOTFD 25 EFQMPZ͕࣌ؒNJO͘Β͍ॖ VOJUUFTU EPDLFSQVMMCVJME EPDLFSQVTI &MBTUJD#FBOTUBML EFQMPZ 1SPE&/7 4UBOECZ&/7
TXBQ $MPVE'SPOU FFUFTU FFUFTU EPDLFSQVMM &MBTUJD$POUBJOFS3FHJTUSZ NJOTFD NJOTFDTFD NJO 5PUBMNJO͘Β͍NJO͘Β͍
26 MBNCEBͷEFQMPZେମಉ͡ VOJUUFTU BQFYEFQMPZ MBNCEB
.POJUPSJOH/PUJpDBUJPO 27
28 ࢹͱ௨ͷશମ૾ Πϯϑϥ $16 .FNPSZ /FUXPSL $MPVE8BUDI ΞϓϦέʔγϣϯ Τϥʔ Ϧιʔεࢹ
MBUFODZ TUBUVTDPEF 63-ࢹ FFUFTU ి௨ ௨ઌ໊Ͱ ϩʔςʔγϣϯ
29 ͕ൃੜͨ͠Β,JCBOBΛ֬ೝ ͋Β͔͡Ίॏཁͳϝ τϦΫεͷμογϡ ϘʔυΛ࡞͓ͬͯ͘
30 5JQT සൟʹσϓϩΠ͕ߦΘΕΔ͠ɺ&MBTUJD#FBOTUBMLͷ&$Πϯελϯεෆఆظʹ ೖΕସΘΔ 4FOUSZ DPNNJUIBTIΛૹͬͯɺ ͲͷWFSTJPOͷΞϓϦ͔Λࣝผ /FXSFMJD IPTU໊ʹΞϓϦέʔγϣϯ໊ΛೖΕͯɺ ͲͷΞϓϦͷΠϯελϯε͔Λࣝผ
"84 31
32 "84ͳ͠ͰΓཱͨͳ͍ &$JOTUBODF "QQMJDBUJPO$POUBJOFS -PH4FOEFS$POUBJOFS ʜ ʜ ʜ ʜ &-#
ࣗͨͪͷൣғ ɾSPVUF &MBTUJD#FBOTUBML "$.ͳͲ ɹ"84ͷઃఆ ɾ%PDLFS$POUBJOFS ઃఆ͢Δͱ "84͔ΒͨΒ͞ΕΔͷ ɾBVUPTDBMFPVUJO ɾΠϯελϯεɺίϯςφͷࣗಈ෮چ ɾNPOJUPSJOH BMBSN ɾ63-ͷTXBQʹΑΔCMVFHSFFOEFQMPZ ɾଞଟʜ
33 ਐԽ͢Δ"84 Ҏ্ͷGFBUVSF ΛϦϦʔεɻຖͭҎ্ SF*OWFOUͰݸͷ৽ αʔϏε͕ൃද ,FZOPUFʹͯ l"84XJMMNBLFZPVGFFMMJLF
ZPVIBWFCFFOHJWFO4VQFS 1PXFSTz
34 Δ͔͠ͳ͍͜ͷϏοά SZ ɾອવͱ͍ͬͯͯ"84ͷਐԽͷԸܙ͕ड͚ΒΕͯ͠·͏ FY"844IJFME͕$MPVE'SPOUʹσϑΥϧτద༻ FY0QFO44-੬ऑੑରԠ FYΠϯελϯεԼ͛ɾɾ ɾອવͱ͍ͬͯΔͱ"84ͷਐԽͷԸܙΛड͚ΒΕͳ͍߹ଟ͍ ໌ࣔతͳόʔδϣϯΞοϓ FY&MBTUJDCFBOTUBMLͷQMBUGPSNͷߋ৽
৽αʔϏεͷݕূɺಋೖ FYMBNCEBBUFEHF "UIFOB 3FLPHOJUJPO ৽αʔϏεɺʑͷߋ৽ΛऔΓೖΕͯɺࣗࣾαʔϏεΛਐԽ͍ͤͯ͘͞
35 "84ͰϋϚΔ͜ͱΑ͋͘Δ 4VQQPSUܖΛ݁ΜͰ݁ߏ͍߹Θ ͍ͤͯ͠Δ "84ͷόάΛ౿Ή͜ͱ͋Δ ୯ʹ͍ํ͕Α͘Θ͔Βͳ͍߹
ػೳͷཁΛग़͢ ͳ͔ͳ͔5PLZPSFHJPOʹདྷͳ͍ ͳ͔ͳ͔("ʹͳΒͳ͍
4BB4ͷ׆༻ 36
37 4BB4։ൃɺӡ༻πʔϧܥ͕ଟ͍ ར༻ͯ͠Δ4BB4 4FOUSZ 4MBDL /FX3FMJD 4UBUVT$BLF (JUIVC QBHFSEVUZ $JSDMF$*
#JH2VFSZ 7JTJPO"1* /BUVSBM-BOHVBHF"1* 5SFMMP
*NBHF"1*Λஔ͖͑ 38
39 *NBHF"1*ͱ ΦϦδφϧը૾ σϑΥϧτ هࣄͷϨΠΞτʹ ߹ΘͤͯΓൈ͖ إೝࣝ SFTJ[F
DSPQ ࠲ඪࢦఆՄೳ TJHOFEVSM GPSNBUDPOWFSTJPO 8FC1 IUUQTBSUJDMFJNBHFOJLLFJDPNYYD@@%49.;01#KQH IBTIDED
40 *NBHF"1* $MPVE'SPOU &$JOTUBODF /HJOY$POUBJOFS OHY@TNBMM@MJHIUΛGPML *NBHF.BHJDL
MVBͰQBSBNFUFSWBMJEBUJPO PQFOSFTUZMVBOHJOYNPEVMF 4 JNBHF 4 JNBHFNFUBEBUB MBNCEB 4&"3$)"1* TFBSDISFTVMU JOEFYJOH JNBHFpMFͷIBTI إɾݐɾMPHPͷ࠲ඪ ը૾ͷMBCFM $.4 JNBHFpMF 7JTJPO"1*
41 -BNCEBͷ׆༻ 4 JNBHF MBNCEB $.4 JNBHFpMF MBNCEB ϑΝΠϧ໊ͱQBUIΛมߋ MBNCEB
4 JNBHFNFUBEBUB ͭͷ4FWFOU͔ΒͭͷMBNCEB ͔͠ൃՐͰ͖ͳ͍ͷͰɺSPVUJOH ແବʹ"1*Λୟ͔ͳ͍Α͏ʹɺ JNBHFpMFͷ&5BHΛνΣοΫ 7JTJPO"1*
42 *NBHF"1* $MPVE'SPOU &$JOTUBODF /HJOY$POUBJOFS OHY@TNBMM@MJHIUΛGPML *NBHF.BHJDL
MVBͰQBSBNFUFSWBMJEBUJPO PQFOSFTUZMVBOHJOYNPEVMF 4 JNBHF 4 JNBHFNFUBEBUB MBNCEB 4&"3$)"1* TFBSDISFTVMU JOEFYJOH JNBHFpMFͷIBTI إɾݐɾMPHPͷ࠲ඪ ը૾ͷMBCFM $.4 JNBHFpMF 4BB4Ͱஔ͖͑
43 ͳͥஔ͖͑ʁ ɾ(PPHMF$MPVE7JTJPO"1*ͰಘΒΕΔɺݐɾMPHPͷ࠲ඪɺ ը૾ͷMBCFMใ͕׆༻͞Εͳ͔ͬͨ ɾࣗલͰओʹ$MPVE'SPOUͷඅ༻͕݁ߏ͔͔Γɺ4BB4ʹൺͯ ͍҆Θ͚Ͱͳ͍ ɾ4BB4ʹ͋ΔػೳͷՃཁٻ͕͋ͬͨ Γൈ͖ͷ࠲ඪࢦఆͰͳ͘ɺDSPQGBDFͷΑ͏ʹࢦఆ͍ͨ͠
ΫϥΠΞϯτʹԠͯ͡ը૾αΠζͷ࠷దԽΛ͍ͨ͠ XBUFSNBSLΛ͚͍ͨ ɾܦిࢠ൛ݻ༗ͷཁ݅ʹ༝དྷ͢Δ༷ͳ͍ 4BB4Ͱ͋ΔఔΧελϚΠζͰ͖Δ߹͋Δ͠ɺ 4BB4ͱࣗલ"1*ͷΈ߹ΘͤΔύλʔϯ͋Δ هࣄը૾ΛΓൈ͘ͱ͖ʹʹͳΔέʔεɺ إ͕ରʹͳΔέʔε͕΄ͱΜͲ
44 ީิ SFTJ[F DSPQ إΛத৺ʹ͠ ͨDSPQ ը૾ͷॏͶ ߹Θͤ GPSNBU ม
4JHOFE 63- ը૾αΠζ ͷ࠷దԽ *NBHF"1* ˓ ˓ ☓ ☓ ˓ ˓ ☓ $MPVEJOBSZ ˓ ˓ ˓ ˓ ˓ ˓ ˓ JNH*9 ˓ ˓ ˓ ˓ ˓ ˓ ˓ "LBNBJ*NBHF .BOBHFS ˓ ˓ ☓ ˓ ˓ *NBHF'MVY ˓ ˓ ☓ ˓ ˓ ˞ݸਓௐͳͷͰɺ࠷৽ͷใ֤ެࣜιʔεΛ֬͝ೝ͍ͩ͘͞
45 ίϞσΟςΟԽͨ͠"1*4BB4ʁ ɾ*NBHFɺ4FBSDIɺػցֶशɾɾɾɺࠓޙ4BB4͞Βʹ૿͑ͦ͏ ࣗલ"1* 4BB4 อक ɾ4PGUXBSFWFSTJPOVQ FY੬ऑੑରԠ ɾোରԠ
΄ͱΜͲͳ͍ ɾ͓·͔ͤ ΧελϚΠζ ɾࣗ͝༝ʹ ɾཁɺҕୗϕʔε ΓͱΓ͕खؒɺͦ ͦͰ͖ͳ͍߹ ։ൃྗ ɾਓ ɾࣗલΑΓਓଟͯ͘ɺ։ൃྗߴ͍ ίετ $BTFCZ$BTF
46 ίϞσΟςΟԽͨ͠"1*4BB4ʁ ɾ*NBHFɺ4FBSDIɺػցֶशɾɾɾɺࠓޙ4BB4͕૿͑ͦ͏ ࣗલ"1* 4BB4 อक ɾ4PGUXBSFWFSTJPOVQ FY੬ऑੑରԠ ɾোରԠ
΄ͱΜͲͳ͍ ɾ͓·͔ͤ ΧελϚΠζ ɾࣗ͝༝ʹ ɾཁɺҕୗϕʔε ΓͱΓ͕खؒɺͦ ͦͰ͖ͳ͍߹ ։ൃྗ ɾਓ ɾࣗલΑΓਓଟͯ͘ɺ։ൃྗߴ͍ ίετ $BTFCZ$BTF $BTFCZ$BTF
47 ͜ΜͳΠϝʔδʁ "1*("5&8": 4&"3$) '-"( 1"1&3 ʜ *."(& $%/ ج൫"1*
ंྠͷ࠶ൃ໌ΑΓϥΠϒϥϦΛ ͬͨํ͕࣭ޮྑ͍ ϥΠϒϥϦͱಉ͡ײ֮ʁ
48 ࠓޙͷ՝औΓΜͰ͍Δ͜ͱ ɾ4BB4ͷ׆༻ ɾMBNCEBΛͬͨ4FSWFSMFTTͳΞʔΩςΫνϟͷద༻ վળ͞Εͦ͏ͳͱ͜Ζ͕͍͔ͭ͋͘Δ TUFQGVODUJPOTศརͦ͏͚ͩͲ·ͩ͞ΘΕͯͳ͍ ɾػցֶशΛ׆༻ͨ͠αʔϏε ɾ(PΛͬͨΞϓϦέʔγϣϯ։ൃ ɾMBNCEBͷΤϥʔϩά͕୳ͮ͠Β͍ ࠓ4FOUSZΛࠐΜͰΤϥʔΛૹ͍ͬͯΔ
$MPVE8BUDI-PHΛ4ʹྲྀ͠ࠐΜͰɺ"UIFOBͰ୳ͤΔΑ͏ʹ͢Δ ɾɾɾ
49 8F`SFIJSJOH TOJLLFJDPNTBJZP 1ZUIPOΤϯδχΞʢػցֶशͰ͖Δͻͱܴʣ ϑϩϯτΤϯυΤϯδχΞ ΞϓϦΤϯδχΞ σβΠφʔ