Slide 1

Slide 1 text

React + Fluxを 実践投入してみて @pakkun

Slide 2

Slide 2 text

やっていること

Slide 3

Slide 3 text

オールアバウトの基幹システ ムである記事生成ツール (CMS)のリプレイス

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

アジェンダ

Slide 6

Slide 6 text

アジェンダ  よかったこと  大変だったこと  開発を楽にするためにやったこと  やっておけばよかったこと  教訓  まとめ

Slide 7

Slide 7 text

React + Fluxで作った機能数 ※flux-utilsを使用

Slide 8

Slide 8 text

19機能

Slide 9

Slide 9 text

よかったこと

Slide 10

Slide 10 text

 Virtual DOMが提供する一方通行のフローによ り、サーバサイドと似た構造にできる  コードをシンプルに書ける  Immutable.jsを使うとさらに楽

Slide 11

Slide 11 text

VirtualDOMが提供する 一方通行のフロー

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

サーバサイドで考えるなら

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

コードがシンプルに書ける

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Immutable.jsを使うとさらに楽

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

React + Fluxで 大変だったこと

Slide 20

Slide 20 text

 Examplesが難しい  jQueryとの共存がしづらい  Fluxの学習コストが高い  良くも悪くもコンポーネント指向  LaravelやRailsのようなフルスタックフレー ムワークと合わせて使うと中途半端になりや すい  ライセンスに問題があった

Slide 21

Slide 21 text

Examplesが難しい

Slide 22

Slide 22 text

 綺麗に構造化されているexamplesが少な い・・・ flux/examples ActionCreator、Actionが明確に分かれていないなど・・・

Slide 23

Slide 23 text

jQueryとの共存がしづらい

Slide 24

Slide 24 text

 VirtualDOMに任せる必要があるので、直接 DOMを更新しづらい ※jQueryをなるべく使わない強い意志が必要

Slide 25

Slide 25 text

Fluxの学習コストが高い

Slide 26

Slide 26 text

 CQRS(コマンドとクエリの責務分離)がわ かっていないとしんどい ※CQRSに関しては、CQS(コマンドとクエリの分離原則)とDDD(ドメイン駆 動設計)を知るのが早い

Slide 27

Slide 27 text

良くも悪くも コンポーネント指向

Slide 28

Slide 28 text

 ライブラリを組み合わせてフレームワークを 構築できる程度の知識が必要 ※サーバサイドで置き換えると、React(View)、Flux(Controller、 Service)、Immutable.js( Repository 、Factory、Entity)  日頃からGithub Trendsを追いかけて使えそ うなものを探しておく必要がある ※awesome-reactを見ておくと良い

Slide 29

Slide 29 text

LaravelやRailsのようなフルス タックフレームワークと合わせ て使うと中途半端になりやすい

Slide 30

Slide 30 text

 Node.jsで完結できないのでつらい react-scriptsが使えない Hot Module Replacement(HMR)が難しい Webpackの知識が必要になってくる

Slide 31

Slide 31 text

ライセンスに問題があった

Slide 32

Slide 32 text

 FacebookのOSSには特許に関するライセン スが付与されている問題があったが、 Apacheが本格的に使用をやめたことにより、 結果的にはMITライセンスになった。ライセ ンス周り大事。

Slide 33

Slide 33 text

React + Fluxでの開発を楽にす るためにやったこと

Slide 34

Slide 34 text

 開発環境のDocker化(Node入り)  Webpackでファイルの自動トランスパイル化  ESLintでの構文チェック  React + Flux勉強会(6時間) -> QiitaのAPIを使用してのハンズオン  Boilerplateの作成

Slide 35

Slide 35 text

やっておけばよかったこと

Slide 36

Slide 36 text

 flux-utilsのAPIコールはviewより ActionCreatorが良い

Slide 37

Slide 37 text

まとめ

Slide 38

Slide 38 text

 Reactは玄人向け  コストは高いけど秩序が保たれた  誰が書いても同じようなコードにしやすい  一度作れれば高速に実装できる  イージーではなくシンプルに実装できる

Slide 39

Slide 39 text

導入してよかった!!

Slide 40

Slide 40 text

最後に

Slide 41

Slide 41 text

JavaScriptはHTML、CSSを操作する ために後から実装された機能で、リッチ なUIを提供することを目的としている

Slide 42

Slide 42 text

Virtual DOMによって HTML・CSS > JavaScript の構造を逆転できるようになり、 JavaScript > HTML・CSS で管理できるようなった

Slide 43

Slide 43 text

それは、JavaScript上でHTML、CSS を組み込んでアプリケーションが実行で きるということ

Slide 44

Slide 44 text

つまり、Android Java、Swiftのよう な開発ができるようになったということ と同義

Slide 45

Slide 45 text

Virtual DOMはフロントエンドの世界 にパラダイムシフトを起こした

Slide 46

Slide 46 text

ご清聴ありがとうございました。 明日から Let’s VirtualDOM+ Flux!