この記事ではSPA(Single Page Application)を開発する際の開発フローをまとめています。以下の技術、サービスを採用しています。
- Slack
- GitHub
- Angular
- Firebase
- Visual Studio Code
この記事は随時更新されます。
GitHubのIssue、マイルストーン、リリース機能を軸に開発を進めます。ポイントとしては、タスク管理ツールやSlackに依存せず、コミュニケーションと品質管理、タスク管理をGitHubで一元管理することです。これにより開発メンバーはスイッチングコストが軽減され、開発に集中できます。また、途中で開発メンバーの入れ替わりがあってもIssueを見れば直ちに開発に入れる状況が整います。
- Slackのチャンネル概要にGitHubリポジトリや資料へのリンクを記載
- Slackチャンネルに通知を流す
Slackはログが流れやすいため、基本的には通知ツールとして作動させ、基本的なコミュニケーションはIssueの作成、コメントで行います。これにより、後から来たメンバーが情報を追いやすくなる。
- GitHubでマイルストーンを作成する(β、リリース)
- GitHubでIssueを作成する(ラベルや担当者、マイルストーンの設計を行う)
- PullRequest Templateを追加する
- masterブランチをプロテクト(CI連動、レビュー必須)
- CircleCI(将来的にはGitHub Actions)を接続
PULL_REQUEST_TEMPLATE とCIによる自動テストによりPRの質を高める。また、GitHub Issueによるタスク管理で情報流通を一限管理する。GitHubのショートカットを覚えることで効率化する。
ng set --global packageManager=yarn # yarnを使う場合
ng new <PROJECT_NAME> --routing --style=scss
Angular CLIコマンドで環境構築を行う。routing,styleのオプションは推奨。
firebase init
firebase use --add # 公開用プロジェクトを追加する場合
- Single Page Application の質問で
y
とする
本格的なサービス開発においては、開発用と公開用でFirebaseプロジェクトを分ける。その上で、ローカルからdeploy対象を選択できるよう、 firebase use --add
で公開用プロジェクトを追加しておく。
- GitHub Flowで開発を行う
- 適宜Releaseタグを切る(CHANGELOG.md をメンテナンスする)
Gitflow は冗長なのでGitHub Flowを採用する。その分、PullRequestのハードルを高くし、品質管理を徹底する。