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

新タクシー配車システムの裏側/dispatcher-background

haco
May 23, 2017

 新タクシー配車システムの裏側/dispatcher-background

haco

May 23, 2017
Tweet

More Decks by haco

Other Decks in Programming

Transcript

  1. 自己紹介 2016-06 JapanTaxi 入社 06-07 月 某 API サーバ /

    Golang 07-11 月 全国タクシー Android / Java 10-12 月 Google Maps 対応 12-01 月 某バッチサーバ / Scala 12-02 月 全国タクシー API / Rails 03 月- 新タクシー配車システム / ES6, Rails いろいろやってます
  2. コード例 actions.js // 該当する顧客が見つかった場合のアクション export const CustomerFound = ActionFactory({ type:

    'OrderEditor/CustomerFound', /** * @param {CustomerOutline} customer */ currentCustomer: customer => customer, });
  3. reducer.js // 注文編集フォームの reducer export const editorReducer = ReducerFactory.create({ initializer:

    () => { return EditorState.empty(); }, /** * @param {EditorState} state * @param {Object} action - see ./actions.js */ handlers: (state, action) => ({ [CustomerFound]: () => { return state.updateState({ customer: action.currentCustomer, }); }, }), ... });
  4. レイヤー構造 layouts 画面内の component に紐づく処理 domain 複数の component で共有するロジック repository

    API リクエスト ストレージ (cookie, LocalStorage) 操作 dispatcher が利用する多くのモジュールは ほとんどの場合はこのレイヤにある (相対パス地獄は webpack の resolve.root 指定で回避)
  5. まとめ Rails Rails Way をダメな設計の弁明手段にしない ダメなのは必ずしも Rails のせいではない React (Redux)

    サンプルコードはそのまま真似してはいけない プロジェクトに適した方法で抽象化しよう - n-