ぱすたけ日記

日記っぽいのを書きます。

『Webフロントエンド ハイパフォーマンス チューニング』をざっと読んだ

Webフロントエンド ハイパフォーマンス チューニング

Webフロントエンド ハイパフォーマンス チューニング

が発売されていたので買って読んだ。

この辺のブラウザのパフォーマンスチューニングに関する分野は昨年から今年の春にかけての強い関心事でした*1

昨年中は主に <canvas>を利用したお絵かきツールの話の作業において非常に知見がたまったので、今年の頭にかけて2つのスライドで知見を共有しました。

1つ目はブラウザをレンダリングエンジンの振る舞いという観点で理解をするというスライド。

知っておきたいブラウザについての基礎入門 // Speaker Deck

2つ目は↑で理解したレンダリングエンジンの振る舞いのフローに対して、どのような検証やアプローチをするとパフォーマンスに影響を与えることが出来るのかということについて書いたやつです。

Webアプリケーションで 60fpsを(極力)目指す // Speaker Deck

この本Webフロントエンド ハイパフォーマンス チューニングを読んだ感想としては、これらのスライドを作る前に是非読みたかったなぁというのが正直な感想。さらに言うと、この本があったら、上の2つのスライドは作ってなかっただろうなと思った。結構スライドに入れたいけど、時間や発表時の対象者などの制約から省いたことが数多く書かれていた。

『Webフロントエンド ハイパフォーマンス チューニング』はブラウザに起きるパフォーマンスに関係するあらゆ出来事が網羅されていた。序盤ではネットワークについても書かれていたし、後半では大部分を割いてレンダリングの最適化について書かれていた。それぞれについて、計測の方法や指標と出来ること、どのようなアプローチが取れるのかについて書かれていて、それがブラウザ内部で起きるイベントの順番に書かれていて、それぞれのチャプター冒頭部分に、今はブラウザのどの処理についての記述なのかが図で描かれていたので分かりやすくて良いなと思った。

内容としては、突飛なテクニックを使うということはほとんどなくて、とにかくブラウザのパフォーマンスチューニングについて勘所と基本的なアプローチをまずは抑えるという感じだった。なので、アプローチに関しても飛び道具的なハッキーなコードを書くとかはなくて、CSSの機能をどう使うかとか、JSでのDOM操作の工夫とかが書かれてる感じ。

個人的には上記のスライドを作る時に色々関係資料を読んだので、それらと結構重複していて、あまり目新しい知見というのはなかったが、知識の再確認をざっと出来たのは良かった。

ここからはダメ出しのような感じになってしまうのだけど、内容は終始Googleの関連トークや文書などで語られているチューニングの話がベースになっている感じで、紹介されているツールもGoogle ChromeのDevToolsだけだったので、もう少し踏み込んで、実際のアプリケーションでどのような問題とアプローチとして活かされているかとかも知りたいと思った。

何より本文内で紹介されているチューニング手法について、その手法が直感的に有効そうなのは理解できるが、コラムで否定されている『小さな最適化』になりそうなテクニックもいくつかあって、それぞれのアプローチがどのような成果をもたらすのかについて具体的な計測であるとか実例であるとかが盛り込まれていると、より紹介されているテクニックを適用する際の指標が増えて良さそうだと思った。これに関しては「何事も『推測するな、計測せよ』」なのだという著者からの勝手なメッセージなのだと信じることにした。(結局どのアプローチが良いかというのはケースに依存するのであるケースではピーキーに効くものがある似たようなケースでも大した差が出ないこともある。それに対して無闇矢鱈と指標を与えるのは良くないので、本書はそういうのを止めて、事象の理解と取りうるアプローチのパターンを読者に提供するのだと思うと腑に落ちた)

という感じでした。ブラウザのレンダリングと具体的なアプローチについて、ブラウザの処理の流れやイベントに沿って、検証方法や改善方法をシンプルにまとまっている本はなかなか巡り会えずに春前くらいに色んな資料を横断した記憶があるので、個人的には感激しました。紹介したスライドを見て、へーと思ったり興味を持った人は読んで損はないと思います。日本語でここまで凝縮されていてページ数も300ページくらいなので、ざっと読むとか出来るのでおすすめです。

Webフロントエンド ハイパフォーマンス チューニング

Webフロントエンド ハイパフォーマンス チューニング

azuさんがTwitter#Webフロントエンドハイパフォーマンスチューニングで関連情報を書かれていたので、こちらも読むと良いと思います。

*1:今の主な関心事はブラウザ拡張の相互互換性問題に移り変わっている季節

昨日の夜のビール

昨日の夜はワンツーチーに行った後に、6周年記念ウィークリー期間中の麦潤へ。

大山Gビール 大山ゴールド20143年熟成のゴールドエール。カラメルみたいな感じでまろやかで後味も甘い

エールスミス .394ペールエール

米国 エイブリーのメフィストフェレス。アルコール度数14.6%でめちゃくちゃ重厚でヤバい。日本輸入が10樽しかないらしい。

京都醸造 夏の気まぐれ〜6周年スペシャル。 京都醸造の夏の気まぐれをシムコーでドライホッピングした特別版とのこと。 後味の苦味がいつもより舌に残る気がする

どれもめちゃくちゃ良かった。

ハイライト情報

木曜日〜日曜日の出来事をハイライトでお伝えします

木曜日

ワンツーチーで汁なし担々麺を見に行った。麻婆豆腐も食べたが両方辛く、唯一辛くない餃子をデザートと呼んでいた。実際に皮が甘かった。辛いものをいっぱい食べたので、その後から翌日までお腹を下した。

汁なし担々麺見

金曜日

暑すぎてビールを飲みたいということで久しぶりに地球屋に行った。

地球屋は四条河原町にある居酒屋。中は百万遍感がある。3人で4500円くらいだった。格安。皿うどんが巨大で美味い。

2次会として、すぐ近くのレボリューションブックスへ。辛奴が美味しかった。常連の方に1杯奢って頂いた。

土曜日

サークルの新歓コンパ。1次会はDENENだった。

DENENのあとはみんなで鴨川に行った。目を離したスキに人々がすしてつに向かったという情報が入ったので、後を追ったところ、我々は入店できたが、中に人々はいなかった。後から聞いたのだけど、すしてつに入れずにDENENに行ったとのことだった。

我々は運良く入店できたので、芽ネギを見た。

そのあとはDENENに合流し、タワービールを注文。

東京から京都にやってきている人がいたので、一緒にOTAKU Bar iSMに。

最近のアニメ観れてないので、唯一観ているリトルウィッチアカデミアから『アッコ』を注文する。

その後はシエスタでやってた2年ぶりのプログラマーズナイトに顔を出し、4時過ぎに解散。お疲れ様でした。

「飲みに行くぞ」ボタンブログパーツ作った

作った。

「飲みに行くぞ」ボタンブログパーツ

仕組みとしてはJSを埋め込んでもらって.lets-drink-beer-buttonが付いてる要素のdata-*を見て、twitterのintentを開くという作戦。JSの配信はGithub Pagesに任せた。

見本

ビールCSSなし

ビールCSSあり

ブログのサイドバーにも設置してみました。皆さんもご利用ください。

「飲みに行くぞ」ボタンブログパーツ

GW4日目 普通の大学生っぽい服を買いに行くやつ2017春コレクション

恒例になりつつある服買いイベントを開催した。

これまでの活動について

過去2回はレイジブルーという服屋さんに行っていたが、店舗の見た目がオシャレなどなどの理由で、服を買う会以外で入店出来てなかったので、今回は僕が1人でも入れそうという理由でユニクロで買うということになった。

会場はユニクロ ミーナ京都店。このユニクロは広くて便利。

で、買い物についてなのですが、事前のインターネットリサーチで把握した流行色などを無視して、参加者が過去2回で洗練されたので、僕に着せると似合いそうな服がシュシュッと発見され30分くらいで終了しました。

柄物が意外と似合うのではないかという話になったので、この写真で試着しているものの他に柄物の半袖シャツも購入しました。

ユニクロ会員になると500円引きクーポンがもらえるというので登録したところ、ウェブサイトで買った商品確認できて便利。というわけで、僕と同じ服を着たい方のためのリンク集です。

服を買った後はこちらも恒例の出来事になりつつある靴を買いに行った。前回買った靴は終了してしまったので買い替えというやつです。

これまで僕の足の形などの問題でめちゃくちゃ苦労していたのですが、こちらも参加者の経験が高まっていたので、「これ履けるんじゃない?」「あ、履けますね」という感じで20分くらいで終了した。感激。

毎回同じ友だちと買いに行っているので、友だちが僕の状態などに詳しくなっていってる状態。僕としては今回は柄物も似合うなどの情報を得た。次回は夏くらいにSOU-SOUで購入しましょう。

明日くらいに散髪に行きます。