Slide 1

Slide 1 text

7VFKTॳ৺ऀ͕FMFDUSPOWVFͰ σεΫτοϓΞϓϦέʔγϣϯΛ ࡞੒ͨ͠࿩ WLBOTBJ7VFKT/VYUKTNFFUVQ 4"8

Slide 2

Slide 2 text

$(whoami) w ࢯ໊Ճ౻फҰ࿠ ࡀ Ѫ஌ग़਎ɾେࡕࡏॅ ϋϯυϧωʔϜ4"8 ‣ ϗϥʔ͸ۤखͳͷͰɺөըl4"8zΛݟͨ͜ͱͳ͍ 4/4ΞΧ΢ϯτ ‣ 5XJUUFS!B[VLJ@FBUFS ‣ (JU)VCB[VLJQFOHVJO w ॴଐגࣜձࣾ.4&/ ೥໨ 2 Let’s play a game. FreeBSD macOS Vue.js Linux

Slide 3

Slide 3 text

.BOQBHFPG4"8 w export EDITOR=vim w 04NBD04 6CVOUV-JOVY 'SFF#4% ֶੜ࣌୅͸6/*9-JOVY؀ڥ͕ϝΠϯ ‣ γΣϧ͸ओʹCBTI ࢓ࣄͷ։ൃ؀ڥ͸8JOEPXT w ϓϩάϥϛϯάݴޠ1FSM 1)1 +BWB4DSJQU ϑϨʔϜϫʔΫ͸-BSBWFMͱ7VFKT 3

Slide 4

Slide 4 text

WLBOTBJNFFUVQࢀՃྺ w ࢀՃճ਺ճ ճ໨WLBOTBJ7VFKT/VYUKTNFFUVQ ‣ લճҰൠࢀՃ࿮ʹͯࢀՃ ճ໨WLBOTBJ7VFKT/VYUKTNFFUVQ ‣ ࠓճొஃ࿮ʹͯࢀՃ w 7VFKTྺ͓Αͦϲ݄ ΰϦΰϦͱ͸ॻ͍ͯͳ͍ 4

Slide 5

Slide 5 text

ൃද֓ཁ 7VFKTॳ৺ऀ͕ FMFDUSPOWVFͰ࡞੒ͨ͠ σεΫτοϓΞϓϦέʔγϣϯΛ঺հ 5

Slide 6

Slide 6 text

DTWFEJUPS w &YDFMϥΠΫͳ6*Ͱ$47ϑΝΠϧΛฤू͢Δπʔϧ (JU)VCB[VLJQFOHVJODTWFEJUPS w /PEFKTWҎલͰಈ࡞ /PEFKTWܥͰ͸ಈ࡞͠ͳ͔ͬͨʜ w ґଘύοέʔδͷ੬ऑੑ͸ະղܾ શવอक͍ͯ͠ͳ͍ʜ 6

Slide 7

Slide 7 text

ͳΜͰ࡞ͬͨͷ w େֶӃੜ࣌୅ʹ5"ͷۀ຿Ͱ࠾఺݁ՌΛ$47ϑΝΠϧʹهड़ $47ϑΝΠϧͷจࣈίʔυ͸4IJGU@+*4 w େֶͷNBD04ͷ&YDFMͰฤूͯ͠อଘ͢Δͱ೔ຊޠ͕l_zʹ ݪҼϩέʔϧΛӳޠʹ͍͔ͯͨ͠ΒͬΆ͍ʜ /VNCFSTΛ࢖͏ͱσϑΥϧτ͕65'ͳͷͰจࣈԽ͚ w $47Λฤू͢Δπʔϧ͕ཉ͍͠ ࣗ࡞͠Α͏ 7

Slide 8

Slide 8 text

ผͷํ๏͕͋ͬͨͷͰ͸ w ϩέʔϧΛ೔ຊޠʹઃఆ͢Ε͹ྑ͍ͷͰ͸ ׶͑ͯӳޠʹ͍ͯ͠Δ͔Βม͑ͨ͘ͳ͍ w /VNCFST΍-JCSF0⒏DFͱ͔୅༻ͨ͠Β͍͔Μͷ͔ Θ͟Θ͟5"ͷͨΊ͚ͩʹσϑΥϧτͷจࣈίʔυΛม͑ͨ͘ͳ͍ Θ͟Θ͟5"ͷͨΊ͚ͩʹ-JCSF0⒏DFͱ͔ೖΕΔͷ໘౗͍͘͞ 8

Slide 9

Slide 9 text

࡞Δํ͕ΑͬΆͲखؒͰ͸ w ݐલ 7VFKTͷ࣮ફ ‣ ͔ͤͬ͘झຯͰษڧ͍͔ͯͨ͠Β׆༻͔ͨͬͨ͠ &MFDUSPOΛ࠾༻ͯ͠ϚϧνϓϥοτϑΥʔϜԽ ‣ NBD04͚ͩͰͳ͘ɺ8JOEPXT΍-JOVYͰ΋ར༻Մೳʹ w ຊԻ ࡞Γ͍͔ͨΒ࡞ͬͨ ‣ ࣮૷ָ͍͠ 9

Slide 10

Slide 10 text

࢖༻͢ΔϥΠϒϥϦ w σεΫτοϓ؀ڥͷ։ൃ&MFDUSPO w +BWB4DSJQUϑϨʔϜϫʔΫ7VFKT w &YDFMϥΠΫͳ6*)BOETPOUBCMF w $47ύʔαQBQBQBSTF w จࣈίʔυͷࣗಈ൑ผFODPEJOHKBQBOFTF 10

Slide 11

Slide 11 text

ओͳػೳ w $47ΛಡΈࠐΜͰ&YDFMϥΠΫͳςʔϒϧͱͯ͠දࣔ จࣈίʔυ΋ࣗಈ൑ผ w $47Λ&YDFMϥΠΫͳςʔϒϧΛ࢖ͬͯฤू w ฤूͨ͠ςʔϒϧ͔Β$47ʹग़ྗ จࣈίʔυΛࢦఆͯ͠ग़ྗ΋Մೳ 11

Slide 12

Slide 12 text

ओͳػೳͷ֓ཁਤ 12

Slide 13

Slide 13 text

$47ϑΝΠϧͷΦʔϓϯ w ϝΠϯϓϩηε બ୒͞ΕͨϑΝΠϧͷ಺༰Λऔಘ ‣ fsϞδϡʔϧͷreadFileSync()Λར༻ *1$௨৴Ͱ7VFʹϑΝΠϧͷத਎ΛૹΔ w Ϩϯμϥʔϓϩηε $47ͷςΩετ͔Βσʔλߏ଄ʹม׵ͯ͠ಡΈࠐΈ ‣ QBQBQBSTFͷparse()ϝιουͰ$47Λ഑ྻʹύʔε ‣ )BOETPOUBCMFͷloadData()ϝιουͰ഑ྻΛςʔϒϧʹׂΓ౰ͯ 13

Slide 14

Slide 14 text

ฤू݁ՌΛ$47ϑΝΠϧʹอଘ w Ϩϯμϥʔϓϩηε ςʔϒϧͷߏ଄͔Β$47ςΩετʹม׵ ‣ QBQBQBSTFͷunparse()ϝιουͰςΩετԽ *1$௨৴ͰϝΠϯϓϩηεʹ಺༰Λૹ৴ w ϝΠϯϓϩηε $47ϑΝΠϧͱͯ͠อଘ ‣ fsϞδϡʔϧͷwriterStream.write()ʹΑͬͯϑΝΠϧʹग़ྗ 14

Slide 15

Slide 15 text

Ϩϯμϥʔϓϩηε w 7VFKTͰϑϩϯτΤϯυͷॲཧΛ࣮૷ $47ϑΝΠϧͱ+BWB4DSJQUͰѻ͏จࣈྻͷΤϯίʔυͷ૬ޓม׵ ‣ FODPEJOHKBQBOFTFΛར༻ $47ͱςʔϒϧͷίϯϙʔωϯτ༻ͷσʔλߏ଄ͷ૬ޓม׵ ‣ 1BQBQBSTFͷར༻ ςʔϒϧͷॲཧ͸)BOETPOUBCMFʹؙ౤͛ 15

Slide 16

Slide 16 text

Ϩϯμϥʔϓϩηε 16 $47ͱσʔλߏ଄ͷ૬ޓม׵ $47σʔλͷಡΈࠐΈͱ$47σʔλ΁ͷग़ྗ

Slide 17

Slide 17 text

ϝΠϯϓϩηε w &MFDUSPOͰόοΫΤϯυͷॲཧΛ࣮૷ ΢Οϯυ΢ͷૢ࡞ ΢Οϯυ΢ͷ࡞੒ɾΫϩʔζͳͲ $47ϑΝΠϧͷΦʔϓϯ ςʔϒϧͷ಺༰Λ$47ϑΝΠϧʹอଘ ‣ &MFDUSPOͷ*1$௨৴ͱ/PEFKTͷfsϞδϡʔϧʹΑ࣮ͬͯݱ 17

Slide 18

Slide 18 text

ϝΠϯϓϩηε 18 ϑΝΠϧΦʔϓϯͷॲཧ ϝχϡʔόʔͷઃఆ

Slide 19

Slide 19 text

ۤ࿑ͨ͠఺ w 7VFͷίϯϙʔωϯτͱϦΞΫςΟϒγεςϜ ϑΝΠϧ͔ΒಡΈࠐΜͩ$47Λଈ࠲ʹςʔϒϧʹදࣔͰ͖ͳ͍ ฤू಺༰͕ग़ྗ࣌ʹ൓ө͞Εͳ͍ ࣮͸͋·Γ֮͑ͯͳ͍ʜ w &MFDUSPOͷ*1$௨৴ʹΑΔϨϯμϥʔͱϝΠϯϓϩηεͷ࿈ܞ Πϕϯτ͕͏·͘Ωϟονग़དྷͳ͍ 19

Slide 20

Slide 20 text

·ͱΊ w FMFDUSPOWVFͰ͓खܰʹσεΫτοϓΞϓϦέʔγϣϯΛ࡞੒ 7VFKTͱ&MFDUSPOॳ৺ऀͰ΋࡞ΕΔ ‣ ؆୯ͱ͸ݴ͍ͬͯͳ͍ w )BOETPOUBCMFΛ࢖͑͹&YDFMϥΠΫͳΞϓϦέʔγϣϯΛखܰʹ࡞੒ )BOETPOUBCMFͷίϯϙʔωϯτʹσʔλΛloadData()Ͱ౉͚ͩ͢Ͱ0, ‣ ׳Εͳ͍ͱࠞཚ͠΍͍͢ 20

Slide 21

Slide 21 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠