メインコンテンツへスキップ

開発ワークフロー

Gitの慣習

変更履歴を自動的に生成するコンベンショナルコミット(feat:、fix:、chore:)を使用します。ブランチはチケットにちなんで命名されます:feat/ZENO-123-add-heatmaps。

コミットメッセージは命令形(「ヒートマップを追加する」ではなく「ヒートマップを追加しました」ではなく)で、何をしたかではなく、なぜしたかを説明すべきです。差分は何が変わったかを示します—メッセージは理由を説明すべきです。

プルリクエスト

すべての変更はコードレビューを経ます。PRは小さく、集中していて、レビュアーへのコンテキストを含むべきです。営業時間中は4時間以内のレビューを目指します。

PRの要件:

  • すべてのテストが合格
  • 型チェックの成功
  • 少なくとも1つの承認
  • 未解決のコメントなし

良いPRの説明には:何が変わったか、なぜ変わったか、テスト方法、リスクや後続作業が含まれます。

CI/CDパイプライン

すべてのプッシュでCIパイプラインがトリガーされます:リント、型チェック、テスト、ビルド。mainへのマージで自動的にステージングにデプロイされます。本番デプロイには明示的な承認が必要です。

パイプラインは5分未満で実行されます。それ以上かかる場合は修正すべきバグとして扱います。速いフィードバックループがデベロッパーの生産性を維持します。

環境管理

3つの環境を維持しています:

  • 開発: WorkersにはWrangler、Supabaseにはローカルインスタンスを使ったローカルマシン。
  • ステージング: ステージングサブドメインの本番ライク環境。最終的なQAとデモに使用。
  • 本番: 本物です。ステージングの確認と明示的な承認後にデプロイ。

データベースマイグレーション

スキーマ変更はSupabaseのマイグレーションを経ます。すべてのマイグレーションは対応するダウンマイグレーションで元に戻せる必要があります。本番に適用する前に、本番ライクなデータでステージングのマイグレーションをテストします。

リリースプロセス

継続的にリリースします。機能はフィーチャーフラグで保護されながら、準備ができ次第公開されます。主要な変更は明確な移行ガイドとともに変更履歴で発表されます。

フィーチャーフラグにより、ユーザーに対して有効にせずにコードをデプロイできます。これにより、より安全なリリース、段階的なロールアウト、問題が発生した場合の簡単なロールバックが可能になります。