【Rails】プログラミング初心者の勉強ブログ #89
DIC最後の授業です。今回は「チーム開発」の流れをグループワークで学習しました。GitHubでブランチを切り共同開発を行う流れを学びます。個人開発では使わない「git checkout」や「git pull」などのコマンド含め、GitHubフローなるものを体験しました。
目次
[toc]
前回までの授業内容
第8回授業レポート
[blogcard url=”https://whatsupguys.net/programming-school-dive-into-code-learning-79/”]
第8回授業レポート。アセットパイプラインの確認。Bootstrapをオリジナルアプリに適用させる中でRailsのアセットパイプラインを復習しました。
第7回授業レポート
[blogcard url=”https://whatsupguys.net/programming-school-dive-into-code-learning-72/”]
第7回授業レポート。Webアプリケーションの処理の流れの復習とともに、デバックすべき6つの視点について学習しました。
第6回授業レポート
[blogcard url=”https://whatsupguys.net/programming-school-dive-into-code-learning-66/”]
第6回授業レポート。Webアプリケーションの処理の流れについての学習です。Railsフレームワークで開発に入る前に必ず知っておくべきアプリの流れの概要です。
第5回授業レポート
[blogcard url=”https://whatsupguys.net/programming-school-dive-into-code-learning-60/”]
第5回授業レポート。アイデア創出の手順について。オリジナルWebアプリ作成のために必要な要件定義の方法を学習しました。
第4回授業レポート
[blogcard url=”https://whatsupguys.net/programming-school-dive-into-code-learning-53/”]
第4回授業レポート。オブジェクト指向についての講義です。カプセル化・継承・ポリモーフィズムについて学習しました。
第3回授業レポート
[blogcard url=”https://whatsupguys.net/programming-school-dive-into-code-learning-45/”]
第3回授業レポート。Rubyで二分探索法アルゴリズムを考えた回です。コーディングからフローチャートを作成し、グループワークで理解を深めました。
第2回授業レポート
[blogcard url=”https://whatsupguys.net/programming-school-dive-into-code-learning-33/”]
第2回の授業レポート。事前課題で提出したJavaScriptでコーディングした「成績判定プログラム」のフローチャート作成が抗議内容のメインです。
課題で作成した成績判定アルゴリズムを噛み砕き、個人ワークでフローチャートを作成した後、グループワークで共有・発表といった流れです。
第1回授業レポート
[blogcard url=”https://whatsupguys.net/programing-school-dive-into-code-learning21/”]
初回授業レポート。こちらも事前課題に沿ってHTML/CSSのアウトプット。
プログラミングスクール「DIVE INTO CODE」の授業の雰囲気なども書いてます。
10回目授業はチーム開発について
個人で開発を行うにあたってGitHubはもちろん利用しますが、本来のGitHubの「共同開発」の面における利用は、今まで行ったことはありませんでした。今回は触りだけですが「チーム開発」を体験し、GitHubの本来の使い方を学びました。
今回の参加人数は7人。最終日にしてかなり少なくなりました。最初にGitHubの説明があった後、すぐグループワークへ。
ブログ機能・ユーザー機能・ログイン機能を持ったブログアプリを共同開発し、GitHubへpushしていくといった流れです。機能はこれだけですが、共同開発となるとなかなか勝手が異なり、慣れるまでスムーズにはできないなと感じました。
GitHubフローでの開発の流れ
GitHubでの共同開発の流れは上のようなイメージで構成されており、基本的に「master」ブランチは直接手を加えることはなく、毎回開発者それぞれの開発環境でブランチを切り、そのブランチ内で作業を行います。
開発するアプリのGitHubリポジトリにメンバーを招待し、GitHub上でタスク管理やメッセージのやりとりが行えます。タスクのリクエストやブランチをpullしたとき、またはプルリクエスト時などGitHub上でやりとりを一括して行うことができ、更新や通知についてGitHubがメールを自動で送ってくれます。共同作業ではリーダーが存在し、リーダーは各開発者にタスクを振り分けます。pullされた内容をリーダーがコードチェックを行い、masterへmargeするかどうかを判断します。
共同開発関係gitコマンドまとめ
git clone
「git clone git@github.com:〜」のようにgit cloneに続けてGitHubのリポジトリのURLを後ろにくっつけることで、そのリポジトリを丸々コピーしてインストールできます。git clone後は「bundle install」でGem類を自分の開発環境でインストールしなければならないことも初めて知りました。(必ず必要なのかはわからない。)
git branch ブランチ名
自分の開発環境でブランチを作成するコマンドです。後ろにつけた名前でブランチが作成されます。名前は実装する機能に合わせて命名することが一般的だそうです。git cloneしてきたディレクトリでこのコマンドを打ち込んでいきます。
git branch
後ろにブランチ名をつけない場合、現在のブランチを確認するコマンドになります。cloneした後ブランチを作らず「git branch」を入力すると「master」と出てくるかと思います。
git checkout ブランチ名
指定したブランチ名へ移動するコマンドです。「git checkout master」の場合は「master」ブランチへ移動します。
git push origin ブランチ名
指定したブランチでpushするコマンド。
まとめ
そもそも個人開発しかしてなかったので、GitHubはデプロイするときだけしか使っていませんでした。デプロイしたコードを共有するような場所でしかなかったのですが、本来GitHubはチーム開発をやりやすくする場であったんだなと。git pushは一気にまとめてではなく、一箇所変更した都度実行するべきであるとか基本的なことすらままならなかったので、それだけでも知れてよかったです。
以上ありがとうございました。