$(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
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