初心者のためのweb標準技術

48
初心者のための Web標準技術2015at HTML5ビギナーズ by 1000ch

Upload: sensui-shogo

Post on 18-Jan-2017

15.056 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 初心者のためのWeb標準技術

初心者のための

Web標準技術2015秋

at HTML5ビギナーズ by 1000ch

Page 2: 初心者のためのWeb標準技術

1000ch

Page 3: 初心者のためのWeb標準技術

Profile

Webフロントエンドエンジニア

HTML5というかWeb技術全般

Node.js + iOS/Mac

#perfmatters

Page 4: 初心者のためのWeb標準技術

@cssradar @hiloki @t32k @1000ch @ahomu

Frontend Weekly

• 国内外のフロントエンド情報をキュレーション

• 週に一度水曜日に配信

Page 5: 初心者のためのWeb標準技術

@cssradar @hiloki @t32k @1000ch @ahomu

Frontend Weekly

• 国内外のフロントエンド情報をキュレーション

• 週に一度水曜日に配信https://frontendweekly.tokyo

Page 6: 初心者のためのWeb標準技術

昨今のWebフロントエンド…

Page 7: 初心者のためのWeb標準技術
Page 8: 初心者のためのWeb標準技術

高度化するWebフロントエンド

高まり続けるフロントエンドの比重

変わり続けるWebアプリケーション

増え続ける新しい技術と周辺ツール

Page 9: 初心者のためのWeb標準技術

「気づいた時には廃れてる」 なんてこともしばしば

Page 10: 初心者のためのWeb標準技術

そんな中でも

廃れにくい技術…

Page 11: 初心者のためのWeb標準技術

Web Standards W3C・WHATWG・ECMAなどが中心になって

Webの標準となる技術仕様を策定している

Page 12: 初心者のためのWeb標準技術

最近流行りの抑えておきたい

Web標準をおさらい ※これだけやればイイという文脈では決してありません

Page 13: 初心者のためのWeb標準技術

最近ウワサの…

Web標準技術 厳選5選

Page 14: 初心者のためのWeb標準技術

1. ECMAScript 2015

Page 15: 初心者のためのWeb標準技術

ECMAScript 2015

クラス構文やアロー関数、Promiseなど 機能・シンタックス共に大幅に強化された

いわゆるES6やHarmonyと呼ばれるもの

2015年6月に6th editionが標準化された

ChromeやFirefoxが実装を進めるも シェア全体を見るとまだまだ乏しい!

?

Page 16: 初心者のためのWeb標準技術

function Human(name) { if (name === undefined) { name = 'Taro'; }

this.name = name; }

Human.prototype.hello = function() { console.log('My name is ' + this.name); };

class Human { constructor(name = 'Taro') { this.name = name; } hello() { console.log(`My name is ${this.name}`); } }

ES5 ES6

Page 17: 初心者のためのWeb標準技術

いまからはじめるECMAScript 6 http://www.slideshare.net/1000ch/begin-ecmascript6

Page 18: 初心者のためのWeb標準技術

いますぐ活かす!最新JavaScript WEB+DB PRESS Vol.87 特集1

Page 19: 初心者のためのWeb標準技術

2. CSS.next

Page 20: 初心者のためのWeb標準技術

CSS.next

Selector Level4・Notation・プロパティなど 機能面で様々な強化がなされている

「CSS3で盛り上がった~」以降の変更 プリプロセッサの影響を受けている

ES6同様ブラウザの対応状況は思わしくない!

?

Page 21: 初心者のためのWeb標準技術

CSS.next CSS

:root { --primary-color: #E86100; --base-fontsize: 1rem; }

h1 { font-size: calc(var(--base-fontsize) * 2); height: calc(100px - 2em); }

body { font-size: var(--base-fontsize); }

h1 { font-size: 2rem; height: calc(100px - 2em); }

body { font-size: 1rem; }

Page 22: 初心者のためのWeb標準技術

cssnextでみる次世代CSSとPostCSS http://blog.yucchiy.com/2015/04/22/cssnext-postcss-for-

nextgeneration-of-css

Page 23: 初心者のためのWeb標準技術

3. HTTP/2

Page 24: 初心者のためのWeb標準技術

HTTP/2

!

?

♥プロトコルレベルで通信効率が良くなり

サーバーPushなどWeb基盤としても進化

WWWで採用されているHTTPの

1.1から2へ実に16年ぶりバージョンUP

ブラウザおよびサーバーの対応が必要 既存のパフォーマンスに関するノウハウの見直し

Page 25: 初心者のためのWeb標準技術

http://www.http2demo.io/

Page 26: 初心者のためのWeb標準技術

HTTP/2の現状とこれから http://www.slideshare.net/shigeki_ohtsu/http2-ohtsu-html5conf2015

Page 27: 初心者のためのWeb標準技術

4. Web Components

Page 28: 初心者のためのWeb標準技術

Web Components

!

?

♥ HTML/CSS/JSのスコープ問題の根本的な解決

Web部品の再利用に向けた コンポーネント化の作法の標準化

ブラウザの実装以前に、仕様がFixしていない

(特にShadow DOMとHTML Imports)

Page 29: 初心者のためのWeb標準技術

http://1000ch.github.io/switch-element/

Page 30: 初心者のためのWeb標準技術

なぜWeb Componentsはウェブ開発に革命を起こすのか https://blog.agektmr.com/2014/05/web-components.html

Page 31: 初心者のためのWeb標準技術

基礎からわかる Web Components 徹底解説 https://html5experts.jp/series/web-components-2/

Page 32: 初心者のためのWeb標準技術

5. Service Worker

Page 33: 初心者のためのWeb標準技術

Service Worker

!

?

♥サーバーPushの受信やオフライン化など

Webにおけるユーザー体験を大きく変える

Push API・Cache APIなどを担う

機能を実現する新たなWebの基盤技術

セキュアなWeb(HTTPS)でしか利用できない

Page 34: 初心者のためのWeb標準技術

https://1000ch.github.io/todo/

Page 35: 初心者のためのWeb標準技術

Service Workerに関する仕様とか機能とか https://1000ch.net/posts/2014/service-worker-internals.html

Page 36: 初心者のためのWeb標準技術

Service Workerの紹介 http://www.html5rocks.com/ja/tutorials/service-worker/introduction

Page 37: 初心者のためのWeb標準技術

「便利そうなのはわかった」

「試してみたい気もする」

Page 38: 初心者のためのWeb標準技術

「ブラウザの対応状況って

どうなんでしょう…」

Page 39: 初心者のためのWeb標準技術

How to fallback?

Page 40: 初心者のためのWeb標準技術

ES 2015

CSS.next

HTTP/2

Web Components

Service Worker

Page 41: 初心者のためのWeb標準技術

ES 2015

CSS.next

HTTP/2

Web Components

Service Worker

Babel・CSSnext・Autoprefixerといったような各種ツール使って、非対応ブラウザでも実行できるようなJavaScriptに変換(トランス

パイル)する

Page 42: 初心者のためのWeb標準技術

ES 2015

CSS.next

HTTP/2

Web Components

Service Worker

クライアントとのエンドポイントサーバーにHTTP/2を対応させる(クライアントがHTTP/2に対応していればHTTP/2で通信し、非対応

であればHTTP/1.1に)

Page 43: 初心者のためのWeb標準技術

ES 2015

CSS.next

HTTP/2

Web Components

Service Worker

WebComponents.jsというポリフィルを使うことで古いブラウザ

(Safari 7+・IE11+)でもある程度実行できるようになる

Page 44: 初心者のためのWeb標準技術

ES 2015

CSS.next

HTTP/2

Web Components

Service Worker

オフライン対応もサーバーPushを必須の要件としなければ、そもそもオプトインとして導入しやすい。対応しているブラウザに対してだけでもユーザーエンゲージメント

を高められる

Page 45: 初心者のためのWeb標準技術

まとめ

中には普及せずに非推奨になっていくものも…

枯れにくいが導入しにくさも確かにある

紹介したモノはキャッチアップして損はない

Page 46: 初心者のためのWeb標準技術

手元で試してみるもよし サービスに取り入れるもよし

Page 47: 初心者のためのWeb標準技術

※ご利用は計画的に

Page 48: 初心者のためのWeb標準技術

おわり

+ +ShogoSensui

%

&

1000ch

1000ch