タグ

ブックマーク / havelog.aho.mu (10)

  • Web クライアントサイドのパフォーマンスメトリクス — Speed Index、Paint Timing、TTI etc...

    色々なパフォーマンス指標のこと 何かを評価するときには何らかの指標(メトリクス)を定めますが、何を指標として設定してどのように測るかというのは重要です。 いわゆる KPI もそうですが、扱っている商材やビジネスのステージ(フェーズ)によっても適切な指標は変わるかもしれません。色々な指標をよく理解して引き出しを広げておくことは、状況に合わせて適切な指標を選んで改善していく過程で役立ちます。 これまでのパフォーマンス指標 過去の Web パフォーマンス界隈はバックエンドから HTML ドキュメントを返却する際の所要時間や、Web ページロード時の各イベントの発火時間を計測する方法が多く見られました。 Backend Time Browser Event Based DOMContentLoaded Page load ( onload ) 近年は特に後者の、既定のイベント発火に依存していたクラ

    Web クライアントサイドのパフォーマンスメトリクス — Speed Index、Paint Timing、TTI etc...
  • SPA + サーバーサイドレンダリング、そのダルさに関する私見

    いわゆる SPA + サーバーサイドレンダリングがダルい 唐突ですがおさらいです。 なぜサーバーサイドレンダリング(SSR)が嬉しいかと言えば 初期表示の Critical Rendering Path を短縮できる SEO における保守信仰にやさしい() 古いブラウザ・低性能マシンにやさしい yahoo/fluxible による SPA + Server Rendering の概観 ::ハブろぐ であり、特に SPA + SSR の文脈においては Universal Architecture による SPA + SSR は、技術的には過渡期の歪なキメラっぽさが拭いきれませんが、昨今の Web フロントエンドにしては珍しくビジネス的な説得力があります。 SSR なのでSNSや検索からの流入による初期表示が速い SPA なので回遊時のページ遷移も速い SSR なので古いブラウザでも CSS

    SPA + サーバーサイドレンダリング、そのダルさに関する私見
  • 最近あまり使ってない、流行っていた時期もあるフロントエンドもの

    最近あまり使ってない、ちょっと前の流行りもの なんとなく書いてみます。Web アプリケーション開発屋さんなので、Web サイト制作屋さんとはかなり文脈ズレると思います。 jQuery ファミリー 個人的には jQuery って、協業用のツールという位置づけでした。jQuery でさえ書かれていれば、jQuery 書ける人材のほうが外からも調達しやすいため、人員の流動にも有効と考えられる頃が確かにありました。 DOM に触れてくれるな勢の台頭 ところが昨今では AngularJS や React、その他ライブラリでも DOM 操作が大いに抽象化されていることが多く、jQuery で直接 DOM を操作すること自体が相性良くないケースが散見されます。今思えば Backbone.js くらいのころが jQuery 需要の最終ピークだったように思います。 jQuery プラグイン の需要減 jQu

    最近あまり使ってない、流行っていた時期もあるフロントエンドもの
  • 2014年のWebパフォーマンスふりかえり - 来年以降の期待etc

    ひさびさにWebフロントエンドパフォーマンス系の話題をつらつらと書いてみます。例によってモバイル系開発者寄りの視点かもしれません。文中の参照リンク多め。 ファクタ まずはパフォーマンスに影響を与えるファクタについての所感。Webパフォーマンスにおけるイニシャライズとランタイム ::ハブろぐ で示した分類に基づきます。 イニシャライズ(いわゆるページロード) 4GやLTEが普及してもコンテンツの肥大化には追いついていない concat と CSS Sprites の呪いが解けない HTTP/2 の Streams and Multiplexing に期待 HTTP/2 の Server Push にも期待 画像周りだと <picture> 関連仕様も使いたい(srcsetだけならいける?) WebRTC とか WebSocket とかストリーミングとかは? (やや疎い、てかイニシャライズじゃ

    2014年のWebパフォーマンスふりかえり - 来年以降の期待etc
  • AngularJSとサーバーサイドテンプレートの混在とngNonBindable

    Angularとサーバーサイドテンプレートの混在 先日リリースされた某サービス(他社)がAngularを使っていて、XSSがボロボロ出てくるだとか、{{var}} な形式で値を入力するとng-template側でテンプレーティングされるだとかの話がありました。 詳しくは見ていないので、今回の話とまったく同じかは把握していませんが、サーバーサイドテンプレートを混在させると、次のようなことが起こりえます。 例えばejsとAngular サンプルとしてスカスカなControllerを用意します。 angular.module('app', []).controller('AcmeCtrl', function($scope) { $scope.foo = 'bar'; }); ejsは次のようなテンプレートになっているとします。

    AngularJSとサーバーサイドテンプレートの混在とngNonBindable
  • Gruntによる継続的なビルド環境を求めて 〜 package.jsonと0.4.0のこと

    安定したビルド環境 gruntの広まりを感じる...。みんな...package.jsonをつかうのです...そしてバージョンにも気を遣ってstableな環境を目指すのです....安定して使えないビルド環境はいくらナウくてもゴミです....。 — aho.mu (@ahomu) December 11, 2012 夏前に、nodeでビルドってなんかナウい(∩´∀`)∩ワーイって使い始めて、秋から現職のプロジェクトで実践してみた結果、そんな当たり前な視点を忘れないようにしなければ、と強く思った次第。 今回は下記の2点を紹介します。 Gruntと永く付き合うためのノウハウとして、package.jsonを使った管理について 賞味期限の短いノウハウとして、Grunt 0.4.0への移行に関して Gruntイイヨーの続きとして、今後付き合っていくために必要なことを改めておさらい。 1. packa

    Gruntによる継続的なビルド環境を求めて 〜 package.jsonと0.4.0のこと
  • 続・PhantomJSで遊ぶヽ|・∀・|ノ Static HTMLの生成

    Ajaxページの問題と、StaticなHTMLの生成 Ajaxでズンドコやってるページだと、検索エンジンからのアクセス時に空ページでSEOがアウアウァ!!って話はよく耳にします。 GooglebotがAjax的なアレコレについて賢くなってきているとは申します。AJAX クロール: ウェブマスターおよびデベロッパー向けガイドのような情報ドも公開されているので、それに従えばきっと....という所ではありますが、より確実にStaticなHTMLを!という声も少なくありません。 ということで、今回は、AjaxでDynamicなページを元に、StaticなHTMLを自動生成しておいて、検索クローラからのアクセスにはStatic HTMLを返却する、ということを考えてみます。ここではStatic HTMLの生成まで試していて、URL設計とかサーバサイドのアレは割愛。Phantomしたいだけなので。 サ

    続・PhantomJSで遊ぶヽ|・∀・|ノ Static HTMLの生成
  • Web/PhpStormでCoffeeScriptのコンパイルをRunするメモ

    Web/PhpStormでCoffeeScriptのコンパイル設定 目標はRun(Shift+F10)で、設定しておいたCoffeeScriptがサクッとコンパイルされること。以下、Mac OSXでの作業ログ。 coffee --watchとかブラウザで直実行とかすれば良いケースもありつつ、まずは使い慣れたIDEに設定を通してみる次第。PhpStormのバージョンは3.0.3(ちょい古い?) 1. NodeJS PluginをDownload and Install Settings -> Plugins -> Browse repositories -> NodeJS 2 nodeとcoffeeをbrewでサクッと ここはnodeとcoffee入れば何でもよいのですが、急ぎだったのでサクッとbrewで。 brew install node where node -> /usr/local

    Web/PhpStormでCoffeeScriptのコンパイルをRunするメモ
  • Gruntfileを整理してタスクの自動化を進めた

    (急遽宣伝) FrontrendでGruntします Frontrend(フロントレンド) Vol.3 powered by CyberAgent : ATND Frontrend(フロントレンド)とは サイバーエージェントが主催するフロントエンド技術セミナーです。 HTML5/CSS3やJavaScriptのトレンドやノウハウ等を惜しみなくお伝えします。 2012/10/21(日)の午後に、FrontrendでGruntのことを紹介させていただく運びになりました!以下の記事は色々と知ってる前提な内容になってしまっているので、ベーシックな所から知りたい方には特にオススメです。 今回のFrontrendはスピード特集ということで、ページパフォーマンスの最適化はもちろん、CSSプリプロセッサの導入や、ガイドラインの運用による業務効率のカイゼンにも踏み込んでスピードを上げていきます!ということで

    Gruntfileを整理してタスクの自動化を進めた
  • node.js+expressでPOSTパラメーターを取得する方法

    むーん? node.jsつーかexpressで,GETメソッドはreq.queryでオブジェクト化されてるけど,POSTメソッドのパラメーターがreqだけじゃだめなのかな.Wed Feb 23 14:42:29 via Echofonあほむ ahomu ふつうにPOSTを受け取る var app = express.createServer(); app.post('/post', function(req, res) { console.log(req); }); このreqの中に,POSTっぽいものは含まれていません. イベントで受け取ってるみる app.post('/post', function(req, res) { req.on('data', function(chunk) { console.log(chunk); }); }); こうすると,chunkの中はPOSTされた

    node.js+expressでPOSTパラメーターを取得する方法
  • 1