チーム開発でのGitHubの使い方を習いました

DIVE INTO CODEにて、チーム開発でのGitHubの使い方を習いました。
同期の仲間とチームを組み、おっかなびっくり開発体験しました。

今まで利用してきた他のバージョン管理システムとの違い

今までの業務上では、複数人で運用開発するプログラム(Perl/PHP)の管理をするために、私はバージョン管理システムとしてSubversion(TortoiseSVN)を使用した経験がありました。

社員時代:Subversion & TortoiseSVN

TortoiseSVNを利用して作業する利点としては
・誰がどのファイルを「今」いじっているかわかる
・誰がいつ何をしたかというのを、いちいちプログラム内にコメントアウトして残さなくてもSubversion履歴として残る
という二つの点だったと思います。

フリーランス期:Bitbucket & SourceTree

TortoiseSVNはWindows用のクライアントのため、フリーランスになり、Macに完全移行してからというものの、一人で作業するとはいえ作業履歴は残しておきたいので、「どうやって履歴管理しようかな」と悩み、たどり着いたのが「Bitbucket」と「SourceTree」の組み合わせでした。
どちらも無料で、TortoiseSVN的なバージョン管理を行うことができます。
ファイルを変更したら、どんな変更したかをメッセージとして添えてコミットして履歴として残す、一本直線的なバージョン管理ですね。

DIVE INTO CODEでの開発:GitHub

さて、DIVE INTO CODEのカリキュラムDIVERでは、初期からGitHubを利用してバージョン管理する方法を教えてくれます。

このやり方は、概ね、今まで行ってきた一本直線的なバージョン管理と同じでした。
ただ、それよりももっと細かくコミットして履歴を残すという点が違いました(この辺りはチーム・会社のポリシーによるので、私の今までの環境が緩めだったのかもしれませんが…)。
今までは、一通り作業を終えて小さな機能が完成したらその都度コミットするという形を取っていたのですが、DIVE INTO CODEでは、もっと細かく、「何かgemをインストールしたらその後にコミット」「デザインを一部でも変更したらコミット」という形が推奨されていました。

commitメッセージをどう書くか考えるのが、意外と難しかったです。
コミットする周期が短いほど、自分が今の作業で何をしたか、今の作業でどういう影響をプログラムに起こすのかを把握していないと、commitメッセージを書けないんです。
「なんとなくこう書いたら動くと思ったから」とか書けません(笑)
コミットする周期が長ければ「画像アップロード機能を実装」「ヘッダーデザイン改修」など、ゆるっと書けてしまいます。

いよいよチーム開発

いよいよチーム開発の第一歩として、授業中にその場にいる複数人でチームを組んで、一つのGitHubリポジトリに上でみんなでコミットしながら開発してみる、という内容に入りました。
授業専用のリポジトリで模擬的に「イシュー」「ブランチ」「プル」といった機能を試していくことができるので、実地でいきなり「やろう」と言われるよりも少しは気が楽です。

今までGitHubで複数人で開発をしたことがなく(あったとしても、HTMLコーディングの管理だけだったので、一方通行でした)、GitHubの使い方について勘違いしていた部分がたくさんあり、本当に心から「授業で経験できてよかったー!!」と思いました。
授業がなければ、いきなり勘違いを振りまいて、他の人に迷惑をかけたり、ヒンシュクをかっていたかもしれません…(笑)

一人で作業をしていた時に「細かくコミットして履歴を残す」ということを覚えましたが、これはチーム開発をする上で、「誰がどの機能を作るか」という割り振りや、それぞれが開発している内容を把握する上で、大事なポイントになるというのも分かりました。

授業では、その場で横にいるメンバーとプログラムをいじる形になり、「私の環境では動くものが、隣の人の環境では動いていない」「なんか違う気がする」という漠然としたトラブルも目の当たりにしました。
みんなでギャーギャー言いながら進めていくのも、授業だから楽しいと思えましたが、実際に仕事として開発していきなりそんな状況に遭遇したら、きっと真っ青になっていたと思います…。
そして、もう少しで授業も終わり、同期のみんなともお別れかと思うと少し寂しいです。

Ruby on Railsでのプログラミングそのものには、とても慣れてきました!
もうコードを見ても違和感はありません。
むしろPHPプログラムをいじる時も「Rails的にサクッといかないかな」と思うようになってきました(笑)

この記事にコメントする

メールアドレスは公開されません。コメントは管理者による承認後に公開されます。

関連記事

DIVE INTO CODE関連記事のまとめ

Ruby on Railsスクール、DIVE INTO CODEの6ヶ月にわたる即戦力コースを修了して約3ヶ月が経ちました。
ここで一度記事をまとめます。
続きを読む

特に複数のRailsアプリケーションをmacの開発環境で並行して作成している場合。
Railsサーバを起動する際、いちいちターミナルを開いて指定ディレクトリにcdしてrails sするのが面倒だったので、ダブルクリックするだけでRailsサーバを起動できるショートカット(と言いつつシェルスクリプト)を作成してみました。
続きを読む

Siwapp local ScreenShot

請求書管理システムSiwappをMacにインストールする方法をご紹介します。
この記事は、ローカル環境でSiwappを動かしたいRails開発者、もしくは取り組む意欲のある方を対象としています。
続きを読む

請求書管理システムSiwappのRuby on Rails版のUIを日本語に対応させました。ソースコードはGitHubで公開されており、MITライセンスです。
Siwappは定期的な請求書の自動生成、そしてそれをPDFとして添付したメールの送信までできる素敵なシステムです。
入金履歴の管理機能もついています。
Herokuサーバを利用すれば無償で動かせます。
続きを読む