デベロッパー
プロジェクトに適合する最小限の整合性のある変更で、要求された動作を提供します。
理解
編集を行う前に、期待される動作と影響を受けるコールパスを確立します。バグの場合は、実用的であれば修正前に障害を再現します。
該当するブランチがある場合は参照ファイルを読んでください:
- 独立した実装作業ストリームを持つ大規模タスク:サブエージェントが利用可能な場合はデリゲーションに従ってください。小さなタスクや密結合なタスクはメインエージェントに任せてください。
- テストの作成または変更:テストを最初に読んでください。ユーザーがテスト駆動開発を要求した場合は、そのテストファーストワークフローに従ってください。
- 原因不明、修正失敗、断続的なバグ、またはパフォーマンス低下:デバッグに従い、仮説を立てる前にフィードバックループを確立してください。
- ユーザーインターフェース(ページ、画面、マークアップ、スタイル、インターフェースコピー、フォーカスまたは入力ハンドリング)の構築または変更:記述する前にフロントエンドとUIを読み、次にそれがリンクするブランチファイルを読んでください。
- API、永続化、マイグレーション、イベント、分散ワークフロー、バックグラウンド処理、統合、またはランタイムの変更:サービスとデータを参照してください。
実装
- ガード節を使用してください:各終了ケースを早期リターンまたはスローで最初に処理し、メインパスをインデントなしで記述します。メインパスが単一のステートメントであってもこれを適用することで、すべての関数が同じように読めるようになります:それを停止する条件が先頭に、作業がその下に配置されます。結果を選ぶ三項演算子や
elseは置き換えるべき形状です。 - 単一使用の式は呼び出し箇所にインラインで記述してください。名前付き関数は、再利用される場合、インラインで読むには長すぎるロジックをラップする場合、または単独でテストされる場合にのみ抽出してください。なぜなら、一行のラッパーは式がすでに伝えていることを読者に別の場所で学ばせることになるからです。既存の共有動作、実際の境界、または実証されたテストの必要性に対してのみ抽象化を追加してください。
- 値を、それが満たすパラメータやプロパティにちなんで命名し、その名前がまだそれを説明している場合は、短縮形で渡してください:
const projectsBase = …からbase: projectsBaseではなく、const base = …から{ base }のようにします。修飾子は、同じスコープ内の2つの値を区別するなど、周囲のコードがまだ提供していない情報に対してのみ追加してください。なぜなら、エイリアスは読者に2つの名前を1つのものにマッピングさせるからです。 - これらのスタイルルールは、あなたが記述する行を統治します。変更によって間違ったものにならない限り、周囲のコードとその既存のコメントはそのままにしておいてください。なぜなら、手付かずのコードをリスタイルすると、変更が差分に埋もれてしまうからです。
- 信頼できない入力はその境界で検証し、それ以降は信頼してください。エラーが発生し得る場所と、呼び出し元が対応できる場所でのみエラーを処理し、エラーコンテキストとクリーンアップを保持してください。
- 変更に新しい依存関係が必要な場合、レジストリ(名前、公開者、経過期間、インストールスクリプト)で正確なパッケージを確認し、ロックファイルを通じて固定してください。エージェントは幻覚やタイポスクワッティングされたパッケージ名を生成しやすいためです。
- 影響を受けるコントラクト、設定例、ドキュメントを更新してください。
検証とデリバリー
プロジェクトの該当するチェック(フォーマット、リント、型、テスト、ビルド)を実行してください。終了する前に、変更されたすべての行がリクエストまたは明示されたスコープ拡張に遡ってトレース可能であることを確認してください。明示的な受け入れ基準がある場合は、それぞれを、それを満たしていることを示す検証にマッピングしてください。一般的なチェックが通っただけでは受け入れを確立しません。動作が検証された時点で終了するか、検証されていないままのものとその理由を正確に述べてください。
結果の動作、リクエストがあいまいだった場合に選択した解釈、スコープ拡張とその理由、実行したチェック、および重大な制限事項を報告してください。