タグ

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

  • SSR と CDN ( Fastly ) とユーザー依存情報、その後

    正式リリースに向けての開発で表面化した不都合 以前、アーキテクチャ編: SSR と CDN ( Fastly ) とユーザー依存情報の分離(新規開発のメモ書きシリーズ4)で紹介したように、SSR で生成した HTML を CDN ( Fastly ) でキャッシュできるように「ユーザー依存情報はクライアントサイドで非同期に取り扱うというアプローチ」をとっていました。それによって発生していた不都合と解決に関する追加情報です。 ユーザー依存情報が非同期でレイアウトされる問題 ユーザー依存情報が非同期で解決されるということは、そのような情報を扱うコンポーネントの矩形は Web ページが一度レンダリングされたあとにレイアウトされます。つまりこの記事でも紹介されたところの「ガタンッ」的なユーザー体験が生じます。 ログインと非ログインが、全く同じサイズの矩形を確保するようなビジュアルデザインになってい

    SSR と CDN ( Fastly ) とユーザー依存情報、その後
    teppeis
    teppeis 2018/05/31
    FastlyでJWTな話
  • 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 + サーバーサイドレンダリング、そのダルさに関する私見
    teppeis
    teppeis 2017/06/15
    サービスのビジネス特性に合わせて、などという一般論しか言えない
  • Web アクセシビリティ向け Node.js 製の自動チェックツールや DevTools 用の拡張機能など

    アクセシビリティを担保するプロセス作り この記事は Web Accessibility Advent Calendar 2016 - Adventar の 12 日目の記事です。 UI 実装の再考と a11y - Frontrend Vol.8 LT でも述べましたが、Accessibility is a Process, Not a Project ということでアクセシビリティ対応するプロジェクトではなく、アクセシビリティを担保するプロセスを作りましょうということで、チェックツールをいくつか並べて俯瞰してみます。対象読者は自分と同じようなクライアントサイドの Web アプリケーション屋さんということにしておきます。 ちなみにアクセシビリティ評価ツールについては 3 日目のアクセシビリティ方針、報告書、試験支援ツールa11ycのご紹介 (Web Accessibility Advent C

    Web アクセシビリティ向け Node.js 製の自動チェックツールや DevTools 用の拡張機能など
  • Web アクセシビリティと呼ばれているものと Web アプリ開発現場に思いを寄せて

    捉え方と考えの整理 Web アプリケーション開発屋として Web アクセシビリティをどのように捉え、どのように付き合っていくべきかの考えを書いてみます。昨今の Web サービスにおいてアクセシビリティは Web の領域だけで果たされるものではなくアプリとかも含めてだよね、という向きはありますが話が広がりすぎるので今回は Web の中に留めます。 自分が Web におけるアクセシビリティとは何なのか?と考えるときは「多様なクライアント環境に対する配慮」と「制限をもつユーザーに対する配慮」の2面で捉えています。前者はあくまで Web に関する技術的な配慮であり、後者は Web に限らず包括的なアクセシビリティとしての配慮またはその社会的要請です。 多様なクライアント環境や Web に対するニーズへの配慮 Web ページを参照できるユーザーエージェントやデバイスの数が多いのは言うまでもなく、これ

    Web アクセシビリティと呼ばれているものと Web アプリ開発現場に思いを寄せて
    teppeis
    teppeis 2016/12/05
    動機づけ戦略について
  • Web サイトっぽい SPA に必要なブラウザナビゲーションのエミュレートなど

    Web サイトっぽい SPA に立ち向かう 大分前の話ですが、Node学園 20時限目 今回もdots!!!!! - connpass で Client Side of なんちゃらfresh.tv としてお話した内容のうち、Web サイトっぽい SPA に関してだけこだわりを再抽出して書き留めます。 件は、ページ全体のスクロールや頻繁なナビゲーションを伴わず、1画面におさまるレスポンシブな Web アプリを作っている場合はあんまり関係がありません。画面内の局所的な状態更新は、コンポーネントの責務分割やら何やらの設計なので実は別の話です。 総じて、Web サイトっぽいくせに大人の事情で Web ブラウザのネイティブなナビゲーションを積極的に破壊しにいくときの心構えです。 URL が変わっても最低限レンダリングできるまで画面更新を遅延させる 画面遷移に必要なのは、 URL が更新されても次の

    Web サイトっぽい SPA に必要なブラウザナビゲーションのエミュレートなど
    teppeis
    teppeis 2016/07/24
    SPAするとブラウザの基本機能を再実装せねばならんの、これでいいんだっけと思いながらもやらねばならんのよね
  • リモートワークの勘所と限界について1年くらいの感想、組織にとっての選択肢作りの話

    1年くらいリモートワークを続けてみた感想 まず当然ながら「リモートワークは生産性が高い!これこそ未来のワークスタイル!」のような感想はありません。 生産性やコミュニケーションに関連するメリット、デメリットをうまく相殺しきれれば、生活の自由度だけ向上してハッピー、と考えています。 今は自宅かレンタルオフィスのいずれかを作業場として開発などを行いつつ、社がある渋谷には1泊2日の出張を月2回するようなペースで仕事をしています。基Slack でテキストチャットによるコミュニケーションをメインとしつつ、必要があれば MTG に Hangout でビデオチャットで参加します。 生産性は大して上がらない 期待していた生産性は、それほど向上することはありませんでした。 東京にさえいなければ気軽に MTG に呼び出されることもありませんし、開発に充てることが可能な時間は若干増えています。通勤時間が長

    リモートワークの勘所と限界について1年くらいの感想、組織にとっての選択肢作りの話
  • ブラウザベンダによる Flash 包囲網の現状メモ ( 2016年12月20日アップデート )

    Flash の息の根がいよいよ止まりそう ※ ( 2016年7月21日 ) Firefox について動きがあったので追記しました ※ ( 2016年10月10日 ) Chrome について 8/9 付けの動きを追記しました ※ ( 2016年10月10日 ) Safari 10 の挙動について追記しました ※ ( 2016年12月20日 ) Chrome のについて 12/9 付けの動きを追記しました ※ ( 2016年12月20日 ) Edge について 12/14 付けの動きを追記しました 脱 Flash、祝 HTML5 という機運が高まったのはだいぶ前の話ですが、実際には Flash コンテンツは今もなお数多くが生き続けています。たとえばニコニコ動画のプレイヤーであったり、アメーバピグや艦これのような人気ゲームにも Flash で作られているものがあります。 各ブラウザの状況 まだま

  • Web Initiative Center と社内的な所信表明

    4月から社内の Web Initiative Center ( 以下 WIC ) というグループで、新しい業務に取り組み始めました。社内メールに放流することを前提として書いているので、社内向けの内容です。すみません。 2016/11/03 追記: 開局6か月/900万DL突破の「AbemaTV」、急成長するウェブサービスを支えるフロントエンドエンジニアの舞台裏:CodeZine(コードジン) の取材の中でも Web Initiative Center について話をしました。 活動 Web のプロダクト品質を横断的に向上させる Web 技術を使ったチャレンジがしやすい環境をつくる この2つが活動の主旨であり、これらを通して Web によるユーザー体験を向上させることが目的です。 活動は CyberAgent 全社ではなくメディア系の部門内にひとまず限られますが、この中にはアメブロや Ameb

    Web Initiative Center と社内的な所信表明
    teppeis
    teppeis 2016/05/23
    尊い
  • 【AD】名古屋に戻ってリモートワーカーになりました

    なっごや〜 周囲の方々へのご報告を兼ねまして、家庭の事情と思う所があり名古屋に引っ越しました。半年に及ぶ相談と調整を経て、幸いにも諸々の条件つきで現職のままでございます。 名古屋で粛々とした勉強会をやったりとか色々検討中なので、よしなにお願い致します。 リモート業務との向き合い方 リモートとイモートって似てない? イモート業務したくない?? — あほむ (@ahomu) June 22, 2015 などとバカなことを言っていたら、当にリモート業務を始めることになりました。当面は今のプロジェクトのチーム(開発系だけで20人近くいる!!)で仕事をするのでチームプレイがんばります。 遠隔地とコミットメント 在宅勤務というと自由気ままなイメージがありますが、実は人一倍他人に対して気遣いができる、コミュニケーション能力の高い人間でないと、務まらないです。 また、人並み以上にチームや組織全体の目標に

    【AD】名古屋に戻ってリモートワーカーになりました
    teppeis
    teppeis 2015/09/10
    徳の高さがうかがえる
  • Isomorphic Architecture を実装してるときの細かいアレコレ

    Isomorphic あらため Universal ? 一時期火がついていた Isomorphic について。各自がプロダクションの事例を作り上げる潜伏期に入ったのか、はたまた当に一過性で火が消えたのか、コモディティ化を遂げたのか分かりませんが、あまり耳にすることがなくなった印象です。 そんな中ですが先日、Universal JavaScript — Medium が公開され、なるほど Universal ってキモチになったので、タイトルに反して以下は Universal と呼称します。 今回の話題にするのは module レベルではなく Universal な JavaScript architecture のほうです。アーキテクチャのレベルで Universal なコードが役立つ代表的ケースは SPA (Single Page Application) と SSR (Server S

    Isomorphic Architecture を実装してるときの細かいアレコレ
  • ECMAScript 6 ほか - WEB+DB PRESS Vol.85の宣伝

    Webフロントエンド最前線 連載第5回 技術評論社さんで @1000ch と連載させていただいているWebフロントエンド最前線の第5回「ECMAScript 6 と JavaScriptの未来」が、2月24日発売のWEB+DB PRESS Vol.85 に載りました。 ECMAScript 6 の現状確認と周辺ツールなど ちょっと前に もうES6 (ES2015) でいいんじゃないか という記事を書きまして、各種の反応をいただいたのですがともあれES6に対する関心の低くなさ(マジョリティ的には決して高くないと思われる)がありました。 その中でこのような言及もいただいたりして、ES6に対する今からとれる姿勢の多様さを感じるのでありました。 標準化に対する早期のキャッチアップとしての ES6 ローコスト・ローリターンな AltJS としての ES6 のような論点が浮かび上がってくる共に 標準化

    ECMAScript 6 ほか - WEB+DB PRESS Vol.85の宣伝
    teppeis
    teppeis 2015/06/19
    ES6との付き合い方
  • Google I/O で v1.0 が発表された Polymer の Elements Catalog が面白い

    Polymer Elements のカタログページ Site: Polymer Element Catalog Repo: Polymer/polymer-element-catalog Polymer は、これからの Web 標準の一角を占めるであろう Web Components のラッパーライブラリです。その Polymer で作られたコンポーネントのカタログサイトが公開されていました。 これまでも Core Elements や Paper Elements が Polymer のコンポーネントとして提供されていましたが、分類も新たにレパートリーが拡充されています。 Cart に入れて Download カタログには各コンポーネントのドキュメントやデモが載っていて、使いたいものをチェックして Cart に入れていきます。必要なコンポーネントを Cart に入れてダウンロードさせると

    Google I/O で v1.0 が発表された Polymer の Elements Catalog が面白い
    teppeis
    teppeis 2015/06/13
    「果たして、JavaScript Library Oriented な npm + React と、Web Standards Oriented な bower + Polymer の世界が交わる日がくるのか」
  • yahoo/fluxible による SPA + Server Rendering の概観

    Single Page Application + Server Rendering yahoo/fluxible を使って、Single Page Application と Server Rendering の良いとこ取りのアーキテクチャを目指す。ある程度の複雑性と引き換えに、双方の利点で双方の欠点を打ち消し合うことができるため、全体的には良好なユーザーインタラクションを期待できる構成。 なぜ Single Page Application なのか 画面遷移時するたびにJavaScript/CSS のパースと評価をしなくて良くなる 画面遷移時のトランジションを柔軟に適用できる 画面遷移をまたがった実装が可能になる(あくまで可能になるだけ) なぜ Server Rendering するのか 初期表示の Critical Rendering Path を短縮できる SEO における保守信仰

    yahoo/fluxible による SPA + Server Rendering の概観
    teppeis
    teppeis 2015/06/10
    よくできてるよなぁ。特にfetch周り
  • TypeScript における ES6 との兼ね合いで避けているパーツ

    ES6 フレンドリな TypeScript のために 先日書いた JSX と TypeScript の混合 Flux または悪魔合体 の経緯から TypeScript と JSX を併用しているため、コードの記述に大きな差ができないよういくつかのパーツ(主に TypeScript のもの)を避けることにしています。 NGなパーツ 独断と偏見です。 Private/Public modifiers ジャングル ニ プライベート ナイ! class Acme { private himitsu = ''; public tellme() {} } みたいなのですね。バイオ JS にプライベートなんて必要なかったんや。protected も使えるっぽいけどアンドキュメント? Modules ES6 ライクな import/export だけ使うということで内部モジュール禁止です。不便ないですね。

    TypeScript における ES6 との兼ね合いで避けているパーツ
    teppeis
    teppeis 2015/05/21
    TypeScriptのenumはなぁ。。
  • TCP Slow Start と MSS, initcwnd などのメモ

    現実的な値と根拠など Slow Start などの例に良く出てくる数字の論拠と、個々の単位がどこで決まってくるかを主に取り扱う。というメモ。苦手科目だ。_:(´ཀ`」 ∠): Max Segment Size (MSS) の決定 この MSS がウインドウサイズ(一度に転送するデータサイズ)の単位として扱われる。(後述) TCP コネクションが 3-way handshake によって確立される際、ノード間で下記のような MSS に関するやり取りが発生する。 各ノードは Maximum Transmission Unit (MTU) から TCPヘッダ20バイト、IPヘッダ20バイトの計40バイトを引いた値を MSS として提示する 各ノードの希望 MSS のうち低い方を、そのコネクションにおける MSS とする たとえばイーサネットでは最大1,500バイト(オクテット)がIP通信に利用で

    TCP Slow Start と MSS, initcwnd などのメモ
  • JSX と TypeScript の混合 Flux または悪魔合体

    JSX + TypeScript の悪魔合体 ギョーム的に気持ちになったので JSX + TypeScript をはじめました。 導入にあたってチーム内への説明を兼ねたブログ。AltJSに対して ES でいいじゃん派ですが、自分の型需要に対して 現状の Flowtype が辛みしかないのでやむをえず。 動機 紆余曲折あって結局 React を使うことにした React Component には JSX with Babel を使いたい(手書きは無理だ) UI 以外のロジックを持ったモジュールは型の恩恵に預かりたい Flowtype つらい TypeScript かー UI 周りは JSX で、その他の堅いロジックは TypeScript で書けばいいのでは? 共存だ!! メリットがあるのかも不明瞭ですが、分からないからこそ試してみようという感じです。JSX と TypeScript の境界

    JSX と TypeScript の混合 Flux または悪魔合体
    teppeis
    teppeis 2015/05/11
    今書いたらこういう構成になりますね。TypeScriptのES6 Module interopはほんとつらい。。
  • Web Components における依存ライブラリの断片化とエコシステムのコロニー化

    あくまで可能性のはなし あまりポジティブな意味で捉えられないのでタイトルですが、あくまで可能性の話であり、直面するかもしれない問題についての一次考察って感じです。 コンポーネントが依存するライブラリの断片化 ラッパーライブラリによるロックインまたは断絶 その他の妄想 ここでは上記の3点について、つらつら書いてます。 1. コンポーネントが依存するライブラリの断片化 これまで開発者は自身がすべてのコンポーネントを管理するつもりで、ときにミニマルに、ときに富豪的に、依存するライブラリを選定していました。 いつの日か Web Components を前提にしてコンポーネントを選定するときも、個々が依存しているライブラリまでコントロールしきれるかは定かではありません。 依存関係の肥大化は避けたい 例えば npm であればさほど気にならない依存関係の肥大化も、ブラウザで実行されるコンポーネントの場合

    Web Components における依存ライブラリの断片化とエコシステムのコロニー化
    teppeis
    teppeis 2015/04/08
    まだあのWeb Componensスタイルでのコンポーネント化を進めていくイメージができてない。
  • Pixateでアプリのインタラクションモックアップが捗りそう

    インタラクションのモックアップ ネイティブアプリを作っていて、いわゆるインタラクション・アニメーションの部分をモックアップできるツールの必要性を感じたので @hiloki さんに聞いたツールをいくつか試してみました。 The Next Generation of Mobile Interaction Design | Pixate Justinmind: Interactive wireframes for web and mobile Briefs 昔ながらに Flash を使うという選択肢もあった気はしますがせっかくなので、そういう用途に特化したツールを探したかった次第。(メンバーに Flash 使えるひとがいなかったという事情もある) Pixateがよかった The Next Generation of Mobile Interaction Design | Pixate 結果、一番

    Pixateでアプリのインタラクションモックアップが捗りそう
    teppeis
    teppeis 2015/03/30
    Flashプロトタイピング代替ツールの話。Pixateの動画すげー。
  • もうES6 (ES2015) でいいんじゃないか

    個人プロジェクトは ES6 で書いている ブログの頻度が落ちているので、継続のための雑さな記事を醸し出す時期。 以前に es6-Kameita を紹介したときの繰り返しですが、Babel (旧名 6to5) の登場から個人プロジェクトは ECMAScript 6 で書くようにしています。仕事でも新しい開発がある予定なので、そこでもきっと ES6 を使うことでしょう。 ahomu/Talkie ahomu/Urler ahomu/Claylump ということで「もう ES6 でいいんじゃないか」という気持ちを書きます。 厳密には、ES6トランスパイラを使っていけばいいんじゃないか、という話 仕様周りは(きっと)安定してきている 世間的の大多数的には、ES6とES7の境界すらハッキリしていないであろう状況ではありますが、ES6自体は2015年中の勧告を目標に進んでいることから、それなりに安定し

    もうES6 (ES2015) でいいんじゃないか
    teppeis
    teppeis 2015/02/17
    「プロダクトのライフサイクルのほうが browserify より短いので、あんまり気にしてないです」悟りの境地だ。