GitHubの便利な活用方法の紹介

#エンジニアブログ

ソフトウェア開発プロジェクトの進行には、バージョン管理はつきものです。

ベータ版ローンチ後の機能追加やバグの修正など、リリースに関連するバージョンの更新ももちろんですが、開発途中においても、いつ/だれが/どのファイルに/どのような変更を加え/どの状態のものが最新なのか、という細かいバージョン管理が非常に重要になってきます。

 

そのバージョン管理を行うツールのひとつにGitがあります。Gitの他にもバージョン管理ツールは存在していますが、「リポジトリ」と呼ばれる、複数のデータや情報などが体系立てて保管されているデータベースに『分散型』(サーバー上のリモートリポジトリと作業者のPC上のローカルリポジトリの両方で管理できる)を取り入れている点で、非常に使い勝手がよく、世界中の多くのエンジニアに使用されています。

このGitでのバージョン管理を、より一般のプログラマーにも使いやすいものにしたサービスがGitHubです。公開されるソースコードの閲覧、バグ管理機能、SNSの機能を備えており、開発者にとっては不可欠なサービスです。教育機関や研究分野、さらには行政分野においても、政策文書の公開、ドキュメント等の公開や編集に使用されるなど、他領域にも広がりを見せています。

 

今回は、GitHubにおける主な機能やその活用方法について、ご紹介します。

 

 

■GitHubの活用POINT①:ソースコードの管理

まずは基本的なことですが、Gitの本来の目的である、プログラムのソースコードなどのバージョン管理(変更履歴の記録・追跡)での活用です。多くのコードを編集するなかで何か不具合が起きたときに、元のバージョンへ戻すことは、どのエンジニアにとっても当たり前に起こるものですが、その度にバージョンの日時をつけて保存し、また新しいファイル名で作業をしていると、管理が非常に煩雑になりミスも発生してしまいます。GitHubではこのバージョン管理を効率的に行うために、

・古いバージョンへ戻す
・編集の履歴を見る/差分の確認
・何人かで別々に作業した部分をマージ(統合)する

ことができる機能が実装されています。

 

GitHubの活用POINT②:プロジェクトの管理

GitHubでは、ソースコードの管理だけではなく、複数人での開発プロジェクトを管理する機能も備わっています。

 

<タスクごとのステータスを管理する機能:Project>
作業項目ごとに「残タスク」「作業中」「確認待ち」「作業完了」といったステータスを管理することができます。GitHubのアカウントさえあれば、エンジニア以外の人も見ることができるため、チーム内での進捗管理に有用です。

 

<プログラムのバグや、改善todoなどを管理する機能:issue>
開発にバグはつきものですが、一人で抱えて調べるより、チーム内で共通問題として共有し共同での解決に取り組むのが効率的です。GitHubでは、発生したバグや問題点をIssueとして登録し、該当のIssueごとにチーム内でやり取りをすることができます。問題の担当者が曖昧になってしまいそうな場合は、Assignee機能で、Issueに担当者を割り当てることもできます。

 

<ソースコードの追加や改修などをチェック・承認する:プルリクエスト>
“適用するソースコードは必ずレビューする“ことが重要ですが、チームでの開発において、作業者が監督者や責任者、マージ担当者などに対して、ソースコードの追加や改修などを通知し、その該当箇所について、レビューや承認を求めることができます。これによりチーム全体としての変更の管理や品質の向上につながります。

 

<開発者の活動ログを参照し、評価につなげる>
ニューノーマル時代のエンジニアの評価とは?」でもWithコロナの時代でのリモートワーク下におけるエンジニアの評価について触れましたが、issueとして課題や議題を新たに提起した割合やプルリクエスト数レビュー対応率などを管理者が把握することによって、定量的な評価指標とするような活用の仕方もあります。

 

 

GitHubの活用POINT③:関連ドキュメントの管理

ソースコードの管理だけでなく、開発プロジェクトに関わる全てのドキュメントを管理することができます。

設計書や仕様書、要件定義書、テスト仕様書など開発に関わる重要なドキュメントから議事録やスケジュールまで、あらゆる情報を管理することができます。ソースコードほど、「ひとつ前に戻す」行為は行いませんが、要件が変更された箇所やタイミングの整理などに有用です。

通常は開発チーム内での共有となりますが、GitHubアカウントがあれば、クライアントの担当者との共有も可能になります。

また、リモートワークが浸透したことによりチーム内でのやり取りをSlackベースで行なっているケースも多いと思いますが、GitHubとSlackを連携させることで、issueコメントやプルリクエスト、テストやデプロイの完了通知をSlackのチャンネルで受ける、といった活用方法が可能になりました。

通知テキストのカスタマイズ(エンジニアでない方でも読みやすいメッセージにするなど)も可能なため、クライアントや他部書の担当者とSlackでコミュニケーションを取っている場合にも活用できる機会が多いでしょう。

 

 

 

GitHubの活用POINT④:情報収集

公開されているフレームワークを使って開発するケースもあると思いますが、Gitは

オープンソースのため、それらフレームワークのバグ情報が公開されており、解決方法についての情報を検索することが可能です。

また、GitHubはSNSとしての側面もあり4,000万人もの開発者のコミュニティが形成されています。Watch機能では誰かがオープンしたIssueの解決状況を追うことができたり、フォロー(お気に入り)している人が公開しているライブラリが更新されたことの把握や、ソースコードについての質問や情報交換などを行うことができます。

バグや問題の解決は、より広い情報網があることが重要ですが、そういった観点でもGitHubは強い味方になるでしょう。

 

まとめ

開発プロジェクトに非常に役立つGitHubですが、最近では、エントリーシートや履歴書を提出せず、Git Hubのアカウントのみでエントリーを受付し、プログラミングスキルを判断して採用活動を行うような「GitHubハンティング」と呼ばれるリクルートの方式をとる企業も出てきており、どの言語を習得しているかに関わらず、エンジニアとしては「必修科目」とも言えるでしょう。

関連する記事