Slide 1

Slide 1 text

seamlesss-immutabeͷ͢͢Ί Meguro.es #12 2017.10.27 tipo159

Slide 2

Slide 2 text

Immutable DataϥΠϒϥϦͷछྨ 2 छྨ ໊শ ֓ཁ (JU)VCελʔ਺ ઐ༻σʔλܕ *NNVUBCMFKT -JTU 4UBDL .BQ 0SEFSFE.BQ 4FU 0SEFSFE4FU 3FDPSEΛఏڙ .PSJ MJTU WFDUPS IBTI.BQ TFU TPSUFE4FU SBOHF RVFVFΛఏڙ طଘσʔλܕ ֦ு TFBNMFTT JNNVUBCMF "SSBZͱ0CKFDUͱޙํޓ׵ੑͷ͋ Δ*NNVUBCMF%BUBΛఏڙ

Slide 3

Slide 3 text

seamless-immutableΛ͢͢ΊΔཧ༝ • ίʔυΛେ͖͘มߋͤͣʹImmutable DataΛಋೖՄೳ • Immutable DataΛࢀর͢Δίʔυ͸มߋෆཁ • ྫ͑͹ɼReactΛ࢖ͬͨϓϩδΣΫτʹImmutable.jsΛ్த ͔Βಋೖ͢Δ͜ͱ͸ࠔ೉ʢImmutable.jsͷσʔλܕΛੜ͔͢ Α͏σʔλߏ଄Λઃܭ͠௚͢ඞཁ͕͋Δʣ • ͜ͷΑ͏ͳέʔεͰ͸ɼߏ଄ͷڞ༗ʹΑΔޮ཰Խ͸Ͱ͖ͳ ͍͕ɼϏϡʔߋ৽ཁ൱൑அͷޮ཰Խ͕Ͱ͖Δseamless- immutableΛ࢖ͬͯΈͯ͸! 3

Slide 4

Slide 4 text

seamless-immutableͷྫ Immutable([3, 1, 4]).sort() // ImmutableError sort()͕immutableͳϝιουͰ͸ͳ͍ͨΊ Immutable([1, 2, 3]).concat([10, 9 , 8]).sort() // ImmutableError concat()͕immutableͳϝιουͰ͸ͳ͍ͨΊ [1, 2, 3].concat(Immutable([6, 5, 4])).sort() // [1, 2, 3, 4, 5, 6] // concat()͕mutableͳArrayΛฦͨ͢Ί var obj = Immutable({all: “your base”, are: {belong: “to them”}}); Immutable.merge(obj, {are: {belong: “to us”}}) // Immutable({all: “your base”, are: {belong: “to us”}}) 4

Slide 5

Slide 5 text

Immutable.from • JavaScriptͷσʔλΛImmutableʹม׵ Immutable.from([1, 2, 3]); ͸ҎԼͱಉ͡ Immutable([1, 2, 3]); 5

Slide 6

Slide 6 text

Immutable Array • ҎԼͷϝιουΛ௥Ճ • flatMap • asObject • asMutable • isImmutable 6

Slide 7

Slide 7 text

Immutable Object • ҎԼͷϝιουΛ௥Ճ • merge • replace • set • setIn • getIn • update • updateIn • without • asMutable 7

Slide 8

Slide 8 text

ϕϯνϚʔΫ݁Ռ঺հ • https://github.com/MrCheater/immutable- benchmarks merge • githubʹొ࿥͞ΕͨίʔυͰ͸ɼseamless-immutable ͕6.1.0͕ͩͬͨɼ7.1.2ʹߋ৽࣮ͯ͠ࢪ 8

Slide 9

Slide 9 text

ϕϯνϚʔΫ݁Ռ(Array get) 9 ࣮ߦ࣌ؒ NT ܁Γฦ͠ճ਺ +4 *NNVUBCMFKT .PSJ TFBNMFTTJNNVUBCMF

Slide 10

Slide 10 text

ϕϯνϚʔΫ݁Ռ(Object get) 10 ࣮ߦ࣌ؒ NT ܁Γฦ͠ճ਺ +4 *NNVUBCMFKT .PSJ TFBNMFTTJNNVUBCMF

Slide 11

Slide 11 text

ϕϯνϚʔΫ݁Ռ(Array set) 11 ࣮ߦ࣌ؒ NT ܁Γฦ͠ճ਺ +4 *NNVUBCMFKT .PSJ TFBNMFTTJNNVUBCMF

Slide 12

Slide 12 text

ϕϯνϚʔΫ݁Ռ(Object set) 12 ࣮ߦ࣌ؒ NT ܁Γฦ͠ճ਺ +4 *NNVUBCMFKT .PSJ TFBNMFTTJNNVUBCMF