チーム開発時のヒント
チーム開発の際には以下の点に気をつけましょう。
一つのブランチでの作業は最小限にする
例えば、1つのブランチで、複数の機能を追加すると、レビューする際にレビュー箇所が多くなり、レビューの負担が大きくなります。
また、マージ時にコンフリクトが発生しやすくなり、解消も難しくなります。
1つのブランチでの作業は最小限にし、1つのブランチでの作業を明確にすることで、レビューの負担を減らし、コンフリクトの発生を減らすことができます。
マージする前に動作確認を行う
リーダーはマージリクエストをマージする前に、動作確認を行いましょう。
コードレビューだけを行って、動作確認せずにマージしてしまうと、動作しないコードがマージされてしまう可能性があります。
リーダーはコードレビューを行った上で、手元の環境で正しく動作することを確認してからマージするようにしましょう。
マイグレーションファイル以外からテーブルを操作しない
テーブルの作成や、カラムの追加、削除などの操作は、必ずマイグレーションファイルを使って行いましょう。
マイグレーションファイル以外からテーブルを操作すると、他の人にはどのような変更が行われたのかがわからなくなってしまいます。
シーダーファイルを活用する
また、初期データの追加についても Seeder ファイルを使って行うことで、DB上の環境を共通させることができます。
マイグレーションファイルとシーダーファイルを活用して、チーム内で統一した環境で開発できるようにしましょう。
こまめにプルする
チーム開発では、他の人が書いたコードを取り込むことが必要です。
誰かのマージリクエストがマージされたら、リーダーは速やかに共有し、他のメンバーはプルするようにしましょう。
プッシュする前に develop ブランチをプルして、マージする
自分が作業しているブランチに develop ブランチの変更を取り込むことが重要です。
プッシュする前に develop ブランチをプルして、マージすることで、他の人の変更を取り込むことができます。
プッシュしてマージリクエストを作成する前に、必ず develop ブランチをプルして、マージしてください。
もし、マージ時にコンフリクトが発生した場合は、コンフリクトを解消してからプッシュしてください。
コンフリクトの解消の際には、リーダーやコンフリクト発生箇所の担当者と相談して、どのように解消するかを相談の上作業しましょう。
コンフリクトを恐れない
コンフリクトは、チーム開発において避けて通れないものです。
コンフリクトは悪いことではなく、同一箇所について複数人が変更を加えた時に、
- どちらかの変更を採用する
- 両方の変更を採用する
- 調整のために何らかの変更を加える
などの対応をどれにするのか確認しているだけです。
例えば、同じ箇所に Aさんがバナー1、Bさんがバナー2を追加した場合、コンフリクトが発生しますが、
- バナー1だけを残す
- バナー2だけを残す
- バナー1とバナー2を両方残す
- バナー1とバナー2を統合して新しいバナーを作成したり、レイアウトを調整したりする
などのどれにするかを決めて、コンフリクトを解消する必要があります。これは、チーム開発において必ず発生する作業です。
- 同一箇所を複数人で作業することを減らす
- 作業する際に、他の人が作業している箇所を把握しておく
などで、コンフリクトの発生頻度を減らすことはできますが、完全になくすことはできません。
コンフリクトはエラーメッセージと同様、仲良く付き合っていきましょう。
注: コンフリクトを避けてマージを遅らせると、コンフリクトが大きくなる
慣れないうちはコンフリクトを恐れて、マージ作業を遅らせがちです。
マージ作業を遅らせ、一度のマージ量が多くなるほど、大きなコンフリクトが発生しやすくなります。
コンフリクトは小さいほど解決しやすいので、こまめにマージして、コンフリクトが小さいうちに解消するように心がけましょう。