Project

General

Profile

YAPC::Asia Tokyo 2015 Day1

Effective ES6 サイボウズ

http://www.slideshare.net/teppeis/effective-es6
JavaScriptはとにかく柔軟に作った
クラスがないPrototypeで書くなどの問題がある
このような問題をベストプラクティスのようなもので回避してきた
ECMAScript6 Published June 7, 2015(ES5から6年)
後方互換あり、大規模アプリのためのサポートや罠にはまりにくいように
altjsが担ってきたような部分がES6が担うように
ES6 Compatibility table
IE11はES6を実装する気がない
ES6 TranspilerやES6 Polyfillであるていどどうにかなる
人気なのはBabelというツールで71%をTranspiler+Polyfill
ES6の新機能
+新しいシンタックス
++Arrow Function:配列のフィルタとか、thisが使いやすく
++Class:ビルトインクラスの継承も出来る
++Modules:Export&Import、use strictを書く必要はない
++Block Scope:letやconstを使う、varは使わない
++Default Parameters:関数の初期値を指定できる
++Rest Params:可変引数が使える
++Destructuring:[a, b] = [a, b]ができる
++Template Literal:Hello, I am ${name}.
++Extended Object Literal
++Iterator
++Spread Operator
++Generator
++Tail Call Optimization
+新しいビルトインクラス
++Promise:非同期処理
++Map/Set:列の処理
++など
+既存のクラスの拡張
++それぞれに便利な関数が増えた
あたらしい落とし穴もやっぱりあるのでESLintで静的解析できる
ES6以降は毎年ES2016のような形でリリースしていく
Githubで開発されているので、見たり出来る
IE11は2023年までサポートされてしまうなどの問題や
毎年色々更新されて大変だからBabel使っていくのがいい?
WeakMap/SetProxyReflectTailCallOptimizationなどは厳しい

HTTP2のウェブサイト DeNA

http://www.slideshare.net/kazuho/http2-51888328
バイナリ化
+h2iコマンドを使えばバイナリ書かなくても試せる
多重化
+同時に100以上のリクエスト
+任意のタイミングでリクエスト送信
ヘッダ圧縮
+HTTP1.1のヘッダは大きい
+HPACK(RFC7541)
+直前のリクエストと違う部分だけ書き換えるので圧縮率が上がる
HTTP2
+多重化によりRTTの影響を低減
+ヘッダ圧縮により通信を削減
+優先度制御
ChromeよりFirefoxのほうが優先度の付け方がうまい
Edge Safariはやってない
h2oならreprioritize-blocking-assetsオプションで優先度がんばってくれる
サーバ側でちゃんと実装しないとあかん、H2Oはすごい
サーバプッシュすれば0RTTでリクエストが遅れる
Linkヘッダでサーバプッシュできる、RFC通りだと遅い。
ブラウザキャッシュされていたらプッシュすると逆に遅い
H2O 1.5の新機能で↑の問題が解除される

ウェブを高速化する技術
ーレイテンシを隠蔽
ー優先度制御
小さなレスポンスが大量に流れても問題ない
HTTP2ではレイテンシではなくバンド幅が表示速度になる
※HTTP1.1では2Mbps以上はあってもレイテンシが問題になっていた

アセットの結合Asset pipeline CSS spriteはオワコン
ExpiresのりようHTTP2なら304使い放題ファイル米に?日付はオワコン
→迷ったらデータ転送量で考えればいい
ドメインシャーディングで6本以上にするハックもオワコン
>ホストが異なるとHTTP2でも別のTCP接続
>複数のTCPにまたがった優先度制御できない
ウェブサイトを早くすればページビューが増える CF:bingのリサーチ

LetsEncryptというサービスでSSL証明書もらえる
ciphersuites Forward Secrecy鍵が漏洩しても過去の通信は解読されない
Session Resumption:サーバクライアントは共通鍵を保存
Session Ticket:クライアントにおいておく、サーバに置く必要ないから早い
Session Ticketを無効化しないとPFSにならない
Session Resumptionはサーバをクラスタ化してるとだめ
H2OならMemcachedを使ってるからいけるで
Nginxの開発者とも交流しているのでそのうちH2Oに追いつくで

Perlの上にも三年 ずっとイケてるサービスを作り続ける技術 Hatena

イケてるサービスとは:役立つ速いたのしいかっこいいイメージがよいみんな使ってる
迷わず書ける一貫した方針
フレームワークの歴史、ブログのフレームワーク、オブジェクト指向、レガシー書き換え、ドメイン駆動
読むコードが最小であるフレームワークがいい
DRY3、3回コピペしたら共通化。2回程度じゃ共通化しない。
オブジェクト指向入門 11章

Added by aretan 2015-08-21 ago

2015ogp.png View (128 KB) 2018-03-09