サーバーサイドエンジニアも知っておくべきフロントエンドの今

A26e80e38252b6b47ee5130db90c2cc9?s=47 itkrt2y
March 22, 2019

 サーバーサイドエンジニアも知っておくべきフロントエンドの今

Rails Developers Meetup 2019

A26e80e38252b6b47ee5130db90c2cc9?s=128

itkrt2y

March 22, 2019
Tweet

Transcript

  1. 2.

    ࣗݾ঺հ • ൘૔ ୡ໵ (@itkrt2y) • λέϢʔɾ΢Σϒגࣜձࣾ • Ruby on

    Rails ͷडୗ։ൃձࣾ • RubyKaigi 2019 Platinum εϙϯαʔ • Ruby on Rails ͷ͓࢓ࣄืूதʂ
  2. 3.
  3. 7.
  4. 10.
  5. 12.

    એݴత View ʹΑΓ DOM ͕؅ཧՄೳʹ Ҏલ͸ jQuery ͳͲͰखଓ͖తʹ DOM Λૢ࡞͍ͯͨ͠ɻ

    Ծ૝ DOM ʹΑͬͯαʔόʔαΠυతͳʮ͋Δঢ়ଶʹରͯ͋͠ Δ΂͖ DOM Λఆٛ͢Δʯͱ͍͏એݴత View ͷύϥμΠϜ͕ϑ ϩϯτΤϯυʹ࣋ͪࠐ·ΕɺJS Ͱ DOM Λ؅ཧͰ͖ΔΑ͏ʹ ͳͬͨɻ
  6. 13.

    lit-html Google ͷ Polymer νʔϜ͕࡞͍ͬͯΔ ϥΠϒϥϦ Ծ૝ DOM Ͱ͸ͳ͍͚ͲɺDOM ͷ

    diff Λऔͬͯࠩ෼ߋ৽ग़དྷͯɺԾ૝ DOM ܥ ΑΓ΋଎͍ ·ͩྲྀߦΒͳ͍ͱࢥ͏͚Ͳɺ ஌͓͍ͬͯͯଛ͸ͳ͍Ͱ͢
  7. 14.
  8. 15.

    Editor Visual Studio Code vscode + TypeScript + ESLint +

    Prettier ͷ։ൃମݧ͕ྑ͗͢Δɻ ଞͷΤσΟλΛ࢖͍͍ͨਓ΋ɺ·ͣ͸͜ ͷ։ൃମݧΛຯΘ্ͬͨͰଞͷΤσΟλ Λ࢖͍ͬͯͩ͘͞ɻ
  9. 16.
  10. 18.
  11. 21.

    module bundler • WEB αʔϏε։ൃ => webpack • ϥΠϒϥϦ։ൃ =>

    Rollup pika ͷಈ޲͸ཁνΣοΫ webpacker ͸࢖Θͳ͍ํ͕͍͍Ͱ͢
  12. 22.
  13. 23.

    Test • Jest • E2E ςετ͸ Jest + Puppeteer ੲ͸

    Mocha, Chai, Karma, Jasmine ͳͲ ৭ʑ͋Γ·͕ͨ͠ɺࠓ͸جຊ Jest
  14. 28.

    Web Components ͰԾ૝ DOM ͸ࢮ͵ʁ ݱঢ়ͷ Web Components ͸Ծ૝ DOM

    ʹൺ΂ͯ໌Β͔ʹػೳ ͕଍Γ͍ͯͳ͍͠ෆࣗ༝ͳͷͰɺࠓͷͱ͜ΖͦΕ͸ͳ͍ ͨͩɺWeb Components Ͱॻ͚Δ΋ͷ͸ Web Components Ͱ ॻ͘ྲྀΕʹ͸ͳ͖͍ͬͯͯΔɻ
  15. 32.

    ࠷ۙͷ஫໨ͷ࿩୊ • CDN Worker • Micro Frontends • PWA •

    ϨϯμϦϯά࠷దԽ • Web Payments / Web Authentication
  16. 33.

    ࠷ۙͷ஫໨ͷ࿩୊ • CDN Worker <= ࠓ೔͸͜Ε͚ͩ • Micro Frontends •

    PWA • ϨϯμϦϯά࠷దԽ • Web Payments / Web Authentication
  17. 37.

    ϓϥοτϑΥʔϜ • AWS Lambda@Edge + CloudFront • Cloudflare Workers •

    Google Cloud Functions + Firebase Hosting Cloud Functions ͷ࣮ߦ؀ڥ͸ΤοδϩέʔγϣϯͰ͸ͳ͍͕ɺ΍ΕΔ͜ͱ͸େମಉ͡
  18. 42.

    ΍Γ͔ͨͬͨ͜ͱ 1 1. FMP / SEO Λ࠷దԽ͍ͨ͠ 2. ͦͷͨΊʹ͸ɺϨϯμϦϯάࡁΈ HTML

    ΛΫϥΠΞϯτʹૹΓͨ ͍ 3. ͭ·ΓɺSSR ͍ͨ͠ ՝୊ SSR ʹ͸ JS ࣮ߦ؀ڥ͕ඞཁ
  19. 44.

    CDN Worker ͳΒղܾͰ͖Δ • ΤοδϩέʔγϣϯͰϨϯμϦϯάͯ͠ϨεϙϯεΛฦͤΔ • ϨϯμϦϯάࡁΈ HTML Λ CDN

    ʹΩϟογϡ͢Δ͜ͱͰɺ2 ճ໨Ҏ߱ͷϨε ϙϯε͸͞Βʹ଎͍ • ࠷ߴͷ RTT / FMP / SEO • ϨϯμϦϯά༻ͷ Node.js αʔόʔΛࣗલͰݐͯͳ͍͍ͯ͘ • ΦϦδϯαʔόʔΛͲͷϦʔδϣϯʹஔ͍ͯ΋଎౓͕໰୊ͳ͘ͳΔ • ίετͷ͍҆ɾαʔϏεఏڙͷૣ͍ϦʔδϣϯΛબ୒Ͱ͖ΔΑ͏ʹͳΔ • ΦϦδϯαʔόʔ΁ͷϦΫΤετ਺Λ࠷খԽͰ͖Δ
  20. 47.

    ࠷ޙʹɺϑϩϯτΤϯυʹ͍ͭͯ఻͍͑ͨ͜ͱ • ΤίγεςϜ͸े෼ʹ੒ख़͍ͯ͠Δ • ։ൃମݧ͕΋ͷ͘͢͝ྑ͘ͳ͍ͬͯΔ • ϥΠϒϥϦͷཚཱ΋མͪண͍͍ͯͯɺมԽ͸ૣ͘ͳ͍ • ࠷ۙͷ࿩୊͸ UX

    ʹ௚݁͢Δ΋ͷ͕ଟ͍ • ϢʔβʔͷͨΊʹ΋ɺαʔόʔαΠυΤϯδχΞ΋ཧղ࣮͠ફ͢Δ΂͖ • ϑϩϯτΤϯυΛϑϩϯτΤϯυٕज़Ͱ؅ཧ͍ͯ͠ͳ͍ͱग़དྷͳ͍࠷దԽ͕ଟʑ ଘࡏ͢Δ • ࠷దͳઃܭΛߟ͑Δʹ͸ɺϑϩϯτΤϯυͷ஌ࣝ΋ඞਢ