
エンジニアがコードを共有するために使われるGitHub。私自身も、実際に使うまでは、使い方がよくわからなかったサービスの1つですが、いざ使ってみると、その有用性の高さに驚きます。
GitHubは、誰かにコードを共有するために使われるのみならず、自分自身のコードの保存、いわゆる「セーブデータ」を作成する役割も持ちます。これにより、開発に行き詰まった時に、一旦最後に保存した点まで戻る、ということが可能になります。
今回は、GitHubを使用することの有用性について述べていきたいと思います。
GitHubとは
そもそもGitHubとはどんなサービスなのかを少し整理してみることにします。
GitHubは、「Git」と呼ばれるソフトウェアのバージョン管理システムに、よりチーム開発に適した機能を兼ね備えた、いわばGitの進化系のようなものです。
Git自体は、PCに様々なコマンドを打ち込むことでバージョン管理を可能にするものですが、それを視覚的にわかりやすくしたものが、GitHubといえます。
GitHubの持つ機能
GitHubには、例えば以下のようなチーム開発を助けるための様々な機能が備わっています。
- issues
- Pull Request
Issues
issuesは、主にプロジェクトのバグを管理する時などに使われます。問題が起きた時に、issuesに内容を投稿することで、現在、自分の開発環境にどんな問題が起きているのかをチーム開発メンバーが知ることができます。
issuesにはフィードバック機能があり、絵文字レスポンスやコメントなどが可能です。
Pull Request
Pull Requestは、一単位分の開発が一通り終わった時に使用する機能で、コードをアップすることで、チーム開発メンバーからレビューをもらうことができます。
実際にアップされたコードを引用して指摘することが可能なので、フィードバックを受けた側も、どこを訂正すべきかなどを探しやすくなっています。
この他にも、GitHubには、チーム開発を助けるための機能が沢山あります。
GitHubの最も大きなメリット
GitHubを使用する最も大きなメリットは、「多様な公開ソースコード」にあると思います。GitHubは、チーム開発だけでなく、世界中のあらゆるエンジニアやサービスのソースコードが公開されており(もちろん、公開可能なものに限る)、そこから開発のヒントを得ることも可能です。
例えば、Ruby on Railsで使われる「Gem」と呼ばれるプログラムの部品のようなものがあるのですが、ものによっては、特定のGemがどのような動きをするものなのかがGitHub上で公開されている場合があります。
筆者自身は、開発時に、ユーザー管理が簡単にできる「devise」というGemが思ったように挙動してくれなくて、GitHubを参照した経験があります。そこからうまくいかない部分をピックアップして、自分のRailsアプリケーションに記述を取り込んだりしました。
もし、作業に行き詰まることがあったら、ぜひGitHubで先人のソースコードなどを参照してみるのも良いかもしれません。