なぜ皆使うの!?githubとは!できることや活用事例を解説
プログラミングを勉強していたり、IT系の記事などを読んでいたりするとよく目にする「GitHub」というサービス。 人が作ったソースを一般公開するのに利用していたり、最近では転職活動にも役立つという話を聞いたことがる人も多いのではないでしょうか。 近年、GitHubが様々な分野で活躍し、高く評価されています。 なんとなくは知っているけれど、どうしてGitHubがすごいのかは分からないという方は多いでしょう。 この記事では、GitHubがどういったサービスなのか、そして、GitHubの何がすごいのかを解説します。
GitHubとは
GitHubとは[/caption] GitHubとは、いったいどんなサービスなのでしょうか。 プログラミングの勉強はしているけれど、GitHubが何かは良く知らないという方は意外に多いのです。 GitHubは一言で言うと、gitというシステムを提供するサービスです。 gitと聞いてもあまりピンとこないかもしれません。 ですので、まずはgitがどういうシステムなのかを解説します。
そもそもgitとは
git(ギットと読みます)とは、ソースコードの編集履歴を分散管理するシステムです。 もともとは、ハードウェアを制御するOS機能であるLinuxカーネルを開発するために生まれました。 gitは、まずサーバー上のファイルとブランチをあわせたファイルを、リポジトリというファイルの状態を保存する場所に置きます。 ブランチとは、ファイルの変更・編集を完全に記録したデータのことです。 そして、リポジトリのデータを利用者の手元(ローカルリポジトリ)に複製して保管します。 ローカルリポジトリで行われた変更は、他のリポジトリすべてに適応されます。 つまり、利用者はリポジトリから受け取ったファイルをローカルリポジトリ上で編集し、その成果をもとのリポジトリに反映させ、チーム内で共有します。 これが、gitの機能です。 gitを使うことで、編集履歴の管理が簡単になる上に、一度行った編集を元に戻すことが可能になります。 複数人で開発をする場合、どのソースコードが最新で、その編集を誰が行ったかの管理が重要になります。 例えば、ver1.0をリリースしたタイミングでは、次のver1.1の開発が進んでいることも多いです。 そうなった時に、ver1.0でリリース後にバグが発覚したとすると、バグを修正しつつ、且つver1.0として公開が必要になります。 開発途中のver1.1を出すわけにはいかないのです。 このような時に、簡単にバージョンを戻せたり、管理ができるのは非常に便利なのです。 gitはそうした複数人での開発をサポートするシステムです。 そして、このgitを提供するサービスの中で最大のものがGitHubです。
GitHubについて
GitHub(ギットハブ)は、2008年にGitHub社が公開したソフトウェア開発のためのプラットフォームです。 2018年にGitHub社は買収され、現在はMicrosoft傘下となっています。 GitHubには商用の有料サービスと、オープンソースの無料サービスがあります。 2019年には、プライベートリポジトリの無償提供を開始しました。 gitを提供するサービスとしては人気・利用者数共に最大で、個人の開発者からAppleやブルームバーグなどの大企業まで利用しています。 gitはターミナル上でコマンドを用いて操作するので、コマンド操作に習熟する必要があります。 しかしGitHubは、それをWebブラウザ上で操作できます。 ここが、これまでのgitとGitHubの大きな違いです。 また、キャッチコピーである「ソーシャルコーディング」が示すように、GitHubは「ソースコードのSNS」と呼ばれています。 GitHubでは個人・企業問わずソースコードを共有し、他の利用者がそれについてコメントするという、新しいコミュニケーションが生まれる場所でもあります。
GitHubの機能と実現できること
GitHubの機能と実現できること[/caption] さて、GitHubを利用することで、何ができるようになるのでしょうか。 GitHubは使いこなすのが難しいサービスですが、正しく利用することで、これまでの共同開発や社内業務が抱えていた問題を解決することができます。 さらにソーシャルコーディングやテレワークなど、これからの時代の業務方法に適応していくことができるのです。 ここでは、GitHubの主要な機能である「フォーク」「プルリクエスト」「マージ」と合わせて、GitHubの活用で実現できることを解説します。
情報共有とスムーズな共同開発
まずGitHubで、ソースコードの変更履歴の管理や、これまでのノウハウ・基本となる開発方針を公開しましょう。 これによって、開発の中で何が行われているか、そしていまの作業の方向はあっているのかなどの情報を共有でき、スムーズな共同開発を実現することができます。 GitHubには「プルリクエスト」という機能があります。 これは、自分が書いたソースコードや、これから行おうとする変更を、開発チーム内でチェックしてもらう機能です。 プルリクエストの内容がチーム内で承認されてはじめて、プロジェクトに反映されます。 このプルリクエストによって、スムーズな開発が実現できるだけでなく、チーム内でコミュニケーションが生まれ、より良い開発が可能になるのです。 GitHubには、開発、ひいてはプログラミングの中でコミュニケーションを推進する力があります。 また、企業ではなく個人でも、自分が書いたソースコードをGitHub上で公開することで、他の利用者に評価・批評してもらうことができます。 GitHub上でユーザーに評価されたソースコードには「スター」が付き、評価が可視化されています。 例えば、GitHub上で公開されている「Visual Studio Code」のソースコードには、現在12万のスターが付いています。 一個人が始めたプロジェクトに世界中の人が参加して活発な議論を行うというのが、GitHubが実現した新しい開発の形なのです。 この流れは、Appleなどの大企業の参入によってさらに加速しています。
着実な開発・フォークとマージ
GitHubの主要な機能として、プルリクエストに加えて「フォーク」と「マージ」というものがあります。 フォークとは、ひとつのプロジェクトを分割する機能です。 大きなプロジェクトを小分けにすることで、一歩一歩、着実に開発することができます。 そして、フォークによって分割し、開発が完了した小さなプロジェクトを元のプロジェクトに統合する機能が「マージ」です。 マージは、プルリクエストで承認されたソースコードでのみ行うことができます。 基本的に、GitHubを用いた開発は、「フォーク→プルリクエスト→マージ」の流れで行われます。 このプロセスが、着実な開発を実現する方法です。
テレワークの推進
新型コロナウイルスのまん延により、日本の企業でもテレワーク推進の動きが加速しています。 そこで、GitHubを利用することによって、開発をオンライン上で完結させることができます。 実際に、テレワークをGitHub上で行う企業も多く、個人の開発環境さえ設定してしまえば、問題なく業務を進めることが可能です。
GitHubの活用事例
GitHubの活用事例[/caption] GitHubのすごさを示す例として、その活躍現場の広さがあります。 世界的な大企業から、注目のベンチャー企業、さらには行政機関まで、GitHubを活用している企業・団体は数多くあります。 ここでは、特に話題になった代表的な活用事例を紹介します。
Apple
GitHubの活用事例として真っ先に挙がるのがAppleです。 Appleは2015年に、同社が開発を進めるプログラミング言語「Swift」をオープンソース化しました。 SwiftはiOSアプリケーションの開発に用いられる代表的な言語で、その公開先としてGitHubが選ばれたことが大きな話題となりました。 Swiftのソースコードが公開されてからそれほど経たずに、GitHub上では500以上のプルリクエストが寄せられ、300以上が承認されました。 AppleはSwiftを将来の主要プログラミング言語にすることを目指しており、オープンソース化することで新しい視点を取り入れたいと考えました。 この事例は、プログラミング言語の開発に限らず、これからのソフトウェア開発のモデルケースとなりました。
LINE
メッセージアプリ「LINE」の運営会社であるLINE社は、アプリケーション開発をGitHub上で行っています。 LINEは日本だけではなく韓国にも支社があるため、オンライン上での開発は必須でした。 そこでGitHubを活用することで、離れていても活発な開発と議論が可能になりました。 また、LINEは他企業との開発でもGitHubを利用しており、GitHubがひとつの共通言語となっています。
ブルームバーグ
経済や金融についての情報を発信し、金融業界のためのソフトウェア開発を行うブルームバーグ(Bloomberg)社でも、GitHubが利用されています。 GitHubの導入によって、同社が積み上げてきた開発のノウハウを整理し、世界中にいる5000人以上のエンジニアと共有することができました。 これだけ多くのエンジニアを抱えていても、GitHubによってスピーディーな開発を実現することができるのです。
ホワイトハウス
実は、GitHubを利用しているのはエンジニアや企業だけではありません。 政府の活動や行政サービスのためのソフトウェア開発は、いまや国家運営に必須のこととなりました。 ホワイトハウスは、政府のウェブページのアクセス解析アプリケーションなどをオープンソースで開発しており、この作業がGitHub上で行われているのです。 これまでは、開発のほとんどは外注で、中にはほとんど同じソースコードのソフトウェアを何度も購入していた事例もありました。 この問題は、GitHub上でソースコードを共有することで解決されました。 これによって、これまで開発にかけていた膨大な投資費用を削減することができたのです。
近年では転職活動にも利用されるGitHub
近年では転職活動にも利用されるGitHub[/caption] 冒頭でも少し触れましたが、近年ではこのGitHubは転職活動でも利用されることが増えてきました。 個人が様々なソースコードを無料でアップできるということは、それを選考の材料にすることも可能ということです。 一種のポートフォリオのような役割を持ちます。 例えばエンジニア転職に強いFindyでは、GitHubのアカウントで偏差値を出してくれます。 ・これまで書いてきたコードの量 ・他のプロジェクトへの貢献度 ・他者からのコードの支持 ・アカウントの影響力と いったポイントを中心に独自のアルゴリズムで偏差値を出しているということですが、これを採用活動の基準にするというサービスです。 一朝一夕では評価が上がらないものの、しっかりとエンジニアとして日々学んでいれば、その後の自分の転職活動に非常に大きな武器となるでしょう。 もちろん、 「偏差値が高い=自社に合ったエンジニア」 とは言えないまでも、単に履歴書を確認するよりは遥かに優秀な人材を探すことができるのではないかと考えています。
優秀なエンジニアならAMELAに相談を
優秀なエンジニアならAMELAに相談を[/caption] 今回はGitHubという、エンジニアなら誰でも一度は聞いたことがあるサービスについて触れてきました。 時代がどんどんと変わってきて、エンジニアは自社で抱え込む時代ではなく、優秀な人はどんどんと条件の良い企業に移動してしまう時代なのかもしれません。 このような時代で、優秀なITエンジニアを見つけるのは非常に困難です。 AMELAでは、優秀な人材を多く採用しており、またオフショア開発にも力を入れています。 IT人材が足りない プロジェクトの間だけ人材がほしい 自社のエンジニアを育てられる環境を作りたい そういった相談があれば、是非AMELAにご連絡下さい。