HTML5 Conference 2018に少し参加した
11月25日(日)三連休三日目に、HTML5 Conferenceが開催された。 場所は北千住近くの東京電機大。総勢1000人を超える人が来てたんじゃないかと思うとかなりでかいカンファレンスだなと思う。 前日、前々日にNode学園祭が重なって、当日はGoConとも重なって、エンジニアたちには激アツな三連休となったなという気持ち。
聴講メモ
「それ、AMPで作りませんか?」--- RichでResponsiveかつPWAなAMPの作り方 (宇都宮佑亮)
実際にAMPのできることを紹介する発表。
AMP
— J (@ka2jun8) November 25, 2018
action-xhr: 非同期通信
amp-iframe: レスポンシブ対応
amp-img: srcset/mediaクエリ
amp-date-picker: airbのdate-picker-amp版
amp-next-page: 無限スクロールっぽいやつ
amp-input-mask: 正規表現ぽくinputをサポートする
amp by example: 他の例
はーもう全部ampでいいじゃん#html5j_h
AMPでできることはもうかなり多そう。メディア系はAMPになっているところも結構多いし、かなり進んでる。
URLがGoogle/AMPのURLになってしまうのもsigned exchangeで署名されれば解決される。
PWAについても少し話されていて、one liner PWAだけ少し気になったが、基本的に知っている話だったと思う。
どうでもいいけど、この図の通り、AMPとPWAは親和性があるってのはよかった。
PWAの導入で得られた成果と見えてきた課題(宍戸俊哉)
PWA導入の成果と課題 / nikkei-pwa-html5conf2018 - Speaker Deck
日経電子版のPWA対応その後の話。
日経はmulti page appでvanilla js(no framework)。やはりフレームワークなしで軽量化する力量がこれから必要になるのかもしれない。
リリース後やったことは以下。
- インラインCSSでレンダリングブロックしない
- htmlのサイズは増えるがFMPが1秒減
- Add to Home Screenを記事読了後に出す
- これは絶対数が減ってしまったので今はやめてるそう
- SWの起動待ち問題の解消
- Navigation Payloadを活用しTtFB改善
速度維持にはツールや仕組みを活用。
何もしていないとサイトは必ず遅くなっていく
- ツールを活用する
- Speedcurve
- Page Speed Insights
- Atlas
- ダッシュボードは常にモニタに表示して見える位置においておく
- 短期・長期で出す。
- パフォーマンス改善デーを作る
- Performance Budgetを決め準拠する
iOS PWA問題
iOS PWA
— J (@ka2jun8) November 25, 2018
別アプリからPWAに戻るとトップにいってしまう
cookieがサファリで共有されないので、ログイン状態にできない
ブラウザバックもできない
とにかくやばい#html5j_a
まあ相変わらずやばそうだ、、、
その他
- オフラインキャッシュ対応は日本だとそこまで必須にならないので優先度が下がりがち。
Node.js まとめ(古川陽介)
Node.jsコアポリシーについての話だった。node.jsはシンプルなデザインを目指している。エコシステムで解決できるものはエコシステムで解決する。
スタビリティ
Long term support(2年)
- Security Mentainance(1年) 合計で3年間はサポートがあるので、開発プロジェクトの案件に入れてから、その後の対応がやりやすい。
V8側でnodejs/nodeをforkしてtestしてくれているのは知らなかった。 それによって、V8が上がってnode側に影響が出ることをV8側から通知してもらい対応することができるような仕組みになっている。
- パフォーマンス
V8自体が頑張ってはやくしてくれていることもあるが、workerも入ったのでマルチスレッドで動くツールの開発が可能に。babel, webpackなどのトラバースする処理系は並列処理が向いてそう。
あとは古川さんが llhttp
がやばくてだな、と興奮して話していたのが印象的だった。
もともとCで書かれていたhttp-parserを、TypeScriptで書き直してllvmのbitcodeを生成したものをラッパーを書いてCから呼ぶという若干意味不明なことのように見えるものだが、なぜか2倍くらい早くなるらしい。すげえ。
- セキュリティ
npm/yarn audit
でセキュリティ対策もできるようになっている。
機能的な話だと、Promiseがコアに入っていく。というか、callbackを呼ぶものがpromisifyでPromise化できる。streamもfor await ofでPromise化できるようになっているとのこと。
おそらく一番伝えたかったであろうことは、ECMAスクリプトに、ウェブもnodeも統一化していきたい未来があり、開発者がユースケースを作っていって仕様策定者にフィードバックしていく必要がある! と受け取った。
webpackのいままでとこれから(廣戸裕大)
バージョンのアップグレードごとに入った特徴的な機能を、実際のコードを追いながら、webpackがどのようにbundleしているかを丁寧に説明してくれた。
Tree Shakingのあたりを含め、勉強になった。Tapableなどは追いきれなくて難しく感じたところもあり、あとでおさらいしたい。 webpackは結局なんだかんだデファクトスタンダードになってきていて、bundleするならwebpackなのはこれからも変わらなさそうだなと思ってる。
webpackがめんどくさいとかつらいとか言うのは簡単なんだけど、じゃあbundleどうするの?って言うと結局webpackするしかないよね、という現状なわけなので、今後webpack使っていくのか、そうじゃなくてもいいのか、本質的な見分けだったり、最悪自身でbundleもどきをするようにできないといけない未来を考えると、きちんと今のうちに中身を理解して使っていきたいと感じた。
終わりに
僕が参加したHTML5カンファの講演は以上。午後4セッションだけの参加となったが、日経〜hiroppyさんまでの講演は全て満席・立ち見入場規制になっていた。キャパが狭かったのもあるのかもしれないが、HTML5 + JavaScriptに関わるフロント側のエンジニアってめちゃくちゃおるやんけ、という気持ちになりました。