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

20161215-debugger.html

chikoski
January 10, 2017

 20161215-debugger.html

chikoski

January 10, 2017
Tweet

More Decks by chikoski

Other Decks in Technology

Transcript

  1. debugger.html:React x Redux app built-in Firefox Mozilla Japan N. Shimizu

    ([email protected]) 【ランサーズ×Mozilla×freee】React実践!勉強会@dots. (2016/12/15)
  2. Proudly non-profit, Mozilla makes products like Firefox with a mission

    to keep the power of the Web in the hands of users everywhere. Mozilla Mission (https://www.mozilla.org/en-US/mission/)
  3. To ensure the Internet is a global public resource, open

    and accessible to all. Mozilla Mission(https://www.mozilla.org/en-US/mission/)
  4. debugger.html:再開発中のFirefox 組み込みのデバッガー • React と Redux、flow を使って実装されています • スタンドアローンで実行できます •

    Firefox だけでなく、Google Chromeやnode.jsで動いているコードもデバッグできます • https://github.com/devtools-html/debugger.html
  5. 開発の背景:XULからの移行 • Firefoxは一種のWebアプリケーションです • ブラウザエンジンGeckoの上に、JSとXULで実装されてきました • XUL:XMLベースのコンポーネント記述言語 • JS:みんな大好きJavaScript。コンポーネントの振る舞いを記述します •

    c.f. https://github.com/browserhtml/browserhtml • 開発ツールもXURLで実装されてきました、XULかける人は少ない • XULから離れることで、多くの方に開発へ参加いただけるようになります
  6. 目的 ツール UIコンポーネント Ract 状態管理 Redux, React-Redux 実装言語 Flow ビルドツール

    webpack テスト ESLint, mocha, mochitest パッケージ管理 Yarn ツールチェーン
  7. モジュール 役割 debugger.html デバッガー本体 devtools-client-adapters Remote Debugging Protocolの差異を吸収するアダプター devtools-local-toolbox 開発ツールを開発するためのユーティリティ

    devtools-config ログレベルやポート番号など、デフォルトの設定をまとめたもの devtools-modules 開発ツール共有のツールとコンポーネント devtools-sham-modules Shammed DevTools Modules from M-C 関連するモジュール
  8. Flow SFOEFS$FOUFS1BOF \ SFUVSOEPNEJW  \DMBTT/BNFDFOUFSQBOF^  EPNEJW  \DMBTT/BNFFEJUPSDPOUBJOFS^

     4PVSDF5BCT  &EJUPS  UIJTQSPQTTFMFDUFE4PVSDF UIJTSFOEFS8FMDPNF#PY OVMM  4PVSDF4FBSDI      ^ Flowとして処理できるようにReact.DOMを利用して描画ルーチンを記述しています
  9. "DUJPO $SFBUPS $PNQPOFOUT 4UPSF 3FEVDFS EJTQBUDI "DUJPO "DUJPO 4UBUF 4UBUF

    Redux:ActionをReducerで処理することで、Storeの管理するアプリの状態を変化させるアーキテクチャ
  10. JS NPEVMFFYQPSUTDPOOFDU   TUBUF QSPQT  \ CSFBLQPJOUT@HFU#SFBLQPJOUT TUBUF

     ^  EJTQBUDICJOE"DUJPO$SFBUPST BDUJPOT EJTQBUDI  #SFBLQPJOUT  react-redux を利用してpropsの一部をStoreへ保存