大規模開発に打ち勝つためのマルチパラダイム / Beat with multi paradigms

大規模開発に打ち勝つためのマルチパラダイム / Beat with multi paradigms

2018/6/16 ng-japan 2018にて発表した資料です。

2bedb1eb8f841cd3c3ae584600b016e0?s=128

OKUNOKENTARO

June 16, 2018
Tweet

Transcript

  1. 7.

    ݱࡏͷঢ়گ w ૯ߦ਺໿ ߦ ʢۭߦɺ ςε τίʔ υؚΉʣ  w

    ૯ϑΝΠϧ਺ ϑΝΠϧ ʢςε τؚΉʣ  w ։ൃମ੍ w ϑϩϯ τΤϯ υ ɾ ΤϯδχΞਓ
  2. 14.
  3. 18.

    w ܖ໿ʹΑΔઃܭɺ %FTJHOCZ$POUSBDU %C$ͱ΋ w ͋Δϝ ιο υΛݺͿͱ͖ɺ ݺͿଆͰอূ͢΂͖ෆม৚݅ɺ ࣄલ৚͕݅ຬͨ͞ΕΔ

    w Ͱ͋Ε͹ w ͦͷϝ ιο υͷऴྃ࣌ʹอূ͢΂͖ෆม৚݅ɺ ࣄޙ৚͕݅ຬͨ͞ΕΔ w ࣮૷ͷޡΓͳͷ͔ɺ ϝ ιο υΛ࢖͏ଆͷޡΓ͔ΛϋοΩ Ϧͤ͞Δ ܖ໿ϓϩάϥϛϯά
  4. 19.

    w console.assert() + unassert΍JOWBSJBOU͕Φεεϝ
 `npm i invariant` w ಋೖ؆୯ w

    ܖ໿ϓϩάϥ ϛϯάͷ׬શ࠶ݱ͸Ͱ͖ͳ͍͕
 ʮ࣮૷ͷޡΓͳͷ͔ɺ ϝ ιο υΛ࢖͏ଆͷޡΓ͔ΛϋοΩ Ϧͤ͞Δʯ 
 Λڗड͢ΔͨΊͷΞϓϩʔν w +BWB4DSJQU։ൃʹ͓͍ͯ͸๷ޚతϓϩάϥ ϛϯάɺ ૣظϦλʔϯͳͲ΋
 ஌ࣝͱͯ͠༗༻ "OHVMBSͳΒ͹
  5. 20.

    w ԣஅతؔ৺ࣄ ʢΞεϖΫ τʣ Λڞ௨Խ࣮ͯ͠ߦ͢ΔͨΊͷϓϩάϥ ϛϯάख๏ w ༗໊ͳྫͱͯ͠͸ϩάग़ྗ w ͋ΒΏΔϞδϡʔϧɺ

    ͋ΒΏΔϝ ιο υͰϩάͷग़ྗ͸༗༻ w ͨͩ͠ɺ ͦΕΒ͢΂ͯʹϩάग़ྗ༻ͷίʔ υ͕ॻ͔Ε͍ͯͨΒ
 ຊ౰ʹॏཁͳॲཧΛࣔ͢ίʔ υ͕ຒ΋Εͯ͠· ͏ w ෭࣍తͳॲཧԣஅతؔ৺ࣄΛ෼཭͠ຒ΋Εͳ͍Α ͏ʹ͢Δख๏ ΞεϖΫ τࢦ޲ϓϩάϥϛϯά
  6. 21.

    w "OHVMBS։ൃऀʹ͸͓ͳ͡Έɺ %FDPSBUPSΛ࢖͏ w Ϋϥε໊΍ϝ ιο υ໊ͷ্ʹ%FDPSBUPSͱͯ͠෼཭ͨؔ͠਺Λهड़ wʮϩάΛग़ྗͤΑʯ ͱ͍͏ॲཧ͸%FDPSBUPS಺෦ʹӅṭͭͭ͠ϩάग़ྗΛୡ੒ w

    %FDPSBUPSॲཧ಺Ͱ͸
 1SPYZύλʔϯ (P' ΍Ϧ ϑ ϨΫγϣϯ ɾ ϓϩάϥ ϛϯάͳͲͷख๏͕༗༻ w ௐࢠʹ৐ͬͯ΍Γ͗͢Δͱͨͩͷ೉ಡԽ "OHVMBSͳΒ͹
  7. 23.

    w ෭࡞༻Λ༻͍ͣʹҾ਺ ʢೖྗʣ ͱ໭Γ஋ ʢग़ྗʣ Λ΋ͬͨؔ਺Λ
 ͍ͭ͘΋૊Έ߹ΘͤΔ͜ͱͰॲཧΛ࣮ݱ͢Δख๏ w +BWB4DSJQU͸ɺ ୈҰڃؔ਺Λѻ͑ΔͷͰ࠶ݱ͠΍͍͢

    w ؔ਺Λ͍ͭ͘΋૊Έ߹ΘͤΔͱ͍͏఺Ͱ͸3Y+4Ͱ΋͓ͳ͡Έ w ͪͳΈʹ3Y+4͸ϦΞΫςΟ ϒϓϩάϥ ϛϯάɺ એݴܕϓϩάϥ ϛϯά
 ͳͲͷύϥμΠϜͷ࣮ݱͰ͋Γɺ ؔ਺ܕϓϩάϥ ϛϯάͰ͸ͳ͍ ؔ਺ܕϓϩάϥϛϯά
  8. 25.

    w 0QUJPO΍&JUIFSͱ͍ͬͨؔ਺ܕݴޠ )BTLFMM 4DBMBͳͲ ͷٕज़Λഈआ w 0QUJPOͱ͸ ʮ஋͕͋Δ͔ແ͍͔Λද͢ܕʯ  w

    &JUIFSͱ͸ ʮͭͷ͏ ͪͲͪΒ͔Λද͢ܕʯ ؔ਺ܕ ɾ δΣωϦ οΫΛ૊Έ߹Θͤͯ
  9. 29.

    wʮϑϩϯ τΤϯ υ ɾ ΤϯδχΞ͔ͩΒ+BWB4DSJQU 5ZQF4DSJQUֶ͹ͳ͘ ͪΌʜʯ  wʮ)5.-΋$44΋΍Βͳ͍ͱʜʯ 

    w ΋ͪΖΜͦΕ͸େࣄ w ҰํͰɺ ΤϯδχΞͱͯ͠ͷࢹ໺Λ޿͛Δ͜ͱ΋େࣄ ϑϩϯ τΤϯ υ ɾ ΤϯδχΞͱ ͯ͠
  10. 30.

    wʮ͜ͷݴޠͰ͸+4Ͱى͜ Γ͕ͪͳ໰୊Λ͜͏΍ͬͯղܾͯ͠Δͷ͔ʯ  w ˠ+4Ͱ΋ࣅͨΑ ͏ͳΞϓϩʔνͰղܾ͍ͯ͠ΔϥΠ ϒϥ Ϧ͕͋Δ ʂ 

    wʮ࠷৽ͷݴޠʹ͋ͬͨ˓˓ߏจɺ +4ʹ΋ཉ͍͠ͳʔʯ  w ˠ5$ͷϓϩϙʔβϧʹ΋͏ग़ͯΔ ʂ  w ͱ͍ͬͨɺ +BWB4DSJQUք۾ΩϟονΞοϓʹ͓͚ΔΞϯςφͷຊ਺͕૿͑
 ൃݟ΍௥੻͕༰қʹͳΓɺ ڻ͔ͳ͘ ͯࡁΉ ଞݴޠֶशͷར఺
  11. 31.

    w ΩϟονΞοϓ΁ͷযΓɺ ྲྀߦϥΠ ϒϥ Ϧ΁ͷܯռɺ ϑ ϨʔϜϫʔΫϓϩϨεͷউഊʜ w ͜Ε͸ࠣࡉͳ͜ͱ w

    ߄ͯΔ͜ͱ͸ͳ͍ w ຊ࣭తͳղܾखஈ͸Կͳͷ͔Λߟ͑Δ w ྺ࢙ʹֶͿ w ύϥμΠϜʹֶͿ ߄ͯͳ͍ͨΊʹ