はじめに
PullRequest・MergeRequestを出して開発メンバーからのレビューを受けて「うわ!なんでこんなしょうもない無駄なミスしちゃったんだろう」と悲しくなったことはありませんか?
私は数え切れないほどあります。
今日はそんなしょうもない無駄ミスをなくすために考えたことを紹介したいと思います。
そのPullRequestをちょっと待つメリット
できた!!と思ってPullRequstを出す前に、一回深呼吸してもう一回考え直すメリットはたくさんあります。
1.開発メンバーの無駄な時間を奪わないで済む
need_to_fix? ? 開発メンバーがこれはおかしいと思い、確認してコメントする : レビューOKにする
レビュアーからしたら圧倒的に「レビューOKにする」の方が短時間で済みます。
開発メンバーに迷惑をかけないためにもそのPullRequestはちょっと待つべきです。
2.リリースまでのスピードが速くなる
これはしょうもないミスに関わらずですが、
レビューを出す → コメントをもらう → 確認する → 修正する → もう一度見てもらう →レビューOK
の時間が勿体無いです。
しっかり確認する → レビューを出す → レビューOK
この3行程がいらなくなります。
レビューに割く時間を少なくすることでその分自身の開発に割く時間が増え、リリースできる実装物が増えます。
リリースできる実装物が増えるとサービスがよくなります。
自分が綺麗なプルリクエストを出すだけで結果サービスを改善するスピードが上がると思います。
3.メンタルを正常に保てる
しょうもないミスをするとなんでこんなミスをしてしまったんだろうと悲しくなります。
悲しくなるとその気持ちが別のミスを誘発し、負のスパイラルに陥ります。
大元のミスがなくなれば、メンタルも正常に保たれさらにミスが減ります。
自分のためにもそのPullRequestはちょっと待つべきです。
やってしまったしょうもない無駄なミス一覧
1. インデントズレ
Lintやrubocopなどの静的解析ツールである程度のミスは防げますが、私がよくやってしまうのは
コピー&ペーストした後にインデントをしっかり確認しなかったためを起きるミスです。
コピー&ペーストした後はしっかりインデントを確認するクセをつけるべきです。
2. 命名規則ミス
camelCase・snake_case・PascalCaseなどの命名規則が他のファイルと違い統一できていていないパターンです。新規のコンポーネントなど、1から書くときによくやってしまいます。
3. 使っていないメソッドの消し忘れ
開発中にリファクタリングしたのはいいものの、不必要になったメソッドや定数を消し忘れてしまうパターンです。大規模な開発の時によくやってしまいます。
4. めっちゃボタン連打できちゃう
クライアントでAPIを叩くボタンをレスポンスを待たず何度もリクエストが送られてしまうパターンです。ちゃんとテストしてないため起きます、レスポンスが来るまではボタンを押せないようにした方がいいです。
5. 不適切なメソッド名
- スペルミス
- メソッド内の変更はしたけどメソッド名変えてない
- 英語としてわかりずらい
『プログラマが知るべき97のこと』という本の名前重要というセンテンスを読んでから、コードを書くときもレビューするときも名前にしっかり注視するようになりました。
6. サーバーサイドとクライアントでの値が違う
Vueのstateで状態管理をしている場合、APIを叩いてサーバーのデータは変えたけど、クライアント側は変わっておらずおかしな表示になってしまうことがあります。
7. NULLチェック忘れ
null参照エラーを起こすため、しょうもないというか絶対ダメです。
これもしっかり起こりうるパターンを考えテストをすれば防げるものです。
しかしなんでもNULLチェックすればいいというものではありません。
その「Nullチェック」必要ですか? ~レビューで指摘を一つ減らすために~
8. クォーテーションが違う
式展開するとき変数が無い時
rubyの場合、ダブルクォーテーションを使っていたり
JSの場合、バックスラッシュを使っていたり...
しょうもない無駄なミスを防ぐには
Commitの前にDiffを確認
大体の問題はこれで防げる気がします。
確認のし忘れで無駄なミスが起きてしまうのです。
静的解析ツール・エクステンションを大活用する
VisualStudioCodeのCode Spell Checkerや ruby-rubocopなど
使えるものはどんどん使っていきます
ラバーダッキング
ラバーダッキングとは
主にプログラマの間で使われる言葉だと思うが、「ラバーダッキング」という問題解決手法がある。 ゴム製のアヒルのおもちゃに話しかけることで、頭の中で問題が整理されて解決を導く手法である。
差分を確認する際に、頭の中のアヒルに説明しながら確認します。
差分をズラーと目で追うより説明しながら確認した方が、「いや、待てよ...」と閃くきっかけにもなります
反省
起きてしまった無駄なミスは反省します。
私は忘れてしまわないようにメモ帳に書いたり、Slackの自分のDMに書き留めて形に残すようにしています。