こんにちは! 最近、Rustを始めたhihumikanです。
この記事はVolare Advent Calendar 2021の14日目の記事です。
これ何?
この記事は、コードレビューという考え方を知ってほしいという気持ちを書き記したものです。
何が起こった?
自分はチーム開発でリーダから出されていたissueを片付けていました。
その時はまだ言語に対して未熟で、何が正しいのか、何が良いコード分からない状態でコーディングをしていました。
何だかんだで作り上げた「動く」コードをpull requestで出してみた。
間も無くして、コードの指摘の数を見ると10個程度来ていた。
ネストの深いコード、命名など色々指摘されました。
それらを見ていくと段々、何でこんなに否定的に指摘されているように感じてきてしまい、
「一生懸命やったのに...」「何でこんなに言われるんだ???」「じゃぁ指摘するんだからレビュアーが直せよ!」という思考に。
また、そんなにチーム開発を積んできたわけでもない、素人の自分からしたら、動けば良くね?って感じてしまいました。
バグも無ければ、その仕様通りに動かせる事が可能であり、何も問題がないはずです。
しまいにはレスバトルを勃発させる要因になりました。
コードレビューって何をするの?
何で動くのにコードレビューが必要なのでしょうか?
相手側から見た場合、
- 良いコードでコーディングをして、メンテナンス性の良いコードを作り上げたい
- バグを生みやすいコードは避けたい。
- 書く必要のない部分を残しておきたくない。簡潔にしておきたい。
こうすることによって、設計変更やバグに対して強くなります。
コードレビューはこの観点を持ってコードを一つ一つ見て、チェックします。
当時の自分は知らなかったんですが、知識も居るし大変な作業で、毎回そこのブランチに移動して変更箇所とちゃんと動作しているのかをチェックするんです。そして、ダメなところをチェックして理由を付けて返さなきゃいけないんです。
コードの品質が悪くなる、バグの温床になるから見ているんです。
コードレビューはそういう目的をもって行なっています。
コードレビューの考え方
コードレビューをすることには良いコードを生み出す事という目的があるから必要です。
動けば良いってもんじゃないからやっています。
この気持ちのすれ違い、動く動かないではなく、良いコードを目指すというコードレビューという趣旨が理解していなかったのでレスバトルになったのではないかと思います。
まとめ
- 動けば良いってものじゃない
- コードレビューの側面を知って、チームと共通化しよう
- 知識不足は仕方ない
- 愛着のある一生懸命やって作り上げたコードは誰しも、その一生懸命さを否定していないぞ
ありがとうございました。