Gitは簡単でつまらなそうだからこそ先に理解すべし!
はじめに
こんにちは!大ちゃんの駆け出し技術ブログです。
今回はGit
について無茶苦茶簡単に説明して、スクール生だからこそわかった、Git
のありがたさ、そして、Git
は早く取り組むべしということをお話しします!
なお、本記事はGit
やGithunb
を説明する記事ではなく、それらを早めに勉強する必要性を説明する記事です。ですので、Git
、Github
についての詳しい説明は別の記事や教材を参照してください!
勉強して4ヶ月目でGithubを知る
変更管理技術であるGit
、Github
はエンジニアとして働く上では間違いなく必須の技術でしょう。Git
、Github
の便利さ、管理のし易さは本当に素晴らしいものなのです。現状はGit
についてある程度知識があるので、Git
やGithub
がないと思うとゾッとします。
しかし、私が未経験からのエンジニア転職をすべく勉強を開始してから今月で4ヶ月ですが、スクールのカリキュラムでGit
の項目が出るまでGit
やGithub
の仕組みへの理解を怠っていました。
理由は簡単です。
つまらなそうだから
「変更管理」ってすごい地味に聞こえましたw
しかし、実際のところGit
、Github
は覚えることは他のエンジニアの技術と比較すると本当に少ないです。最初理解するのに少し戸惑うだけで、慣れてしまえば非エンジニアでさえ何をしているのかが理解できると思います。
逆に、プログラミング言語とは違い何かを作る技術ではないので勉強していて面白さに欠けます。実際4ヶ月前にProgateをやっていた時期はProgateのコースで本当につまらないと思いましたし、簡単なら後回しでもいいやと思いました。それよりもRuby
やJavaScript
など他に勉強すべきことがたくさんあり、プログラミング言語を学ぶのが本当に楽しかったので、Git
への理解はほとんどないままスクールの課題に取り組んでいました。
しかし今なら言えます。
「Git、Githubの知識は早めに付けよう」
なぜ早めに理解すべきか
では、なぜ簡単な技術的難易度はそこまで高くないのに早く学ぶべきなのでしょうか。理由は2つあると思っています。
勉強効率が上がる
Git
の知識があるだけで普段のプログラミング言語学習の効率は比較的に上がります。
理由はバグやエラーが起きた状態を元に戻せるからです。
例えば、私はRuby on Railsの学習に現場Railsを使っていました。良書でありRUNTEQではRailsチュートリアルよりもお勧めしている参考書です。
こちらの参考書ですが、0→1で一つの簡単なアプリを作っていくため、コードを書く量がとにかく多いです。自分の場合、電子書籍ではなく本を購入していたので、コードをコピペすることができずよくタイポしていました。その結果エラーがたくさん発生してしまいました。
本来であればバグやエラーが発生した場合はどこが悪いのか調査し修正をすべきです。しかしながら、初学者はエラー内容の判断がつかずどう修正していいのかがわかりません。 また、修正しようとしてエラーメッセージでググり、テキトーなQiita記事を選んで内容を読まずにコードだけをコピペして修正しようとしてさらに不具合が生じるなんてこともあるでしょう。
そうなった時、バグが起きる前のファイルの状態の戻れば、バグがなくなりそこから再度取り組めるのです。
これって特に現場Railsのような0→1開発だと本当に重宝されると思っています。
現場Railsでは気づかないうちに不具合が生じていたなんてことがよくありました。大体はタイポが原因なのですが、どこで間違えたのかを探すのにひたすら自分の書いたパソコン画面に表示しているコードとテキストに書いてあるコードを間違い探しのように比べるのが本当に辛かったです。しかもコードに慣れていないので難易度はサイゼリアの間違え探しレベルだと思いますww
そして1番最悪なのが、どこを直すべきなのかが分からなくなった時です。変更管理を知らなかった自分は、テキストを最初のページからやり直すという苦行をせざるを得ませんでした。要は新しくプロジェクトを作成して一からアプリを再度作り直していました。それが3回ぐらいあったので本当に無駄な時間を過ごしてしまいました。
エラーが読み取れない初学者の方は念のためにファイルの変更記録をしておいた方が安全に学習を進められると思います。サイゼリアの間違い探し上級者の方々はそれでも問題なければ変更管理しなくても構いませんww
開発の流れをつかめる、復習ができる
Railsチュートリアルしかり、現場Railsしかり、コードを書く量が本当に多いです。 そしてコードを書く量が多いと今まで何をしたかを忘れてしまいます。当然ですよね。
しかし、Git
の主機能である「コミット」を使用することで、過去に行った変更をGithub
上で確認することができます。
実際自分がRUNTEQの課題でやってしまった過ちをもとにコミットすることでどのように変更した部分を把握できるのか見てみましょう。 課題の内容はRSpecを使ってテストコードを作成する課題です。
まず、Git
のコミットの正しい方法を知らずにテキトーにコミットしていた時期のGithub
の画面が以下のような感じ。
上の画像の「option_task02_model_spec;」というのがコミットメッセージです。本来、コミットメッセージとはそのメッセージからどのファイルを変更したのかを表すようにしなければなりません。つまり、ファイル変更を行う都度コミットを行う必要があるということです。
ですが自分のコミットの方法はどうでしょうか。実はこの課題の名前をそのままコミットメッセージにしただけです。
この課題の実装では複数のファイルに変更を加えたはずですが、たった1回しかコミットしておらず、コミットメッセージからどこのファイルを変更したのかがわかりません。 コミットメッセージの内容も雑でとてもじゃないですが人に見せられるものではないのです。 ですが、これを課題として講師に提出した自分は本当にやばい奴だと思ってますww
そして、上の課題でやってしまった過ちを反省し、次の課題でしっかりと分割してコミットした場合のGithub画面が以下のような感じ。
RUNTEQ生の過去の課題の履歴やコミットの方法を真似しただけですが、たくさんのコミットメッセージが履歴に残っおり、変更を加えるたびにコミットをしているのがわかると思います。
これにより、今までどのような変更を加えてきたのかがコミットメッセージからわかるので、開発の全体を把握しやすいです。 そして、機能の実装やバグの修正の方法が履歴として残っているので、復習も容易にできます。
もし、コミットメッセージを分割しなければ、自分から見てもどのように実装したのか、どのように修正を加えたのかがわからなくなり、結果誰も変更内容と履歴を完璧に把握できなくなります。
自分が開発の流れがわかるように、復習できるようにコミットをしていくことはとても重要です。
実際、あなたのコードを最終的に見るのは先輩エンジニアなわけですから、最終的に人に見てもらうことを意識して初学者のうちからGit
を使っておいた方がいいと思います。
終わりに
Git
、Github
を導入することはとても簡単です。そして、誰でも無料で利用することができる技術です。
もし、プログラミングを勉強しているのにまだGit
、Github
を触ったことがない、使ったことがないのならこれを機に学習し始めることを強くお勧めします。
以下は自分がGit
、Github
を学ぶ上でとても参考になった教材です。よろしければ是非!
- たにぐち まことのともすたチャンネルの動画
合計10個の動画があります!理解し易さはダントツです!
- サル先生のGit入門〜バージョン管理を使いこなそう〜
こちらもわかりやすく有名なサイトです!
以上、大ちゃんの駆け出し技術ブログでした。