Hijack '23 開発日誌 2023.4-C
こんにちは。今日の進捗を報告します。
敵に攻撃がヒットするように
https://twitter.com/bydriv/status/1642935119370657792
今日は敵に攻撃がヒットするようにプログラムを変更していました。
これ自体は簡単なプログラムですが、その前にリファクタリングをしていたのがなかなか大変でした。
毎度思うのですが、プログラムというのはやっぱり、難しいです。とりあえず動かすだけなら簡単でも、そのうえにさらに拡張していくことを考えると、雑に書くわけにはいかない。雑に書いても動くは動くんですが、 2, 3 ヶ月後に自分が苦しむことになるので、いまのうちに多少大変でもきれいにしておこうと。とりわけ、きれいにする行為というよりも、どういう観点できれいだとかの基準を定めるのが難しいと感じます。
この基準があいまいだと、「なんとなく」できれいにしようとしてしまってぬかるみにはまります。リファクタリングにかまけて、先に進めなくなる。それはまさに、沼にはまったかのように、プレイヤーの体験に寄与しないところばかり「きれい」にしようとしてしまいます。
いわゆる「手段の目的化」というやつです。私は無限リファクタ地獄と呼んでいます。
私が採用しているひとつの観点は、時間です。リファクタリングしないでいると、だんだんと時間がかかるパターンというのが発生してくると思います。そういうパターンを n 回繰り返す必要があるなら、パターン自体を省略できるようリファクタリングしたほうが時間を節約できます。それが 1, 2 回なら、リファクタリングするコストがペイしないかもしれません。コストがペイするならリファクタリングし、ペイしないなら、汚くてもリファクタリングしないほうがよい、と判断するのです。
と、まあ。そんなこんなで、基本的にリファクタリングしなさすぎるのもよくないが、リファクタリングしすぎるのもよくないよね。膨大なプログラムを書いていたら、端から端まできれいにするのは土台無理です。どこかでゴーサインは出さないといけません。結局はバランス。そんなお話でした。
それでは今回はこのへんで。また次回もよろしくお願いします~!