angular-best-practices-v20
Angular 20以降のベストプラクティスに基づき、Signals・httpResource・シグナル入出力・@defer・ネイティブ制御フロー(@if、@for)を活用したパフォーマンス最適化ガイドラインを提供します。Angularのコンポーネント・サービス・データ取得・バンドル最適化・パフォーマンス改善に関わる実装・レビュー・リファクタリング時に活用できます。
description の原文を見る
Angular 20+ performance optimization guidelines with Signals, httpResource, signal inputs/outputs, @defer, and native control flow (@if, @for). Use when writing, reviewing, or refactoring modern Angular code. Triggers on tasks involving Angular components, services, data fetching, bundle optimization, or performance improvements.
SKILL.md 本文
Angular Best Practices (v20+)
Comprehensive performance optimization guide for Angular 20+ applications with modern features like Signals, httpResource, signal inputs/outputs, @defer blocks, and native control flow syntax. Contains 35+ rules across 8 categories, prioritized by impact to guide automated refactoring and code generation.
When to Apply
Reference these guidelines when:
- Writing new Angular 20+ components
- Using Signals for reactive state (signal, computed, linkedSignal, effect)
- Using httpResource/resource for data fetching
- Using signal inputs/outputs instead of decorators
- Implementing @defer for lazy loading
- Using native control flow (@if, @for, @switch)
- Implementing SSR with incremental hydration
- Reviewing code for performance issues
Key Features (v20+)
- Signals - Fine-grained reactivity (signal, computed, linkedSignal, effect)
- httpResource - Signal-based HTTP with automatic loading states
- Signal inputs/outputs - input(), output() replacing decorators
- @defer - Template-level lazy loading with hydration triggers
- @for / @if - Native control flow with required track
- Standalone by default - No standalone: true needed
- Host bindings - host object instead of @HostBinding decorators
- Functional interceptors - Simpler HTTP interceptors
- takeUntilDestroyed - Built-in subscription cleanup
- Incremental hydration - @defer (hydrate on ...) for SSR
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Change Detection | CRITICAL | change- |
| 2 | Bundle & Lazy Loading | CRITICAL | bundle- |
| 3 | RxJS Optimization | HIGH | rxjs- |
| 4 | Template Performance | HIGH | template- |
| 5 | Dependency Injection | MEDIUM-HIGH | di- |
| 6 | HTTP & Caching | MEDIUM | http- |
| 7 | Forms Optimization | MEDIUM | forms- |
| 8 | General Performance | LOW-MEDIUM | ssr- |
Quick Reference
1. Change Detection (CRITICAL)
change-signals- Use Signals instead of BehaviorSubject for reactive statechange-onpush- Use OnPush change detection strategychange-detach-reattach- Detach change detector for heavy operationschange-run-outside-zone- Run non-UI code outside NgZonecomponent-signal-io- Use signal inputs/outputs instead of @Input/@Output decoratorssignal-computed-pure- Keep computed() pure, no side effectssignal-effect-patterns- Use effect() correctly, avoid anti-patternssignal-linkedsignal- Use linkedSignal for derived + writable state
2. Bundle & Lazy Loading (CRITICAL)
bundle-standalone- Use standalone components (default in v20+)bundle-lazy-routes- Lazy load routes with loadComponent/loadChildrenbundle-defer- Use @defer blocks for heavy componentsbundle-preload- Preload routes on hover/focus for perceived speedbundle-no-barrel-imports- Avoid barrel files, use direct imports
3. RxJS Optimization (HIGH)
rxjs-async-pipe- Use async pipe instead of manual subscriptionsrxjs-takeuntil- Use takeUntilDestroyed for automatic cleanuprxjs-share-replay- Share observables to avoid duplicate requestsrxjs-operators- Use efficient RxJS operatorsrxjs-mapping-operators- Use correct mapping operators (switchMap vs exhaustMap)rxjs-no-nested-subscribe- Avoid nested subscriptions
4. Template Performance (HIGH)
template-trackby- Use track function in @for loops (required in v20+)template-pure-pipes- Use pure pipes for expensive transformationstemplate-ng-optimized-image- Use NgOptimizedImage for image optimizationtemplate-no-function-calls- Avoid function calls in templatestemplate-virtual-scroll- Use virtual scrolling for large lists
5. Dependency Injection (MEDIUM-HIGH)
di-provided-in-root- Use providedIn: 'root' for singleton servicesdi-injection-token- Use InjectionToken for non-class dependenciesdi-factory-providers- Use factory providers for complex initializationdirective-host-composition- Use hostDirectives for composition
6. HTTP & Caching (MEDIUM)
http-resource- Use httpResource/resource for signal-based data fetchinghttp-interceptors- Use functional interceptors for cross-cutting concernshttp-transfer-state- Use TransferState for SSR hydrationrouting-signal-inputs- Use signal-based route inputs
7. Forms Optimization (MEDIUM)
forms-reactive- Use reactive forms with typed FormGroup
8. General Performance (LOW-MEDIUM)
ssr-hydration- Use incremental hydration with @defer (hydrate on ...)perf-memory-leaks- Prevent memory leaks (timers, listeners, subscriptions)perf-web-workers- Offload heavy computation to Web Workersarch-smart-dumb-components- Use Smart/Dumb component pattern
How to Use
Read individual rule files for detailed explanations and code examples:
rules/change-signals.md
rules/bundle-defer.md
rules/http-resource.md
Each rule file contains:
- Brief explanation of why it matters
- Incorrect code example with explanation
- Correct code example with explanation
- Additional context and references
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- develite98
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/develite98/angular-best-practices / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。