今回はチームで集まってアプリケーションを作るよ!
誰がどの機能を担当するか相談して作業を進めよう!
作業内容
pikawaka_classのチーム名ディレクトリ配下にあるfizzbuzz.rb
で1人ずつ作業を行い、pull requestを作成してチームのメンバーにレビューをしてもらいます。レビューが完了したらmergeを実行します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
├── pikawaka_class
│ ├── admin # teamディレクトリ名
│ │ ├── sample # ハンズオンの作業ディレクトリ名
│ │ │ ├── miyajimasan.rb # メンバーごとの個人作業のファイル
│ │ │ ├── tanifujisan.rb
│ │ │ ├── team-member-introduction.rb # チーム作業のファイル
│ │ │ ├── fizzbuzz.rb # fizzbuzzアプリを作成するファイル
│ ├── hip_hopper
│ │ ├── sample
│ │ │ ├── chishakisan.rb
│ │ │ ├── kosemurasan.rb
│ │ │ ├── mitsuhashisan.rb
│ │ │ ├── murakamisan.rb
│ │ │ ├── team-member-introduction.rb
│ │ │ ├── fizzbuzz.rb # fizzbuzzアプリを作成するファイル
│ ├── q_and_a
│ │ ├── sample
│ │ │ ├── kobayashisan.rb
│ │ │ ├── onitsukasan.rb
│ │ │ ├── ooharasan.rb
│ │ │ ├── yumurasan.rb
│ │ │ ├── team-member-introduction.rb
│ │ │ ├── fizzbuzz.rb # fizzbuzzアプリを作成するファイル
│ ├── sapphire
│ │ ├── sample
│ │ │ ├── shigenosan.rb
│ │ │ ├── sugadasan.rb
│ │ │ ├── tamurasan.rb
│ │ │ ├── yamaguchisan.rb
│ │ │ ├── yasuosan.rb
│ │ │ ├── team-member-introduction.rb
│ │ │ ├── fizzbuzz.rb # fizzbuzzアプリを作成するファイル
仕様を確認しよう
FizzBuzz
とは「1 ~ 100」までの数字を画面に表示し、以下の表に当てはまる場合のみ文字列を表示させるアプリケーションです。
3の倍数 | 5の倍数 | 15の倍数 |
---|---|---|
fizz | buzz | fizzbuzz |
実行結果は、以下のようになります。
役割分担しよう
FizzBuzzアプリの機能は、以下の4つに分かれます。
- 1 ~ 100までの表示(ブランチ名:
team名_number
) - 3の倍数は「fizz」と表示(ブランチ名:
team名_fizz
) - 5の倍数は「buzz」と表示(ブランチ名:
team名_buzz
) - 15の倍数は「fizzbuzz」と表示(ブランチ名:
team名_fizzbuzz
)
チームで話し合って四つの機能の役割分担をしましょう!
(チームメンバーが3人の場合は、1名のみ二つの機能を担当して下さい。)
機能は①から順番に作成し、④まで作成するとFizzBuzzアプリケーションは完成になります。
各機能の実行結果をしよう
1 ~ 100までの表示(ブランチ名: team名_number
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ ruby fizzbuzz.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
省略...
3の倍数は「fizz」と表示(ブランチ名: team名_fizz
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ ruby fizzbuzz.rb
1
2
fizz
4
5
fizz
7
8
fizz
10
11
fizz
13
14
fizz
省略...
5の倍数は「buzz」と表示(ブランチ名: team名_buzz
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ ruby fizzbuzz.rb
1
2
fizz
4
buzz
fizz
7
8
fizz
buzz
11
fizz
13
14
fizz
省略...
15の倍数は「fizzbuzz」と表示(ブランチ名: team名_fizzbuzz
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ ruby fizzbuzz.rb
1
2
fizz
4
buzz
fizz
7
8
fizz
buzz
11
fizz
13
14
fizzbuzz
省略...
各機能の実行結果は確認できたね!それでは、手順を確認しよう!
手順の確認
- 作業用のブランチを作成する
- fizzbuzz.rbに担当機能を作成する
- 動作確認をする
- addを実行してインデックスに登録する
- commitを実行してローカルリポジトリに記録する
- pushを実行してリモートリポジトリにアップロードする
- GitHubでpull requestを作成する
- チームのメンバーからLGTMをもらおう
- GitHub上でmergeをしよう
- 次の担当者に交代・pullで最新の変更履歴を取り込む
それでは、作業用のブランチから作成していきましょう。1人ずつ作業を行ってください。他の人が作業している時は、アドバイスをして助け合いながらチームで進めてみてください!
1.作業用のブランチを作成する
カレントディレクトリをpikawaka_class
にして、以下のようにgit checkout
コマンドを実行してください。
1
git checkout -b 担当機能ブランチ名
1
git checkout -b admin_buzz
これでmasterブランチから新しく作業用のブランチを作成することができました。
2.fizzbuzz.rbに担当機能を作成する
次に 担当機能を fizzbuzz.rb
に記述して下さい。
3.動作確認をする
担当機能を作成できれば、ruby fizzbuzz.rb
を実行し動作確認をしましょう。動作確認については、こちらの実行結果から確認して下さい。
4.addでインデックスに登録する
動作確認が完了すれば、変更ファイルをインデックスに登録しましょう。
git add
コマンドで変更したファイルをインデックスに登録します。今回は fizzbuzz.rb
を変更したので、fizzbuzz.rb
をインデックスに登録しましょう。
1
git add fizzbuzz.rb
5.commitを実行してローカルリポジトリに記録する
インデックスに登録された内容をローカルリポジトリに記録するには、git commit
コマンドを使用します。
オプションの-m
で、コミット内容のメッセージを入れます。これによって、このコミットが何を変更したものなのか分かりやすくなります。
1
git commit -m 'コミット内容'
1
git commit -m 'admin_fizz create'
git commit
を実行して、ローカルリポジトリに記録させよう1
git commit -m '担当機能名'
6.pushを実行してリモートリポジトリにアップロードする
ローカルリポジトリに記録された変更履歴をリモートリポジトリに反映させる為にgit push
コマンドを使います。
1
git push origin admin_fizz
git push
を実行して、リモートリポジトリにアップロードしよう1
git push origin 担当機能ブランチ名
上記のコマンドを実行すると、以下のようにリモートリポジトリとして使用するGitHub上にローカルで作業していたブランチが作成されます。
それでは、ローカルの作業ブランチがGitHubで作成されたかを確認するためにpikawaka_classのGitHubページに飛んで下さい。
7.GitHubでpull requestを作成する
Pull Requestは、GitHubが提供する機能です。ローカルリポジトリのソースコードの変更・更新をわかりやすく表示し、他の開発者に通知します。
自身が開発した追加機能や改修などを他の開発者に確認してもらうことで、バグが起こりにくい開発プロセスになります。このような目的で、ソースコードを検査・修正する事を「コードレビュー」と言います。
compare & pull request
をクリックしてみましょう。すると、以下のようにpull requestの作成画面が表示されます。何も変更せずにcompare pull request
ボタンをクリックしましょう。
実行すると、以下のようにpull requestが作成されます。
ページの右上にあるFile Changed
をクリックしてください。
今回変更した差分が表示されます。
今回作成した機能の変更が表示されます。
8.チームのメンバーからLGTMをもらおう
作業者以外の担当者は、Review changes
を押してLGTMとコメントしましょう。コメントしたら、Comment
からApprove
に変更し、Submit review
をクリックしましょう。
9.GitHub上でmergeをしよう
担当者は、チームメンバー全てのLGTMのコメントを確認できたら、「Merge pull request」をクリックして下さい。
続けてconfirm merge
をクリックすると、masterブランチにmergeされます。
ここからは、次の担当者の方に交代して作業を行ってください!
10.次の担当者に交代・pullで最新の変更履歴を取り込む
次の担当者はターミナルでカレントディレクトリをpikawaka_class
にして、以下のコマンドを実行してください。
1
git checkout master
1
git pull origin master
最初の手順「1.作業用のブランチを作成する」に戻り、順番に進めてください。
この記事で学んだことをTwitterに投稿して、アウトプットしよう!
Twitterの投稿画面に遷移します