【開発】私が思う究極に辛いプログラムコードはこれだ!
ゲーム開発現場で実際に発生した、または現在進行形で発生している超絶問題のあるコードについてお話します。開発環境はUnityのため、言語はC#となっています。巷でいわれる密結合は良くないとか、そういうデザインパターンを考え始める以前の問題になっています。面白おかしく見ていきましょう。ちなみにノンフィクションです。関数名とかそのまんま掲載します。
目次
コードが息をしていない
お分かり頂けるだろうか・・・。出オチ感が否めないですが、見て思うことを列挙します。
こんなに短いプログラムコードなのに、とんでもない闇が潜んでいます。
関数名に意味がない
他人が見て分かるコードを書く様に気を付けるのは当然のこと、特に途中参加の人が見ても分かるコードになる様心がけましょう。人間は忘れる生き物。日が経つごとに、当人が見ても分からない物になってしまいます。まるで、難読化処理を施した後の様な。
法則がありそうで無い関数名
a1(), b2() ときてc4()って何なのだろう。c3じゃないの?思考リズムが狂います。きっとタイポなんだろうなって思いつつも。
コルーチンがぶっ放しで制御できない
Unityで在りがちなコルーチンが適切な所で呼ばれていない。コルーチンを並列で呼ぶなんて絶対にやってはいけない。バグ発生時にデバッグが困難になります。便利ですけどコルーチンの処理単独で完結する様にしましょうね。
public メソッド
public な関数があること自体は悪くありません。問題は公開されている関数なのに関数名を見ても意味が分からない点。それをなんとなく使ってしまっている他所のクラス。使おうとした時に誰か物申さなかったのか?それとも興味が無いのか。いずれにせよ強烈に絡み合い、このご時世にアセンブラコードを書いているのと同じことくらいには複雑怪奇です。
無理に譲歩するとすれば、このコードを書いた人が目上の人で現場は意見し辛かった等、政治が絡んでいたなんてこともあったのかもしれません。しかしプログラムにおいて上司とかそんなものは関係ないです。屑コードは屑だと言ってやりましょう。そうして人は成長するのです。
まとめ
コードは人付き合いと同じです。優しく分かりやすくしないといつか自身に返ってきますよ。