React.jsで学ぶ
モダンフロントエンド開発
Hikaru Sato
Part1.
イマドキなフロントエンド開発と、
CSOとして取っていきたい今後の開発
モダンフロントエンド?
HTML + CSS + JavaScriptで作るフロントエンド。
今まで(現行ECMとか)
Servlet + JSP + Javascript
つまり、これが
Servlet
JSP
DAO
BL
Java
JSP
JavaScript
CSS
こうなる!
API
DAO
BL
Java
HTML
JavaScript
CSS
目的
 フロント(描画)とバックエンド(データ処理)の分離
 Servlert + JSPで画面構築をする時代は終わった!
あれ、ECMってAPIあるし、
使ってなかったっけ?
Exactly (その通りでございます)
 ECMSFは全部API経由でECMのリソースにアクセスしています。
 あとFaceもね。
つまり
見た目の部分作るだけでOK!
目指したいもの
ECMユーザ
ECMSFユーザ
ECM API
JavaScript
コード
<HTML>
・
・
・
</HTML>
<apex:page>
・
・
・
</apex:page>
目指したいもの
 共通のJavaScriptコード
 ECM -> ECMSFのロジック移植コストを最小限に
 テスト工数を減らす(自動化ではなく、ケース数を減らす)
 移植時の考慮漏れも最小限に
 諸々の高速化ももちろん必須
Part2.
たのしいおべんきょうのじかん
使うものと覚えたい用語
 Node.js
 npm
 Gulp
 JavaScript ES2015(ES6)
 Babel
 Browserify
 Sass
 React.js
Node.js
 みんな大好き”サーバサイド”JavaScriptコンテナ。
 詳しくはググってください。
npm
 Node 用の パッケージマネージャ
 Node.js用のyumとかいうざっくりな覚え方でOK!
Gulp
 タスクランナ。
 設定ファイルをかけば、ビルド周りの処理を勝手にやってくれるニクいヤツ。
 Javascript用のAntとかと思ってください。
JavaScript ES2016/ES6
 JavaScriptの新しいカタチ。
 ECMAScript6が通称でES6と呼ばれていた
 Javaで言う所の8とか9とかと同じようなもんだと思ってください。
 元々はES5とかES6とか言われてたが、ES2015の方が正式。。。らしい?
 詳しいコードは後ほど。
Babel
 JavaScript用のビルドツール
 ES6のコードをES5にコンパイルしてくれる
Browserify
 Node.jsのコードを”クライアントサイド”でも使えるようにするための魔法の手法。
 何も考えずサーバサイドと同じようにクライアントも作れるようになる。
Sass / scss
 Sassは“Syntactically Awesome Stylesheets” の略
 Scssは”Sassy CSS”の略
 スタイルシート言語で、Sass形式で書いたコードをcssにコンパイルすることがで
きる。
 Sassの書き方として.sassと.scssがある感じ
 Scssはcss3の拡張なので、多分覚えやすい。
 生のcssではできない、変数や入れ子な書き方ができる。
React.js
 Facebook社が公開しているJavaScript用MV*系Framework
 “VirtualDOM”という概念を元に設計されている。
 HTML要素をComponentとして分離する
 とにかく速さだ!
他にもこんなMV*系 Framework
Angular JS
Polymer
Aura Framework
名前だけでも覚えて帰ってくださいね!
Part3.
ではやってみよう。
前提
Node.jsをインストールしておいてください。
RubyとRubygemを入れておいてください。
Visual Studio Codeを入れておいてください。
ネットに繋がるようにしておいてください。
おもむろに
ターミナルを立ち上げてください
 Windowsの方はWindows + R からの ”cmd” です。
プロジェクトを作りたい場所でmkdir !
あとはここを見て一緒にやりましょう。
http://qiita.com/hikaruright/private/f30c44af660f30220a7c
ここだけは覚えたいまとめ
 WebComponent分割という概念
 VirtualDOMという概念
 ES6/ES2015の書き方とES5との違い
 jQueryは捨てたい!!!
Q&A
まともに返答できるとは思えませんがどうぞ!
Fin

React.jsを勉強しよう