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
日経電子版を支える基盤API
Search
osamunmun
February 03, 2017
Programming
17
7.1k
日経電子版を支える基盤API
osamunmun
February 03, 2017
Tweet
Share
More Decks by osamunmun
See All by osamunmun
日経電子版SREチーム立ち上げ中
osamunmun
6
13k
Other Decks in Programming
See All in Programming
Kotlin 2.0が与えるAndroid開発の進化
masayukisuda
1
370
実践 Advanced CallKit 〜快適な通話の実現に向けて〜
mot_techtalk
3
140
Debugging: All you need to know (for simultaneous interpreting)
jmatsu
2
760
Ebitengineの1vs1ゲーム WebRTCの活用
ponyo877
0
380
unique パッケージから学ぶ interning と weak reference @ Asakusa.go#3
karamaru
2
810
What is Parser
yui_knk
9
4.1k
Understand the mechanism! Let's do screenshots tests of Compose Previews with various variations / 仕組みから理解する!Composeプレビューを様々なバリエーションでスクリーンショットテストしよう
sumio
3
620
REXML改善のその後
naitoh
0
190
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
390
Perl 5 OOP機構30年史 - Perl 5's OOP Mechanism over the past 30 years
moznion
0
110
Why Prism?
kddnewton
4
1.7k
令和トラベルにおけるLLM活用事例:社内ツール開発から得た学びと実践
ippo012
0
150
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
41
6.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
263
13k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
248
20k
Testing 201, or: Great Expectations
jmmastey
36
7k
Large-scale JavaScript Application Architecture
addyosmani
508
110k
Agile that works and the tools we love
rasmusluckow
327
20k
Music & Morning Musume
bryan
46
6k
Unsuck your backbone
ammeep
667
57k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
157
15k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
We Have a Design System, Now What?
morganepeng
48
7.1k
Adopting Sorbet at Scale
ufuk
73
8.9k
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ΤϯδχΞʢػցֶशͰ͖Δͻͱܴʣ ϑϩϯτΤϯυΤϯδχΞ ΞϓϦΤϯδχΞ σβΠφʔ