Hatena Engineer Seminar #8 https://connpass.com/event/60276/
IS THE ORDER MAINTAINED?ϑϩϯτΤϯυͷடংอͨΕ͍ͯΔ͔ʁ@masawada
View Slide
id:masawada
ࠓ͙͢ొʂIUUQCMPHIBUFOBOFKQSFHJTUFS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ͯͳϒϩάप
ख़͞Εͨ+4ίʔυ܈
/PEFֶԂࡇͰͷൃද
,ZPUPKTͰͷൃද
ࠓ͜ΕҎ߱ ͷ͜ͱΛ͠·͢ʂʂʂʂʂʂʂʂʂʂʂʂʂ
ͷલʹ
લճ·Ͱͷ ͋Β͢͡
+4ͷׂw ݹ͖ྑ͖DPODBU͔ΒCSPXTFSJGZʹw Ұ෦ͷϑΝΠϧߦ͘Β͍͋ͬͨʜw ˠߦʹ
$*ͰςετΛճ͢w ͪΌΜͱϏϧυͰ͖Δ͔w &4-JOUͰνΣοΫw Ϣχοτςετ
$*ͰςετΛճ͢+4ςετͷ࣮ߦ݁Ռ
OQNΞοϓσʔτσʔͷಋೖw ຖ݄ୈҰ݄༵Λ OQNΞοϓσʔτσʔʹw ಉ࣌ʹ/PEFKTͷΞοϓσʔτ ߦͳ͏
OQNΞοϓσʔτσʔͷಋೖ
ΦϨΦϨ'MVYΛ3FEVYʹدͤΔw ͜Ε·ͰಠࣗܰྔϥΠϒϥϦͰ 'MVYw 3FBDU'MVYք۾ͷ͕ࣝඞཁw νʔϜͷΤϯδχΞʹ ϑϩϯτΤϯυઐډͳ͍
ΦϨΦϨ'MVYΛ3FEVYʹدͤΔw ಠࣗ'MVY࣮ΛϦϑΝΫλϦϯάw 3FEVYΞʔΩςΫνϟʹ͚ۙͮΔw 3FEVYΘͳ͍
·ͩ·ͩൃల్্
ࠓޙͷվળʹඞཁͳͷw νʔϜϝϯόʔͱͷ૬ஊw ࣮ํ๏ͷυΩϡϝϯτԽw
ྑ͍αʔϏεΛ࡞͍ͬͯͧ͘ʂ ʂʂʂʂʂʂʂʂʂʂʂʂʂʂ
ͱ͜Ζ͕
ࠓ͢͜ͱ
݄·Ͱʹͬͨ͜ͱw ࠷৽ใΛΩϟονΞοϓ͢Δ ମ੍Λ͑Δw ςετվળw OQNΞοϓσʔτσʔͷഇࢭw 3FBDUͷར༻ൣғΛ͛Δ
Mission 1:INPUT &OUTPUT
+4൪ෆࡏ
࠷৽ใͷऩूͱڞ༗w ऩूw ϑϩϯτΤϯυϥϯνw ࣾ֎ަྲྀw ڞ༗w υΩϡϝϯτͷඋw '8(ͷ։࠵ ݱࡏഇࢭ
υΩϡϝϯτͷඋҾ͖ܧ͗
υΩϡϝϯτͷඋ Ҿ͖ܧ͗w ٧·ΓͲ͜ΖΛͳ͘͢w ࢦͷڞ༗w ελΠϧͷࢦఠͳͲ&4-JOUʹͤΔ
υΩϡϝϯτͷඋ Ҿ͖ܧ͗
'8(ͷ։࠵
'8(ͱw ϑϩϯτΤϯυϫʔΩϯάάϧʔϓw ϑϩϯτΤϯυʹؔ͢Δ Α͠ͳ͠͝ͱΛ͠߹͏w 18(ͱซ࠵
18(ͱw ύϑΥʔϚϯεϫʔΩϯάάϧʔϓw ΠϯϑϥपΓͷ༷ࢠΛఆظతʹ؍w ରԠ͕ඞཁͰ͋Ε *TTVFͷ༏ઌΛ্͛ΒΕΔ
18(ͱ
1BHF4QFFE*OTJHIUT
'8(w Ұϲ݄͝ͱ։࠵w ৽ͨʹಋೖٕͨ͠ज़Λࣗຫw ࠔΓ͝ͱΛڞ༗w ͷʹΑͬͯ༏ઌΛ্͛Δ
'8(
'8(w ࠷ۙഇࢭ͞Ε·ͨ͠w ͋Δఔҙࣝͷڞ༗͕Ͱ͖ͨw ใڞ༗ࣾάϧʔϓ PSJTTVFͰ
IMPROVE THE TEST ENVIRONMENTMission 2:
ςετڥͷվળw 'MPXಋೖw QPXFSBTTFSUಋೖw &O[ZNFಋೖ
QPXFSBTTFSUCBCFMQMVHJOFNQPXFSBTTFSU
QPXFSBTTFSUrequire(‘assert’);↓require(‘power-assert’);উखʹஔ͖͑ͯ͘ΕΔ
&O[ZNF3FBDU$PNQPOFOUͷ ςετ͍͍ײ͡ʹ ॻ͚ΔΑ͏ʹ͢Δͭ
ςετڥͷվળw ςετΛॻ͖͍͢ڥΛ࡞Δw ϨϏϡʔΑΓલʹؒҧ͍ʹ ؾ͚ΔڥΛ࡞Δw ࡉ͔͘ೖΕ͍ͯํΛνʔϜʹڞ༗
Mission 3:MODULE UPDATING STRATEGY
OQNΞοϓσʔτσʔͭΒ͍w $)"/(&-0(Λ୳͢ͷʹ͕͔͔࣌ؒΔw ࡞ۀऀʹϨϏϡΞʔʹෛ୲͕͔͔Δw ϨϏϡʔࣗମʹख͕͔͔ؒΔw ຊʹҰϲ݄͝ͱʹΔͷͳͷ͔ w ͲΕ͘Β͍ͷϖʔεͰݹͼ͍ͯ͘ͷ͔Γ͍ͨ
ZBSOPVUEBUFEGPSNBUUFS
$ yarn outdated --json
ZBSOPVUEBUFEGPSNBUUFSw $)"/(&-0(Λ.BSLEPXOʹؚΊͯग़ྗw ύοέʔδͱ$)"/(&-0(ͷରΛ :".-ʹอଘw .BDLFSFMʹݹ͍ύοέʔδΛߘͰ͖Δw ແࢹ͢ΔϑΝΠϧΛࢦఆͰ͖Δw K2VFSZͷΞοϓσʔτͳͲ͚͍ͨ
IUUQEFWFMPQFSIBUFOBTUB⒎DPNFOUSZ
'"22(SFFOLFFQFSݕ౼ͨ͠
'"2"ͯ͠·ͤΜ
(SFFOLFFQFSw ͢Έ·ͤΜΒͳ͔ͬͨw ݕ౼ͯ͠Θͳ͔͔ͬͨͳɺɺw ϒϩάͰ(JU)VC&OUFSQSJTFΛ͍ͬͯͯ ؾܰʹ͓ࢼ͠Ͱ͖ͳͦ͞͏w ZBSOPVUEBUFEGPSNBUUFS͘Β͍ͳΒ ίετগͳͯ͘Ͱ͖Δ
Mission 4:REACTIZE VIEW
कΓ
߈Ί
3FBDUBTB5FNQMBUF&OHJOF
3FBDUBTB5FNQMBUF&OHJOFw 9TMBUFͷ55FSTFΛ͍ͬͯΔw 1FSMͷςϯϓϨʔτΤϯδϯw ૉ
[% IF element.selected %] class=“active”[% END %]3FBDUBTB5FNQMBUF&OHJOF
3FBDUBTB5FNQMBUF&OHJOF3FBDUʹدͤΔ
3FBDUBTB5FNQMBUF&OHJOFw 1FSM• $r->embed_state(‘pro’, $json)w +BWB4DSJQU• const state = InitialState.get(‘pro’)
3FBDUBTB5FNQMBUF&OHJOF2443͠ͳ͍ͷ
3FBDUBTB5FNQMBUF&OHJOF"ݱঢ়Ͱ443ʹ͢Δ ϝϦοτΛݟੵ͍ͬͯͳ͍
1FSMPO3FBDUPO443w ·ͩେʑతʹਐΊ͍ͯΔΘ͚Ͱͳ͍w ͦͦ1FSMͰ443ͷ࣮͕গͳ͍w ఫୀՄೳͳܗͰਐΊ͍ͯΔ
ࠓͨ͜͠ͱw +4൪͕͍ͳ͍͚ͯͬͯ͘Δ νʔϜͮ͘Γw ςετ͕ॻ͖͍͢ྑ͘ͳ͍͕͔Γ͍͢ڥͮ͘Γw ৽ͨͳ͜ͱΛ͢Δͱ͖ఫୀ͘͢͠
ͨΓલͷ͜ͱΛॗʑͱ͍ͬͯ͘εϐϦοτ
·ͩ·ͩΔ՝
ࠓޙΓ͍ͨw ͞ΒͳΔςετվળw 1IBOUPN+4ग़w &&ςετ$*Ͱճ͢w υΩϡϝϯτͷߋ৽
ಓʹվળΛଓ͚͍ͯͧ͘ʂʂ ʂʂʂʂʂʂʂʂʂʂʂʂʂʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠