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

Post on 17-Jul-2015

9.992 Views

Category:

Engineering

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

とフロントエンド

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

@axross

話す人

Kohei Asai @axross

Trifort, Inc. UI/UX design division

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

Nodeとは

よくある勘違い

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

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

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

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

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

どうでもいい知識正式名称は「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.

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

Nodeなのか

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

Nodeなのか

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

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

• Isomorphic Javascriptという未来

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

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

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

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

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

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

詳しい話はまた今度..

LLとしての利用

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

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

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

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

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

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

• 設定の整備とか

• 開発環境をよしなに

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

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

そう、Nodeがある!

Isomorphic Javascript

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

未来だ!!!!!!!1111

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

逃げていたら、死ぬだけ

GitHubのデザイナーの話

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

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

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

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

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

もっとチャレンジングで

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

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

さあ、Nodeをはじめよう

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

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

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

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

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

top related