どこかのだれかへ

職業ゲームプログラマ。気になったニュースのピックアップや開発日記などを書いています。

1日かけて1行書く

プログラミングにおいて、書く時間より見る時間のほうが長い、とは良く言いますが、バグ修正に関してはもはやほぼ見てるだけで1日が終わります。

今日1個バグ修正したんですが、原因&修正方法の検討にまるっと1日使ってしまいました。
そして最終的にサブミットしたのは、たった1行。
(実際は調査段階でテストコードをもう少し書いています)

UIのバグで、イベントドリブンな感じだったので、すごく追うのに苦労しました。
なんかもう少し追いやすいシステムに出来ると楽だけど、良い方法ないかな……

Oculus Rift+Touchがセールで5万円!

本体+Touchで5万円だそうで、これは買うべきなのではと思っています。
もともとはいくらだったっけ、8万くらい?かなり安くなりましたね。

ただいきなり安くされるともしかしてRift2発表前の在庫処分じゃ……と勝手に勘ぐるったり。

自分の場合は、PCが古めで弱いので、PC買い換え前提なので、うーん。ほしいけど。
LightRoomが重いので、別理由で最近PC買い換えは検討していますが、重い腰をあげる頃にはきっとセールは終わっているんだろうなぁ。

C++でautoばっかり使うのは止めてくれないか?

新人さんのコードに多いんですが、autoばっかり使ってて可読性が最悪な場合があるので、使いどころを考えて欲しい時があります。

コードを見ているときにautoが来ると右辺値で型を考えなきゃいけません。 右辺値が関数の時とか最悪で、その関数調べて戻り値が何の型かを知る必要があります。

書いている時は脳内に情報があるのでそりゃ楽でしょうが、時間がたったり、他人から見たとき困るので使う場面は限定して欲しいです。

右辺値見てすぐ型が分かる時にのみ、autoは使うべきです。

C++のautoについて書きましたが、C#のvarも同様です。

Github pagesでWebサイト開きました

ブログ形式でやってきましたが、備忘録とか書いていると昔の記事を探すのが大変なのでGitHub Pagesを使って備忘録用のWebサイトを開きました。

Tepp's note

Webサイト自体は、Pelicanという静的サイトジェネレータを使用して作成しました。
近いうちにPelicanの使い方等も載せていきたい次第です。

ただGitHub PagesもPelicanも手探り状態で、学習目的でもあるので、 Webサイト自体をもしかしたら作って消してを繰り返したりするかもです。

2の累乗かどうかの判定

2の累乗ということは、ビット演算的には1が一つだけの状態です。

2の累乗の場合、
-1すると繰り下がって下位ビットが全部1になるため、AND演算すると0になります。

2の累乗以外なら、
-1しても桁下がり発生しないため、AND演算にすれば1以上になります。

ただ0はアンダーフローによりうまくいかないので、最初に弾いています。

バグ修正でQAコストを考える

開発がマスターアップに近づくと、重要でないバグをスルーする場合があるのですが、 これはバグ修正によって新たなバグを生み出す=エンバグのリスクを回避するためです。

スルーするかしないか、またどういう風に修正対応をするか、判断材料は色々あって、その再現率やゲームプレイへの影響度(危険度)などがあるのですが その一つにQA*1コストも考える必要があるというのが今回の話です。

バグを修正した場合、当然そのバグが修正されたかどうか、エンバグしていないか確認する必要があります。

プログラマ的には例えば数行の修正でも、その修正が様々な箇所に影響する場合、QAはそのすべての箇所を再度見回る必要が出てきてとてもコストが高い(時間がかかる)です。

時間がもうなくて見れない場合は、優先度が低ければスルーしたり、修正方法を工夫して影響範囲を絞ってQAコスト下げて対応したりします。またどうしようもなくてQAに頑張ってもらうこともあります。

先日この状況に出会い、設計の重要さを感じた一件でした。

*1:品質保証チーム。今回はデバッグチームの事を指す

中途半端に引き継いでしまったので

仕事の話。

とある人のタスクがあふれちゃったので、終わりかけのタスク(でもバグがある)を1つを引き継いだんだけど、プログラムって書くより読む方が時間かかるし、理解するのに苦労する。

複雑だが大きなコードでもない、時間も無い、そもそもバグがあると明言されていたコードなので、怪しそうなところをがっつり書き直した。

書き直したことで相手の仕事の一部を無かったことにしている感じで、ちょっと申し訳ない気持ちになった。

でもそっちの方が早いし確実だからしょうがない。