プログラミング初心者向けのTipsです。
まあ、タイトルに書いたとおりなんですが、プログラミング初心者は(というか、プログラマならみんな)git commitする前にdiffを自分でチェックするようにしましょう。
それはなぜか?
しょーもないミスを自分で見つけるためです。
しょーもないミスというのは例えば、消し忘れのコメントや、デバッグ用に書き込んだprint文、無駄な空行、おかしなインデント、管理対象外とすべき一時ファイルや隠しファイル等々です。
def create @book = Book.new(book_params) puts @book.title # ほら、デバッグ用のputsが残ってるよ!! if @book.save redirect_to @book, notice: '登録しました' else render :new # インデントが1文字ズレてるよ!! end end
しょーもなくない、深刻なミスもあります。
たとえば、ついうっかり外部APIやAWSのキーとシークレットをdiffに混在させてしまっていた、なんてこともあるかもしれません(怖)。
# これは絶対コミットしてGitHubにpushしたらあかんやつ!! AWS_ACCESS_KEY=AKIAJTR62TDCMHIFHOGE AWS_ACCESS_SECRET=9Z/jzM0C+haty7f2hwroK9ADmw06wq/HogePiyoFuga
こういったミスをしないように、git commitのコマンドを打ち込む前にgit diffでこれからコミットしようとしているコードのdiffを自分でレビューするようにしましょう。
もちろんボーッとdiffを眺めるだけではダメです。
レビュアーになったつもりで自分で自分の粗探しをしてください。
この時点できちんとミスを見つけ出し、コミット前に修正しておけば、プルリクエストを出したときにレビュアーからの指摘事項を減らすことができます。
チーム開発をしたりするときにしょーもないミスを連発していると、「この子、このままコードを書かせて大丈夫かな?」とレビュアーを心配させてしまうかもしれません。
ミスを可能な限りなくし、先輩エンジニアに「出来る新人」をアピールしましょう😎
コミット前にセルフレビューする実際の様子を動画で見てみる
以下の動画は僕が実際にRailsのプログラミングをする様子をスクリーンキャスト形式で録画したものです。
動画の8分あたりを見ると、僕がコミット前にdiffを確認している様子がわかります。
僕はRubyMineを使ってdiffを確認していますが、考え方自体はRubyMineを使わないときも同じです。
【お試し版】プログラマがコードを書きながら考えること 〜動画でわかるWebクローラー開発〜
なお、こちらの動画の完全版はBOOTHで販売中です〜。(番宣)
booth.pm
RuboCopのようなツールで自動チェックさせるのももちろんOK
目視によるチェックだけでなく、RuboCopやESLintのようなツールを使ってしょーもないミスを自動的に検出するのももちろんOKです!
ただし、ツールだけに頼るのはやめましょう。
ツールでもチェックしつつ、目視によるチェックも併用すべきです。(ツールで検出できないミスもあるので)
また、ツールの自動修正機能を使う場合もどこがダメだったのか、それがどう修正されたのかを確認して自分のコーディング力アップに役立ててください。
(ツールがないと綺麗なコードが書けない、ということにならないように!)
まとめ
というわけで、このエントリでは「プログラミング初心者はgit commitする前に必ずdiffを自分でレビューするクセを付けよう」という話を書いてみました。
ちなみにこれは僕がソニックガーデンに入社したときに先輩エンジニアから教えてもらったTipsです。
それまでは僕自身もそういう習慣を身につけていませんでした。
実際、この習慣を実践するようになってから、しょーもないミスが格段に減ったのを実感しています。
誰でも簡単に実践できる習慣だと思うので、プログラミング初心者のみなさんはぜひ実践してみてください!
あわせて読みたい
フィヨルドブートキャンプのメンター、 id:beta_chelsea さんが書かれたブログです。
ここでもほぼ同じ内容が書かれています。(そして僕もフィヨルドブートキャンプのメンターの一人です✌️)