• 2019年8月14日水曜日
ウズマスターの日々
ウズマスターの日々 https://blog.uzumax.org/2019/08/blog-post_71.html

ラグナロクマスターズ:ギルド寄贈バグ

あちゃ~。やらかしおったな。(´・ω・`)




何じゃこのバグは。
1つのマスにアイテムが2つ3つ重なって表示されている。

僕のプログラマーとしての知見を述べると、この症状は……、結構キツいな。(;´・ω・`)

ソースがヤバい


プログラマーだったらピンと来るんじゃないだろうか?

「1つのマスにアイテムが複数重なる」

なんて、普通あり得ないということを。

この画面は上から順にアイテムを一覧表示する画面だ。
普通に考えれば、アイテムをセットしたリストを上から順にループして表示するだけである。
だが、それだったら1つのマスにアイテムが複数重なるなんて事は起きない
オブジェクトを上から順にポンポン吐き出すだけなんだから、重なりようがない。

それが起きてしまっているということは、つまり、そういうシンプルなロジックではないということなんだ。

たぶん、


  • 表示するアイテムは何か?
  • 表示する個数はいくつか?
  • 金バッチがあるか?
  • それを表示する場所はどこか?


こういう情報をバラバラに計算している。

「表示する場所」も、配列の0番目が空いていたら0番目にセットし、0番目が埋まっていたら1番目をチェックし空いていたら1番目にセットとか、
整理されていないコチョコチョとした処理を繋ぎ合わせて実現しているようなソース。
その繋ぎ合わせをミスって、こういうバグになった。

構造体に詰め込んでリスト出力とか、そういう合理的なソースになっていない。

バグの症状からそういう風に察せられる。

そして、この機能がそういう状態だという事は、一事が万事、システム全体が同じような状況であろうと推定することになる。

元々のソースがグダグダだから、そりゃ何か修正してもどこかバグろうというものだろう。

いやぁ、プログラマーとして、これはキツい状況だな。(;´・ω・`)

お盆休みに出勤して障害対応とは、中の人の心中をお察しする。(´・ω・`)

0 件のコメント: