Slide 1

Slide 1 text

ͳΜ͔OPEFͷ$16࢖༻཰͕ ͰுΓ෇͍ͯͯϚδϠ ό͔ͬͨͷͰͳΜͱ͔ͨ͠࿩

Slide 2

Slide 2 text

w ໊લɿ͛ͨ w ৬ۀɿҰൠϊʔϚϧΤϯδχΞ w +BWB4DSJQUమ๒ۄͱ͍ͯ͠ΖΜͳϓϩδΣΫτʹಥͬ ࠐ·ΕΔ܎Λ͍ͯ͠·͢ɺීஈ͸QJYJW4LFUDIͰ8FC ͷ࣮૷Λ͍ͯ͠·͢ HFUB

Slide 3

Slide 3 text

w ϦϦʔε௚ޙɺ༵ۚ೔ͷ࣌͝Ζͷ͜ͱ

Slide 4

Slide 4 text

w ʮͳΜ͔OPEFͷ$16࢖༻཰͕ͰுΓ෇͍ͯͯ ϚδϠό͍ʯ w ʮͳΜ͔λΠϜϥΠϯ͕ख஗ΕͯΔͧʯ

Slide 5

Slide 5 text

w Կͱ͔͠Α͏ɺͬͯݴͬͯԿͱ͔ͨ͠࿩Λ͠·͢

Slide 6

Slide 6 text

w 8FC4PDLFUΛ࢖ͬͨ4USFBNJOHؔ࿈ͷ"1*࣮૷͸ɺ શͯ̍ϑΝΠϧͷϙΤϜͰ࣮ݱ͞Ε͍ͯΔ w QHTRMίωΫγϣϯϓʔϧɺSFEJTίωΫγϣϯɺIUUQ ΠϯλʔϑΣʔεɺXTΠϯλʔϑΣʔεɺ౳ʑ

Slide 7

Slide 7 text

w OQNTDSJQUΛΑ͘ݟΔͱɺ͜ͷ࣮૷͕CBCFMOPEF ίϚϯυΛ࢖ͬͯ&4ίʔυΛ௚઀ىಈ͢Δے ྗӡ༻ํࣜʹͳ͍ͬͯΔ͜ͱ͕Θ͔Δ w ಛʹQNͳͲͷϚωʔδϟʔ͸ڬΜͰ͍ͳ͍

Slide 8

Slide 8 text

w ͱ͜ΖͰOPEF͸γϯάϧεϨου w ίΞ਺ͷҧ͍ͰύϑΥʔϚϯε͸มΘΒͳ͍

Slide 9

Slide 9 text

w ݩͷίʔυ͸ૉ௚ͳ࣮૷ɺαʔόʔ͋ͨΓϓϩη εɺͭ·ΓίΞ෼͔͠ར༻Ͱ͖ͳ͍ঢ়ଶͰཱ͔͠ ͯΒΕͳ͍ w $16ෛՙ͕ภͬͨঢ়ଶʹͳΔ

Slide 10

Slide 10 text

w $16ෛՙ͕ภͬͨঢ়ଶ w ϚετυϯΛಈ͔ͯ͠Δαʔόʔతʹ͸શવେৎ ෉ͳϋζͳͷʹOPEFͷϓϩηε͚͕ͩͰு Γ෇͍ͯࢮɺͱ͍͏ঢ়ଶͷ͜ͱ w ͭͷίΞΛूதతʹࡴ͠ʹ͔͔Δ

Slide 11

Slide 11 text

1 3 2 4

Slide 12

Slide 12 text

w Կ͕ى͖Δ͔ w ϖʔδ͸ී௨ʹݟ͑Δͷʹɺͳ͔ͥετϦʔϛϯ ά͕߱ͬͯ͜ͳ͍ w λΠϜϥΠϯ͕ΊͪΌͪ͘Ό஗ΕͯΔ

Slide 13

Slide 13 text

w Ͳ͏΍ͬͯղܾ͢Δ͔ w ϓϩηε਺Λ૿΍ͯ͠εέδϡʔϦϯά ɺϚγϯ ಺ͷίΞؒͰෛՙΛ෼ࢄ͢Δ w ఆੴͱͯ͠͸QNͳͲͷϓϩηεϚωʔδϟʔΛ࢖ͬ ͯɺ͍͍ײ͡ʹOPEFͷϓϩηε਺Λ૿΍ͯ͋͛͠Δ w ࡴ͢ྗΛʹͯ͠΍Δ

Slide 14

Slide 14 text

1 3 2 4

Slide 15

Slide 15 text

w खͬऔΓૣ͘QNͰ࣮ݱ͠Α͏ͱͨ͠ w QNͷDPOpHpMFॻ͍ͯྡʹ͍ͨTVEPFSʹ౉ͨ͠ w ʮͳΜ͔ಈ͔ͳ͍Μ͚ͩͲʯ

Slide 16

Slide 16 text

w ϩάΛړͬͨΓ৭ʑͨ͠ΒɺͲ͏΍ΒTZTUFNEͱ૬ ੑ͕ѱ͘͏·͘ಈ͍͍ͯͳ͍Β͍͜͠ͱ͕Θ͔ͬͨ ʢ΍Γํ͕ѱ͔͔ͬͨ΋͠Εͳ͍ʣ

Slide 17

Slide 17 text

w ΋͏ϦϦʔεͨ͠ޙɺϢʔβʔ͕ࠔͬͯΔͷ͸ࠓ w ղܾ͕࠷༏ઌɺ΋͏ےྗͰղܾ͠Α͏

Slide 18

Slide 18 text

w ࠷΋खͬऔΓૣ͘OPEFΛϚϧνίΞʹରԠͤ͞Δ ʹ͸ɺDMVTUFSϞδϡʔϧΛ࢖͏ w OPEFʹඪ४Ͱόϯυϧ͞Ε͍ͯΔϞδϡʔϧ w ΫϥελϦϯάػೳΛ࣋ͬͨϓϩηεϚωʔδϟʔ ͷجૅʹͳ͍ͬͯΔ

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

w ಋೖ͸ͱͯ΋؆୯ɺSFRVJSFͯ͠JGจॻ͍ͯϝιου Λݸ࣮ߦ͢Δ͚ͩ

Slide 21

Slide 21 text

const cluster = require('cluster'); if (cluster.isMaster) { cluster.fork(); } else { // your code here }

Slide 22

Slide 22 text

w ͜ͷ··Ͱ͸ίΞ͔͠࢖͑ͳ͍ w ίΞ਺ ճɺGPSLΛ࣮ߦ͢Ε͹Α͍

Slide 23

Slide 23 text

const cluster = require('cluster'); const os = require('os'); if (cluster.isMaster) { const core = Math.max(os.cpus().length - 1, 1); for (let i = 0; i < core; i++) cluster.fork(); } else { // your code here }

Slide 24

Slide 24 text

w ͜ΕͰ੖ΕͯϚϧνίΞΛશ෦࢖͍͖ΕΔΑ͏ʹͳ Γ·ͨ͠ w ίΞ਺ ͍ͯ͠Δͷ͸GPSLͨ͠ϓϩηε͕രൃ͠ ͨ࣌ʹϚγϯ͕ਧͬඈ͹ͳ͍Α͏ʹ͢ΔͨΊͰ͢

Slide 25

Slide 25 text

w GPSLݩ͕NBTUFSɺGPSLઌ͕XPSLFS w XPSLFS΁ͷ࢓ࣄͷׂΓৼΓ͸04͕উखʹ΍ͬͯ͘ Ε·͢ʢϥ΢ϯυϩϏϯ΋બ୒Ͱ͖·͢ʣ

Slide 26

Slide 26 text

w ʢ͜͜ʹϓϩηεͷෛՙ͕͍͍ײ͡ʹݮ͍ͬͯΔ༷ ࢠ͕ݟͯऔΕΔඒ͍͠άϥϑΛஔ͘ʣ

Slide 27

Slide 27 text

w *NQSPWFTUSFBNJOH"1*TFSWFSQFSGPSNBODFXJUI DMVTUFS w ຊՈʹऔΓࠐ·Ε·ͨ͠ɺWͰϦϦʔε͞Εͯ ͍·͢ͷͰօ͞Μͥͻ͝ར༻͍ͩ͘͞

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

w تΜͰ΋Β͑ͯͳʹΑΓ

Slide 30

Slide 30 text

w ͓·͚ w ͋ͱͭϚʔδ͞Εͨͷ͕͋ΔͷͰ঺հ͠·͢

Slide 31

Slide 31 text

w "EEIBT.PSFpFMEUPBDDPVOUUJNFMJOFUPCMPDL MBSHFBNPVOUPG9)3

Slide 32

Slide 32 text

w εΫϩʔϧ͕λΠϜϥΠϯͷ຤ඌ΁౸ୡͨ࣌͠ʹແ ݶʹ9)3ϦΫΤετ͕૸ΔͷΛ཈੍ͨ͠

Slide 33

Slide 33 text

w ͨͿΜ࣮૷๨Εɺ3FEVYͷ"DUJPO3FEVDFSʹOFYU VSM͕ଘࡏ͠ͳ͍࣌ͷॲཧΛ͍Εͨ

Slide 34

Slide 34 text

w "VUPNBUJDBMMZDIBOHFUIFTJ[FPGUFYUBSFB

Slide 35

Slide 35 text

w ௕͍จষΛೖྗͨ࣌͠ʹɺUPPU͢Δ࣌ͷUFYUBSFBͷ αΠζ͕ࣗಈతʹมΘΔΑ͏ʹͨ͠ w UFYUBSFBͷBVUPSFTJ[F͸؆୯ɺߦͰ࣮ݱͰ͖Δ

Slide 36

Slide 36 text

onChange (e) { e.target.style.height = 'auto'; e.target.style.height = `${e.target.scrollHeight}px`; },

Slide 37

Slide 37 text

onChange (e) { e.target.style.height = 'auto'; e.target.style.height = `${e.target.scrollHeight}px`; }, ߦ਺ΛݮΒ࣌͢ͷॲཧ ☝ߦ਺Λ૿΍࣌͢ͷॲཧ

Slide 38

Slide 38 text

w ͓͠·͍Ͱ͢