32
とフロントエンド 知っておかなければならない、今と未来の話 @axross

Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

Embed Size (px)

Citation preview

Page 1: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

とフロントエンド

知っておかなければならない、今と未来の話

@axross

Page 2: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

話す人

Kohei Asai @axross

Trifort, Inc. UI/UX design division

Client-side JS, Node, React, AngularJS, express, etc..

Page 3: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

Nodeとは

Page 4: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

よくある勘違い

'Node.js' === 'リアルタイムに強いJavascriptサーバサイド処理系' // false

まだこんな恥ずかしい勘違いしてる人、いませんよね?

Page 5: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

(それなりに) 正しい認識

'Node.js' === ‘ノンブロッキングI/Oを持つJavascript CLI実行環境'

• CLI、Google V8 • シングルスレッド+イベントループ • ノンブロッキングI/O • 高い次元でのモジューラビリティ • リアルタイム (関係ない)

Page 6: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

どうでもいい知識正式名称は「Node」です

When referring to the software or the project in general, it's Node.js or simply Node. It is a proper noun, so capitalize it. The .js appears with the first use, to disambiguate from other things called "Node", and Node (without the .js) afterwards. One way to think of this is that Node.js is the full name, and Node is the more familiar first name.

Page 7: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

なぜ フロントエンドエンジニアでも

Nodeなのか

Page 8: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

なぜ フロントエンドエンジニアでも

Nodeなのか

• NodeのAPIやエコシステムがクライアントサイドJSでも利用できる(ようになる)ケース増えてきた

• Javascriptという既知の言語によるLLとしての利用

• Isomorphic Javascriptという未来

Page 9: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

Nodeのノウハウが クライアントサイドJSでも 利用できるようになる

Page 10: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

require()とか、 もう使ってるでしょ?

CommonJSスタイルのモジュールの仕組み

Page 11: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

npmでもnpmに公開されているパッケージの中には、 NodeでもクライアントサイドJSでも 同じように使えるものが増えてきた

Page 12: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

ネイティブAPIすらもStream API (Nodeでファイルの流れを扱う)

クライアントサイドJSにも実装すべく、 仕様策定中とのこと。

詳しい話はまた今度..

Page 13: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

LLとしての利用

Page 14: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

Javascript、得意でしょ?我々はJavascriptとともに苦しみ、 時にはMicros●ftを罵り、

いろんな苦悩の末にやってきたはず

もはやJavascriptは、自分の手足のように動かせる

Page 15: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

自動化したいことは たくさんある

• API叩きまくってデータを取る

• Webスクレイピング、サンプルデータの作成

• 設定の整備とか

• 開発環境をよしなに

Page 16: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

僕らにもできる!RubyistやPythonista、 彼らはそういうタスクをコードで行っている

何で僕たちはできないのか?できるだろ?!

そう、Nodeがある!

Page 17: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

Isomorphic Javascript

Page 18: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

Javascript Lv.999Javascriptはもはや、 「装飾のためのスクリプト」ではない

Ajaxの流行を境に、DOMを動かす立場に

そしてもはや、DOMの世界の支配者とも言える

Page 19: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

MVWな クライアントサイドWAFの隆盛

Bakcbone.js, Knockout.js, Ember.js, AngularJS, Vue.js, Aurelia,

React.js(ちょっと違うけど), Riot.js(ちょっと違うけど) ..

Page 20: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

Javascript Applicationそれは、 すべてのDOM操作 HTTPリクエストの取り扱い

すべてをJavascriptが行い、 アプリケーションを構成する未来

Page 21: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

サーバサイドもNodeだったらクライアントサイドとサーバサイドの垣根を排除

いま2つに分かれてしまっている ビジネスロジックを1つにできる

再利用性! 保守性! スケーラビリティィィ!!!

僕たちのWebは元来、そういうものだったはずだ!

Page 22: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

Isomorphicな例• ValidatorやServiceの使い回し

• 同じものをrequire()するだけ • 同じロジックが別の実装で2つあるってそもそもおかしいのでは

• Model層の共通化 • サーバーとクライアントでインターフェースが 統一される

• SEO的なアレ • JS Applicationのサーバーサイドレンダリング

Page 23: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

未来だ!!!!!!!1111

Page 24: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

もはや言い訳は許されない

Page 25: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

逃げていたら、死ぬだけ

Page 26: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

GitHubのデザイナーの話

“ デザイナーとデベロッパーが 分かれている時代は いずれ終わる ”

Page 27: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

GitHubのデザイナーの話 (2)僕の中では (勝手に) 有名な話

すべてを100%できろ、とは言わない クライアントサイド80%、サーバサイド20%でもいい

お互いの分野を知り合うことが大事

Page 28: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

GitHubのデザイナーの話 (3)もっとコミュニケーションはしやすくなる、 もっと速く作れるようになる

もっとチャレンジングで

もっとエキサイティングで

価値あるプロダクトに取り組めるようになる

Page 29: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

さあ、Nodeをはじめよう

Page 30: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

とはいえ、 急にそんなこと 言われても困る..

Page 31: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

Node ワークショップ やります!!!!!!

適当なツール作ってNodeの基礎を学ぶ

近日予定、詳細未定、他ディヴィジョン歓迎 興味のある人はご一報ください => UI/UX div. 僕 まで

Page 32: Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −

ご清聴 ありがとうございました