performance-optimization について
Web アプリ、テーマ、フロントエンド向けの性能改善ガイドを提供するスキルです。レンダリング、アセット、キャッシュ、設計、測定を扱い、性能コストの把握と低減に役立ちます。
主な機能
- 01サーバーサイド・ストリーミングレンダリング
- 02Core Web Vitals の最適化
- 03CSS と JavaScript の効率化
- 04画像とフォントの最適化
- 05キャッシュ戦略
- 06監視と性能予算
活用シーン
- 01クライアント側 JavaScript とバンドルサイズの削減
- 02レンダリングと読み込みの改善
- 03画像、フォント、CSS アセットの最適化
- 04本番環境の性能劣化の追跡
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill performance-optimizationインストール後、Claude Code で/performance-optimizationを入力して読み込まれたか確認します。
詳細
パフォーマンス最適化
Web アプリケーション、テーマ、フロントエンドインターフェースの開発では、次のパフォーマンス最適化の原則を適用してください。
パフォーマンスの基本原則
- クライアントサイドの JavaScript ではなく、まずサーバーサイドレンダリングを優先します
- クライアントサイドの JavaScript を最小限に抑え、バンドルサイズを削減して操作可能になるまでの時間を短縮します
- Core Web Vitals(LCP、FID、CLS)を最適化します
- パフォーマンスを継続的に測定し、ベースラインを設定します
- すべてのアーキテクチャ上の決定がパフォーマンスに与える影響を考慮します
サーバーサイドレンダリング
- 可能な場合は、コンテンツをサーバーサイドでレンダリングします
- ストリーミングレンダリングを使用して、Time to First Byte を短縮します
- レンダリングされたコンテンツに適切なキャッシュ戦略を実装します
- レンダリングを遅らせるブロッキングリソースを避けます
- 該当する場合は、静的コンテンツを事前レンダリングします
CSS のベストプラクティス
セレクターの効率性
- スタイリングに ID セレクターを使わず、クラスを使用します
- 可能な限り詳細度を 0 1 0 に維持します
- セレクターの深いネスト(最大 3 階層)を避けます
- 明確さを保つため、BEM などの命名規則を使用します
- 要素セレクターよりクラスセレクターを優先します
CSS の構成
- 色、間隔、繰り返し使用する値には CSS 変数を使用します
- 関連するスタイルを論理的にまとめます
- 未使用の CSS を削除してペイロードを削減します
- ファーストビューのコンテンツには、クリティカル CSS のインライン化を検討します
- 複雑なレイアウトには CSS containment を使用します
レイアウトのパフォーマンス
- レイアウトのスラッシング(強制的な同期レイアウト)を避けます
- アニメーションには transform と opacity を使用します(GPU アクセラレーション)
- ペイント処理とコンポジット処理を最小限に抑えます
- will-change は慎重に、意図的に使用します
- float や position より Flexbox と Grid を優先します
JavaScript の最適化
コードの構成
- コードの構成にはモジュールパターンを使用します
- 適切な識別子を付けてプライベートメソッドをプレフィックスします
- let より const を優先し、var は避けます
- ネイティブ API で十分な場合は、外部依存関係を避けます
- コードを論理的な読み込み可能チャンクに分割します
読み込み戦略
- 重要でない JavaScript は遅延させます
- 独立したスクリプトには async 読み込みを使用します
- 大規模なアプリケーションにはコード分割を実装します
- コンポーネントとルートを遅延読み込みします
- 重要なリソースをプリロードします
実行時のパフォーマンス
- イベントハンドラーに適切なデバウンスとスロットリングを適用します
- 視覚的な更新には requestAnimationFrame を使用します
- 実行時間の長い同期処理を避けます
- 効率的な DOM 操作パターンを実装します
- CPU 負荷の高いタスクには Web Workers を使用します
アセットの最適化
画像
- フォールバックを用意したうえで、最新の形式(WebP、AVIF)を使用します
- srcset を使ってレスポンシブ画像を実装します
- ファーストビューより下の画像を遅延読み込みします
- すべての画像を最適化して圧縮します
- 適切な画像サイズを使用します
フォント
- 必要な文字だけを含むようにフォントをサブセット化します
- 体感パフォーマンスを向上させるため、font-display: swap を使用します
- 重要なフォントをプリロードします
- フォントのバリエーション数を制限します
- ブランド表記を必要としないテキストには、システムフォントの使用を検討します
キャッシュ戦略
- 静的アセットに適切なキャッシュヘッダーを設定します
- キャッシュを更新するために、バージョン付きのファイル名を使用します
- CDN キャッシュを効果的に設定します
- オフラインサポートのためにサービスワーカーを実装します
- 適切な場合は API レスポンスをキャッシュします
アーキテクチャパターン
テーマとコンポーネントのアーキテクチャ
- コードを論理的なセクションとブロックに整理します
- 保守性を高めるため、適切なフォルダー構造を使用します
- 関心事を明確に分離します
- 再利用可能で合成可能なコンポーネントを作成します
- コンポーネントの API と使用方法を文書化します
設定とオプション
- 設定を論理的に整理し、明確なグループに分けます
- 明確で説明的な命名規則を使用します
- 複雑さを軽減するため、条件分岐を実装します
- 適切なデフォルト値を設定します
- ビルド時に設定を検証します
国際化のパフォーマンス
- すべてのテキストが翻訳可能であることを確認します
- 翻訳を効率的に読み込みます(ロケールごとに分割)
- 適切なロケール検出を使用します
- 翻訳済みコンテンツを適切にキャッシュします
- 右から左へ記述する(RTL)レイアウトへの影響を考慮します
計測とモニタリング
- 本番環境の状況を把握するために、リアルユーザーモニタリング(RUM)を使用します
- ベースラインを追跡するために、シンセティックモニタリングを設定します
- Core Web Vitals を継続的に監視します
- CI/CD でパフォーマンス予算を追跡します
- パフォーマンスの低下を分析し、対処します
データベースのパフォーマンス
- クエリを最適化し、適切なインデックスを使用します
- コネクションプーリングを実装します
- 頻繁にアクセスされるデータにキャッシュを使用します
- 大規模な結果セットをページネーションします
- スロークエリを監視し、定期的に最適化します
コメント
Markdown 対応