自動化・AI開発

書いて、消したコードの話

Kanae

夕方、今日書いたコードを自分で消しました。

朝からずっと、アバターの口のガビガビを減らすスライダーを作っていて、候補が3つあったのでそれぞれ Issue に書き出して順番に試していました。
2つ目までは順調でした。
1つ目は効かないと分かって、2つ目はそこそこ効きました。
そして3つ目。

3つ目は、1つ目と2つ目を組み合わせたハイブリッドの案でした。
書いているときは「たぶんこれが一番効くはず」と思っていました。
単純な案の和なんだから、効きも足し算になるだろう、と。

でも、画面で動かしてみたら、2つ目との違いが分かりませんでした。

消すかどうかで、一瞬迷いました

消すかどうかで、一瞬迷いました

書いたコードは、けっこうな量でした。
ロジックの切り替えが1ファイル、UIが1ファイル、プリセットの再設定が2ファイル。
ちょっとした調整じゃない、それなりの時間をかけた実装です。

「これを消すのか」と思ったとき、一瞬ためらいました。
昔の私なら、きっと残していたと思います。
「せっかく書いたのに」とか「また必要になるかもしれない」とか、そういう理由を自分に言い聞かせて。

でも今日は、消す方を選びました。
git revert(書いたコードを取り消す仕組み)というコマンドで、書いたコミットをまるごと打ち消す形で。
履歴には「書いた」と「戻した」の両方が残って、現時点のコードは書く前の状態に戻ります。

消したのは、失敗だったからではありませんでした

消したのは、失敗だったからではありませんでした

消す理由をきちんと言語化してみると、「案3は期待したほど効かなかった」ではなくて「案3は案2と区別がつかなかった」でした。

つまり、効いていないわけじゃないんです。
ちゃんと効いてはいて、ただ、もっとシンプルな別の案と同じくらいしか効かなかった。
それだけのことでした。

同じ効果なら、コードは少ない方が読みやすいし、あとで直すときに間違えにくい。
複雑なコードには、複雑さに見合う理由が必要です。
「案3にしかできないこと」が画面から見つからなかったなら、残す理由はありませんでした。

試す前は「本命」だと思っていたものでした。
でも実機で見てみたら、本命じゃなかった。
それだけのことだったんです。

消したことで、進んだ気がしました

消したことで、進んだ気がしました

revert は一見、戻る動作です。
コードの状態は、書く前に戻ります。

でも私の中では、何か一つ進んだ感覚がありました。
「試して、違いを確認した」という事実は、コードを消しても消えません。
むしろ、試したからこそ「案3は案2と同じ」と言えるようになりました。

試さないうちに「案3の方が複雑だから、たぶん効くはず」と頭の中で想像していた時間より、試してから「案3は案2と同じだった」と言える今のほうが、確実に先に進んでいます。

試して、違うと分かった。
だから、戻した。

これは後退ではなくて、確認の一部だったのかもしれません。

暮らしにも、消していいものがあるかもしれません

暮らしにも、消していいものがあるかもしれません

「せっかく始めたから続ける」「せっかく買ったから使う」って、私はよくやっていました。
手をかけた分だけ、それを手放すのが惜しくなるんです。

でも、手をかけた時間は、すでに払った代金です。
「使い続けるかどうか」は「もう払ったかどうか」とは別の話で、今も役に立っているかどうかで判断すれば十分でした。

試して、違うと分かったら、戻していい。
それは失敗じゃなくて、確認です。

消したコードの分だけ、試したことも増えている。
それで今日は、いいような気がしました。

ABOUT ME
かなえ
かなえ
個人開発を応援する非エンジニア
婚約破棄をきっかけに、29歳で未婚の母になると決めました。
不安と向き合いながら、10年かけて働き方を少しずつ作り変えてきた40代です。

AppSheetやGASを独学で覚え、いまはAIを使った個人開発を毎日続けています。
個人開発を応援する非エンジニアとして、等身大の試行錯誤や、子育て・自立・副業のことを、正直に記録しています。
記事URLをコピーしました