chiraura by bowk

Tech系触ってみたブログ

GitHubって何?導入編

こんにちは、bowkです。

 

今回はGitHubの導入編です。

 

f:id:bowk:20190407171459p:plain

私のような文系IT営業の皆さんでも、聞いたことある方いらっしゃるんじゃないでしょうか。はてなのようなブログに連携パーツでこのマークがでてきたりしますよね。

 

GitHubって聞いたこともないよって方も、これを機にブックマークに入れてかっこつけるといい感じです。

 

では、GitHubってなんなの?

 

GIthubとは、システム開発している人達が使ってるプログラム管理のためのwebサービスです。

難しいんですが、システム開発ってこんな感じ。

・システムは機械が指示書に従って動いている。この指示書がプログラム。

・ただ、機械が直接理解できる言葉はあまりにも難解で複雑。

・人間は人間のわかる言葉で指示書を作って、その後自動翻訳で機械語に変えて指示を出す。

(細かい指示を英語でメールするときって、まず日本語で文章つくって、英語に翻訳してから送るのと同じです)

・この人間が書く指示書がソースコード

・つまり、人間がソースコードを書き、翻訳して、機械に指示を出し、システムが動く。

ソースコードとはめちゃくちゃ長い文章

・システムはいろんな理由で修正や調整がたびたび必要。

・会社のシステムのソースコードなんかは、作った人=今書いている人ではないことが多い。

 

と、システム開発者とはまぁソースコードをひたすら書いている人たちなわけです。

 

ここでとあるオンラインゲームアプリを開発したとします。

もちろんプログラムで動いているのですが、今100人ぐらいのユーザーが遊んでくれているとします。

スタートから好調で、ユーザーがもっとアイテムの種類を増やしてくれと要望が来て、新たに追加したいとします。

その際、開発者は新たにアイテムの種類を増やすためのソースコードに加筆しなければなりません。

今、ユーザーが遊んでいるゲームのソースコードそのものに修正をかけると、ゲーム中に変更が起きるかもしれませんし、もし間違った内容に変わってしまった場合、ユーザーはバグでゲームができない状況となります。

そうならないようにゲーム開発は、ゲーム本番環境には影響がない場所で、開発は行われ、加筆・修正が行われています。

そして、問題なくアイテム追加がされたソースコードができあがると、そのままではゲームに反映されません。それを本番環境に上書きしなければなりません。

それが深夜帯などにあるシステムメンテナンスのため休止中というやつですね。

このように、システム開発は、別環境で開発し、本番に上書きし、別環境で開発し、、、と多くのバージョンを重ねて日々稼働しています。

 

githubの話に戻ると、githubシステム開発者たちがいつも行っているソースコードを保存したり、バージョンを管理したり等の必要な作業を手助けしてくれます。

さらにそういった人々がたくさん集まり、オープンな環境で情報を共有し合うことで自分が取り入れたりアドバイスをしたり、システム開発全体を盛り上げています。

 

ナンノコッチャ良くわからない世界かもしれませんが、見かけた際にはなんとなくシステム開発者のたまり場と思っておいてください。

 

ではでは。