Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ウェブフロントエンド開発に Vue や React を選択する理由【DeNA TechCon 2021】/techcon2021-17

DeNA_Tech
March 03, 2021

ウェブフロントエンド開発に Vue や React を選択する理由【DeNA TechCon 2021】/techcon2021-17

フロントエンド開発について「サーバーサイドテンプレートでHTMLレンダリングすれば良いのでは?」「Vue や React の学習コストかける意味ある?」「jQueryコピペですぐできるでしょ」と思う方もいるのではないでしょうか。

DeNAでは、ウェブアプリケーションのフロントエンド開発のプロジェクトにおいて、以下が混在していますが、前者をベースにした開発のプロジェクトが増加しています。

・SPA ベース:Vue や React をベースにしたフロントエンド開発のプロジェクト
・テンプレートベース:Xslate や Smarty、Slim や ERB、Thymeleaf などをベースにしたフロントエンド開発のプロジェクト

ウェブアプリケーションサービスのフロントエンドをどう作るか。テンプレートエンジンによるレンダリングベースではなく、React や Vue で開発することについて、フロントエンドエンジニア以外の様々なエンジニアの皆様にご紹介します。

DeNA_Tech

March 03, 2021
Tweet

More Decks by DeNA_Tech

Other Decks in Technology

Transcript

  1. • Vue, React 以外のフレームワークも(意味的に)含みます ◦ Angular, Gatsby, Next, Nuxt, Svelte,

    Flutter とかもね • 一定端折ります • 一定ポジショントークです
  2. • jQuery または素の JavaScript で HTML を 動的に組換えないといけない ◦ 複数の

    API からグローバルにデータを保管し、状態を算 出し、その分岐処理・フィードバックを行う
  3. • jQuery または素の JavaScript で HTML を 動的に組換えないといけない ◦ 複数の

    API からグローバルにデータを保管し、状態を算 出し、その分岐処理・フィードバックを行う • 機能やデータの追加はどれがなにか調査から ◦ ドキュメント整理しておくか、サーバーのレンダリング 関数やモデルクラスを読み解く必要がある
  4. • jQuery または素の JavaScript で HTML を 動的に組換えないといけない ◦ 複数の

    API からグローバルにデータを保管し、状態を算 出し、その分岐処理・フィードバックを行う • 機能やデータの追加はどれがなにか調査から ◦ ドキュメント整理しておくか、サーバーのレンダリング 関数やモデルクラスを読み解く必要がある
  5. 1. 導入・学習のスロープが存在する 2. 世界的に流行し、デファクト化してきている 3. 仮想 DOM で UX/UI が最適化される

    4. コンポーネント指向型で開発効率がよい 5. 安全にウェブアプリを開発するための TypeScript サポートも充実している
  6. 1. View 層 (Vue.js, React.js) 2. コンポーネント分割 (VSFC, JSX) 3.

    Routing 層 (vue-router, react-router) 4. Store 層 (vuex, redux) 5. SSR、SSG (Nuxt, Next) 6. プラグイン, webpack, ...
  7. • 学習が完了したら少しずつ導入してみよう • jQuery・JavaScript ベースのプロジェクトだと 全て一から自分でこれらを作らないといけない • npm (Node Package

    Modules) のエコシステムの恩恵を得て その仕事で一番大事なことに集中しよう • Vue, React にはいろんな人が考えて、試験して、 良くしてきたしっかりとしたライブラリがある
  8. • DeNA では 5:5 ぐらいで使われている • HTML + CSS +

    JavaScript で従来と近い形で SPA に構築したいなら Vue • JavaScript でプログラマブルに SPA を構築したいなら React
  9. • 技術的投資のリターンが一定見込めるかどうか ◦ 向いていないサイト・チームかどうかちゃんと見極める • チームサイズやプロダクトに合わせた設計を ◦ 小規模なサイト・ジュニアなチームにも過剰なチェック機 構(型・lint・e2e)必須のワークフローにしないように ◦

    無理なルールを導入せず良きバランスのところを探ろう • 高速にチームが改善できる範囲で少しづつ導入 ◦ エンジニアなら強くないといけない × チーム開発でのスループットを見極めて導入 ◦