Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
非同期処理のバックエンドとフロントエンドを実装する際のベストプラクティスをまとめたスキルです。非同期処理が必要なWebサービスのフロントエンドおよびバックエンドを実装する際に利用されます。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Webアプリケーションにおける非同期処理を実現するための実装ガイドです。
次の場合にこのガイドラインを参照してください。
HTTPレスポンを返す際に処理が完了している必要がないものについては非同期処理で実現することを検討します。主に以下の観点で非同期処理の採用を考えます。
以下の要素から実現手法を選択します
主に以下のパターンによって構築します。
| 観点 | Rails (Solid Queue) | Rails (Sidekiq) | BullMQ | AWS Serverless | GCP Serverless |
|---|---|---|---|---|---|
| 追加インフラ | なし | Redis | Redis | SQS, DynamoDB等 | Cloud Tasks, Firestore |
| スケーラビリティ | 中 | 高 | 高 | 非常に高 | 非常に高 |
| 運用負荷 | 低 | 中 | 中 | 低 | 低 |
| コスト(低負荷時) | 低 | 中 | 中 | 非常に低 | 非常に低 |
| リアルタイム通知 | ActionCable | ActionCable | 独自実装 | AppSync Events | Firestore |
| 最大処理時間 | 無制限 | 無制限 | 無制限 | 15分(Lambda) | 60分(Cloud Run) |
| 適したユースケース | 小〜中規模Rails | 中〜大規模Rails | Node.js全般 | AWS中心のサーバーレス | GCP中心のサーバーレス |
バックエンド実装時には、以下の観点について各実現手法ごとのベストプラクティスを参照してください。
パラメータの受け取り方
エラー発生時の処理と通知
進捗の状態管理
その他
| 実現手法 | リファレンス |
|---|---|
| Ruby on Rails (ActiveJob) | @references/05_backend_rails.md |
| TypeScript BullMQ | @references/06_backend_bullmq.md |
| AWS Serverless (Lambda + SQS) | @references/07_backend_aws.md |
| GCP Serverless (Cloud Run + Cloud Tasks) | @references/08_backend_gcp.md |
フロントエンド実装時には、以下の観点について各フレームワークごとのベストプラクティスを参照してください。
非同期処理の呼び出し方
状態管理と表示
接続復帰処理
エラーハンドリング
| フレームワーク | リファレンス |
|---|---|
| Rails Hotwire (Turbo + Stimulus + ActionCable) | @references/09_frontend_hotwire.md |
| Next.js (React / App Router) | @references/10_frontend_nextjs.md |
| Vue.js 3 (Composition API) | @references/11_frontend_vuejs.md |
| React (Webpacker/Shakapacker) | @references/12_frontend_react.md |
本番環境にデプロイする際の設定やベストプラクティスは以下を参照してください。
Redis不要でActionCableを使用したい場合は、Solid Cableを利用できます。
問題が発生した場合は以下を参照してください。
ステージング環境と本番環境で同じデータベースを共有している場合、以下の設定が必要です。
# config/solid_queue.yml
staging:
workers:
- queues:
- <%= ENV.fetch('QUEUE_PREFIX', 'staging') %>_default
production:
workers:
- queues:
- <%= ENV.fetch('QUEUE_PREFIX', 'production') %>_default
# app/jobs/application_job.rb
class ApplicationJob < ActiveJob::Base
queue_as do
prefix = ENV.fetch('QUEUE_PREFIX', Rails.env)
"#{prefix}_default"
end
end
# config/cable.yml
staging:
adapter: solid_cable
channel_prefix: <%= ENV.fetch('CABLE_PREFIX', 'staging') %>
production:
adapter: solid_cable
channel_prefix: <%= ENV.fetch('CABLE_PREFIX', 'production') %>
詳細は @references/13_deployment.md の「環境分離設定」を参照してください。
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Androidプロジェクトのアーキテクチャ設計を支援。プロジェクト特性に応じてMVI/MVVM/シンプルComposeから最適なパターンを提案し、パッケージ構造の設計と既存プロジェクトの分析を行う。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Firebase Crashlyticsのスタックトレースを解析し、トリアージ分類→根本原因分析→修正提案を出力するスキル。/crash-analyze コマンド、クラッシュ解析、スタックトレース分析、ANR分析、Crashlytics、クラッシュレポート、またはFirebase crashに関連するリクエストで使用される。クラッシュ対応のワークフローを標準化し、対応品質と速度を向上させる。ANR/Non-fatal/Fatal全タイプ対応。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Android data layer implementation guide. Provides comprehensive patterns for Room Database (Entity, DAO, Migration), DataStore (Preferences), Repository layer design, and common pitfalls. Use when implementing local data storage, cache strategies, or data source integration in Android projects.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
重要: ユーザーがAndroidテスト実行をリクエストした場合、常にこのスキルを最初に使用してください。以下の場合に必ず使用: run TestName, execute test, テストを実行, 結果を分析, run all tests, analyze test failures, fix failing tests、または Android unit test, instrumentation test, Gradle test コマンドに関連する任意のリクエスト。./gradlew test や Bash コマンドを直接使用しないでください - 常にこのスキルに委譲してください。Multi-variantプロジェクト、JAVA_HOME セットアップ、一般的なテストパターンに対応しています。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Jetpack ComposeでUIを実装する時に参照するコーディングガイドライン。 「Android UI」「Compose」「Jetpack」「画面実装」「UIコンポーネント」「レイアウト」と言われたら使う。 Android/Kotlin UI実装のベストプラクティス、アンチパターン、実装パターンを提供する。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.