こんにちは。RockinWoolです。寒くなるにつれ頭痛もひどくなってきている気がしますが、皆さんも暖房をケチらずに温かい部屋で過ごしましょう。
さて、今回のお題はとあるスパゲティコードの治療を諦めた話をしようと思います。このプログラムの何がいけなかったのか。自己分析をしながら話していこうと思います。

治療断念の決断: 存在意義が無い

皆さんの中でも、自分の書いたプログラムに対し「破棄をする」という決断をすることは珍しいと思います。どんなコードでも一度書いたものは大切に使いまわしたいし、複雑なコードであればあるほど時間をかけてつくった愛着から捨てられなくなりがちです。ですが、今回の私のプログラムは救いようがありませんでした。なぜなら、作者本人からしてみても、そのプログラムを回して何をしたかったのかがわからなかったからです。

スパゲティコードは維持するだけで負債になりうる

さて、半年前に書いたと思われるこのコード。内容を確認してみようとすると大きな問題にぶつかります。そもそも、かなり読みにくいのです。これを頑張って解読したのですが、結局何がしたかったのかは半分くらいしかわかりませんでした。しかも、ここで動作チェック中にバグを発見してしまいました。このバグを治すかどうかを時間と天秤にかけて、このコードをメンテしつづけるくらいならば破棄した方が人生にプラスであると考えました。つまり、治しても価値の無いものを治すくらいであれば、破棄した方が良いのです。

どうすれば回避できた?

今回の問題はコードの構成も去ることながら、コードを使って何を実現したかったのかという「目的」の部分が欠落していた点が一番大きな要因として挙げられます。単純な動作確認プログラムの延長であったことはわかるのですが、何の動作を確認してどうしたかったのかが残って無い以上、推測の範囲でしか当時の自分の気持ちを読み解くことができないのです。したがって、このような事態を防ぐためには「必要なもの」を「ドキュメントを残しながら」作っていくことが必要です。どんなプログラムも書いている時は、自分にとって必要なプログラムであるはず。この存在意義を残していないと、あとになって大切であるかもしれないそのプログラムを捨てるしかなくなってしまう。今回はそれを学ぶことができました。

動くものを作って、いつでも使えるようにする

使いきりのプログラムを作ると、必ず半年後にはその存在意義や実装の詳細を忘れてしまうでしょう。使い切りにせず、常に使えるようにドキュメントを作ったり、動作方法を簡単にする、GUIを作るなど、工夫しようとおもいました。それと、そもそも動かないプログラムは破棄しましょう。今回動かないプログラムを治療しようと思いましたが、当時の知識を失っている以上どうしようもなかったです。せめて動くプログラムを管理しましょう。

まとめ: 定期的なプログラムの破棄は大切である

締めになりますが、今回のプログラムを破棄するという判断は間違っていないと信じたいです。そもそも一生プログラムを書き続けたら、そのうちGitHubはゴミコードでいっぱいになってしまいます。定期的に破棄し続ける心構えを持てればいいなと思います。それでは、また次回。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です