JS中心のアプローチは長期的な性能目標と両立しない — 2026年 第7週 ウェブ開発
今週の注目記事はReactのデフォルト選択への直接的な挑戦です。Automatticのシニアパフォーマンスエンジニアがreact-domのv18からv19でのバンドル33%増加やmomentの長年の肥大化などの具体的な数値を示し、JS中心のSPAが持続的な性能維持と構造的に相容れないと論じています。この記事はReact批判では… 開発ですぐ活用できるよう整理しました。

モバイル性能:Webサイトをモバイルフレンドリーにする方法 | DebugBear

Playwright vs Cypress:QA自動化の究極ガイド

数十億行を扱うVirtual Scrolling — HighTableの手法
hyparam/hightable)でcanvas要素や擬似スクロールバーを使わずに数十億行をレンダリングするための5つの技術を解説しています。技法1(lazy loading)はスクロールイベントごとに表示行インデックスを計算し、理論上1TBのデータセットを約3KBのロードに抑えます。技法2(table slicing)は行数に関わらずDOMを約30レンダリング行に固定し、Chromeの300要素更新推奨値を満たします。技法3(infinite pixels)はFirefoxの最大要素高さ(約17Mpx)制限に対応するためcanvas divを800万ピクセルに制限しダウンスケール係数を適用、100億行テーブルのナビゲーションを実現します。技法4(pixel-precise dual scroll)はマウスホイールのローカル移動とスクロールバードラッグのグローバル移動を区別し、最大2兆行まで1ピクセル精度を保証します。技法5(two-step random access)はWAI Grid Patternに基づくキーボードナビゲーションがプログラム的なscrollTop書き込みと競合しないよう、垂直・水平スクロールを分離します。
N+1クエリ問題を測定した。数字は想像以上に深刻
P95が185msに達しました。1,000ユーザーにスケールすると、ネストのbad pathは1.27秒(4,001クエリ)を超えました。IDをSetに集めてfindMany + WHERE INで一括取得するconditional batch-fetchパターンは56クエリを2クエリに削減し、データが10倍になっても線形以下の増加に留まりました。全テストケースでデータサイズが増えるほど性能差が拡大し、「N+1はスケール時に対処すれば良い」という通説を実証的に覆しています。遅いコードレビューの隠れたコスト:800万件のPRデータ
CODEOWNERS自動アサイン、同営業日中のpickup SLA設定、AI初回レビュー導入(所要時間2〜3時間→20〜30分)、チームダッシュボードへのPRサイクルタイム表示。
フルスタックDockerとCI/CDを完全習得 — 本番対応パイプラインを構築
docker-compose.ymlのraw URLに向け、ビジュアルエディターで環境変数(OpenAI APIキー、CORS allow-origins、APIホストIP)を設定してDeployをクリックすれば、セットアップ全体が数分で完了します。続いて、Dockerfile.prodファイルからDockerイメージをビルドしてDockerHubにプッシュするGitHub ActionsワークフローがCI/CDサイクルをトリガーする様子も示されます — Reactコンポーネントの1行変更がgit push1回とDocker ManagerのDeployボタンクリックだけで本番環境に反映されます。コースの後半は内部動作を詳しく解説します:Node 20-Alpineクライアント用とGo 1.24.2-Alpineサーバー用のDockerfileをレイヤーごとに記述し、docker build -tでイメージをビルド、docker run -pポートマッピングと--env-fileインジェクションで個別コンテナを起動し、最終的にdocker-compose.ymlで両サービスをまとめ、複数コマンドのワークフローをdocker compose up1つに置き換えるまでの流れを網羅しています。JS中心のアプローチは長期的な性能目標と両立しない
フルスタックDockerとCI/CDを完全習得 — 本番対応パイプラインを構築
docker-compose.ymlのraw URLに向け、ビジュアルエディターで環境変数(OpenAI APIキー、CORS allow-origins、APIホストIP)を設定してDeployをクリックすれば、セットアップ全体が数分で完了します。続いて、Dockerfile.prodファイルからDockerイメージをビルドしてDockerHubにプッシュするGitHub ActionsワークフローがCI/CDサイクルをトリガーする様子も示されます — Reactコンポーネントの1行変更がgit push1回とDocker ManagerのDeployボタンクリックだけで本番環境に反映されます。コースの後半は内部動作を詳しく解説します:Node 20-Alpineクライアント用とGo 1.24.2-Alpineサーバー用のDockerfileをレイヤーごとに記述し、docker build -tでイメージをビルド、docker run -pポートマッピングと--env-fileインジェクションで個別コンテナを起動し、最終的にdocker-compose.ymlで両サービスをまとめ、複数コマンドのワークフローをdocker compose up1つに置き換えるまでの流れを網羅しています。モバイル性能:Webサイトをモバイルフレンドリーにする方法 | DebugBear
Playwright vs Cypress:QA自動化の究極ガイド
数十億行を扱うVirtual Scrolling — HighTableの手法
hyparam/hightable)でcanvas要素や擬似スクロールバーを使わずに数十億行をレンダリングするための5つの技術を解説しています。技法1(lazy loading)はスクロールイベントごとに表示行インデックスを計算し、理論上1TBのデータセットを約3KBのロードに抑えます。技法2(table slicing)は行数に関わらずDOMを約30レンダリング行に固定し、Chromeの300要素更新推奨値を満たします。技法3(infinite pixels)はFirefoxの最大要素高さ(約17Mpx)制限に対応するためcanvas divを800万ピクセルに制限しダウンスケール係数を適用、100億行テーブルのナビゲーションを実現します。技法4(pixel-precise dual scroll)はマウスホイールのローカル移動とスクロールバードラッグのグローバル移動を区別し、最大2兆行まで1ピクセル精度を保証します。技法5(two-step random access)はWAI Grid Patternに基づくキーボードナビゲーションがプログラム的なscrollTop書き込みと競合しないよう、垂直・水平スクロールを分離します。N+1クエリ問題を測定した。数字は想像以上に深刻
P95が185msに達しました。1,000ユーザーにスケールすると、ネストのbad pathは1.27秒(4,001クエリ)を超えました。IDをSetに集めてfindMany + WHERE INで一括取得するconditional batch-fetchパターンは56クエリを2クエリに削減し、データが10倍になっても線形以下の増加に留まりました。全テストケースでデータサイズが増えるほど性能差が拡大し、「N+1はスケール時に対処すれば良い」という通説を実証的に覆しています。遅いコードレビューの隠れたコスト:800万件のPRデータ
CODEOWNERS自動アサイン、同営業日中のpickup SLA設定、AI初回レビュー導入(所要時間2〜3時間→20〜30分)、チームダッシュボードへのPRサイクルタイム表示。今週の注目記事はReactのデフォルト選択への直接的な挑戦です。Automatticのシニアパフォーマンスエンジニアがreact-domのv18からv19でのバンドル33%増加やmomentの長年の肥大化などの具体的な数値を示し、JS中心のSPAが持続的な性能維持と構造的に相容れないと論じています。この記事はReact批判ではなく、クライアントサイドレンダリングを実際のユーザーワークフローで正当化できない場合にサーバー中心のMPA・htmx・小型フレームワークを選ぶよう促す冷静なエンジニアリング監査です。
パフォーマンスへの厳格な視点が今週のコンテンツ全体を貫いています。PostgreSQL 17とPrismaを使った実証的なN+1研究は、1,000ユーザーのネストフェッチが4,001クエリで1.27秒を超え、データサイズが増えるほどペナルティも増大することを示し、「N+1はスケール時に対処すれば良い」という通説を真っ向から否定します。数十億行のデータテーブルへの仮想スクロールは、canvas要素と擬似スクロールバーを避ける5つの技法で体系的に解説されます。モバイル性能はラボスコアと実ユーザーフィールドデータを併用する必要性を示します。
ワークフローとテストが今週を締めくくります。810万PRのデータに基づく年間約23万7,800ドルの低速コードレビューのコスト推定は、小さなPRと当日pickup SLAのためのデータに基づいた論拠です。PlaywrightとCypressの比較は実用的な分業として整理されます。Docker+CI/CDの4時間コースはDockerfileから本番デプロイまでのコンテナ化パイプライン全体を示します。
- react-domはv18からv19でバンドルサイズが33%増加しました — フルSPAアーキテクチャをデフォルト選択する前に、フレームワークの重さを実際のユーザーワークフローの複雑さと比較して測定してください。
- N+1クエリのペナルティはデータセットサイズとともに増大します。1,000ユーザーのネストフェッチは4,001クエリで1.27秒を超えるため、スケール後ではなくスケール前に必ず解決する必要があります。
- エリートチームはPRを219行以下に保ち7時間以内にpickupします。LinearBデータによると、パフォーマンスの低いチームは10人規模で年間約23万7,800ドルをアイドル待機時間で無駄にしています。