faasjs-best-practices について
faasjs-best-practicesはFaasJSプロジェクト向けの開発スキルです。タスクに合ったガイドの選択と変更範囲の抑制を支援し、コード、安全性、テスト、検証の手順を扱います。
主な機能
- 01タスクに応じたFaasJSスキルの読み込み
- 02変更範囲の管理とコーディング規約
- 03入力検証、権限確認、シークレット保護
- 04フォーマット、テスト、型生成
活用シーン
- 01FaasJS機能の実装計画
- 02API、ジョブ、データベース変更の確認
- 03引き渡し前のプロジェクト検査とテスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ faasjs/ faasjs --skill faasjs-best-practicesインストール後、Claude Code で/faasjs-best-practicesを入力して読み込まれたか確認します。
詳細
FaasJS のベストプラクティス
デフォルトのワークフロー
- タスクの領域を特定し、その領域を担当する最も範囲の狭い FaasJS スキルを読み込みます。
- インポートやパスを選ぶ前に、リポジトリ内の指示と関連する
tsconfig.jsonファイルを確認します。 - 変更は最小限にとどめ、タスクの範囲内に限定します。設定変更を伴わない無関係なリファクタリング、推測に基づくフォールバック、新しいエイリアスは避けます。
- 外部入力は境界で検証し、データにアクセスする前に認証・テナント・権限のスコープを確認し、秘密情報は決してログに記録しません。
- 引き継ぐ前に、可能であれば
vp check --fix && vp testを実行します。実行できない場合は、その理由を記録し、役立つ範囲で最小限の検証を行います。
これらのリファレンスを読み込む
- 新規プロジェクト、機能の構成、設定、CLI、コメント、命名、共通テスト:
faasjs-project-workflowを使用します。 - React UI、
@faasjs/ant-design、useFaas、フォーム、テーブル、ドロワー、CRUD 画面、React テスト:faasjs-react-ant-designを使用します。 .api.ts、defineApi、HTTP プラグインヘルパー、ミドルウェア、.job.ts、defineJob:faasjs-api-jobsを使用します。@faasjs/pg、QueryBuilder、テーブル宣言、マイグレーション、PostgreSQL テスト:faasjs-pgを使用します。- 同じトランザクション内でジョブをキューに追加するビジネス書き込み:
faasjs-pgとfaasjs-api-jobsの両方を読み込みます。 - プラグインのライフサイクル、注入されるフィールド、ロガーの使用、Node のブートストラップ、実行時設定の読み込み:
faasjs-plugins-runtimeを使用します。 @faasjs/utils、JSON、YAML、ストリームヘルパー、検証ヘルパー:faasjs-utils-dataを使用します。faas.yaml、ルーティング、HTTP プロトコル、プラグインのコントラクトに関する規範的な実行時の動作:faasjs-specsを使用します。
注意点
- Zod は外部入力のコントラクトに使用します。内部の
typeof、instanceof、null チェックは制御フロー述語として維持します。 - ローカルの TypeScript インポートでは拡張子を省略し、深い相対インポートより設定済みのエイリアスを優先します。
- React フックの戻り値と、トップレベルの
defineApi/defineJobのハンドラーコンテキストのみを分割代入します。ビジネス上の値はparams.keyとして見える状態に保ちます。 - 中間変数が複雑な条件を説明する場合、再利用される場合、または可読性を高める場合を除き、値は直接返します。
- 生成されるジョブのパスを実行時の検出方法と一致させ、トランザクションのスコープ内で使用するクライアントをコールバックの外に持ち出さないでください。
検証
- フォーマットとリントには
vp check --fixを使用します。 - テストには
vp testまたはvp test <pattern>を使用します。 .api.tsまたは.job.tsファイルを追加、名前変更、移動、削除した後は、npx faas typesを実行します。- データベースの変更で必要となり、
DATABASE_URLが利用可能な場合に限り、npx faasjs-pg migrateまたは対象を絞った PG チェックを実行します。
コメント
Markdown 対応