Contenu connexe Similaire à Isomorphic Architecture & Interface (20) Isomorphic Architecture & Interface2. Jack
● id: Jxck
● github: Jxck
● twitter: @jxck_
● about: http://jxck.io
● blog: http://jxck.hatenablog.com
● podcast: http://mozaic.fm
● Love: music
6. ● logic の共有
○ あれ? validation しか共有できない。。
● browser 無しでテスト
○ でも結局ブラウザでしか動かさない。。
● npm でモジュール管理
○ それ babelify しただけちゃうん?
● アプリが両方で動く
○ いや、やりたいこと違うんだけど。。
やみくも isomorphic
8. ● 部品
○ V-DOM
○ browserify
● module
○ ES6
○ npm
● WHATWG APIs
○ fetch
○ URL
○ Promise
○ Stream
○ etc
あるもの
14. 2015
SW によりフロントにも Proxy Layer が入った。
まあ、考え方の一つとして
C
V M
FrontEnd BackEnd
C
V M
Nginxluamodule
ServiceWorker
Rendering
15. 2016
Nginx に JS モジュールが入る?
http://nginx.com/blog/nginx-open-source-reflecting-back-and-looking-ahead/
予定です
C
V M
C
V M
C
V M
C
V M
FrontEnd BackEnd
ServiceWorker
NginxJSmoduleRendering
18. ● Reverse
○ SSL 終端
○ IP フィルタ
○ ルーティング
● Forward
○ 圧縮
○ ヘッダ追加
○ コネクション保持
Nginx ができること
21. ● ネットワークアクセス
○ WebScoket か XHR か Push を吸収
○ イベントに変えてしまう
● ストレージアクセス
○ localStorage, IndexedDB を吸収
○ イベントに変えてしまう
● イベントでの抽象化
○ 余計な責務を UI 層から減らす
○ API が変わっても影響が閉じる
ServiceWorker が引き受けるもの
26. ● 歴史的には
○ Request と Response を渡す
● 例
○ CGI
○ Servlet
○ Rack
○ PSGI
○ WSGI
○ Connect?
○ etc
ここのインタフェース
この部分の総称ってある?
27. ● Connect
○ ミドルウェアが多い、枯れてる。
● でも Node 前提
○ 手前に Nginx 立てないの?
○ http module 依存
● WhatWG が定義した
○ fetch の仕様の一部
○ Request/Response class
● じゃあこれを返せばいいじゃん
○ 同期ではね
同期の場合
29. ● Stream
○ Node ではおなじみ
○ WHATWG Streams 定義中
● 全て Stream に抽象化しよう
○ 非同期に最適
○ その上に色々すればいい
全てのものは Stream だ
Stream
30. // 同期の場合
// WHATWG Request class
// WHATWG Response class
function (request, response) {
};
// 非同期の場合
// WHATWG ReadableStream class
// WHATWG WritableStream class
function (readable, writable) {
};
本当に欲しいインタフェース
32. ● middleware
○ connect middle の発展系
○ whatwg transform stream で流れを変える
● container
○ FW から面倒/共通な部分を引きはがす
○ MV* はお前が思う最強のでやればいい
● mindset
○ どっちで動くか?という考えからの脱却
○ インタフェースに依存する
○ やみくもにリソースを消費しない
エコシステム
33. ● 今
○ 部品は揃った
○ 各々がやみくもに進んでる
● 提案
○ 枠組みを整えよう
○ 再利用/共有可能なモジュールを作ろう
● 理想
○ 車輪に載って FW が作れる
○ エコシステムの加速
i8c を加速する
34. ● 効率よく
○ Web アプリはエコシステムで作るもの
○ 一人で全部を作る必要は無い
○ みんなで同じものを作る必要は無い
○ 本当に大事なアイデアに注力したい
● コアは?
○ Node/IO.js のコアも歩み寄って欲しい
○ module さえあれば i8c で no-browserify
● 進捗
○ やっと URL がパースできはじめた。。
○ https://github.com/Jxck/URL
やみくもな i8c から脱却しよう