2011年12月12日 (月)デフォる
トゥデイのナンバー、プログラマーのT.Tです。
おっとベガス語が出てしまいました。ベガ語が。
忙しい時期も過ぎ去り、
以前のプロジェクトの反省点を個人的にまとめています。
その中の一つ、
「デフォルト引数多すぎワロタ」
をなんとかしていきます。
「敵作ってー」「了解です」
CreateEnemy(int iId);
「あのへんに作りたいんやけど」「はーい」
CreateEnemy(int iId, Vec3* pPos = NULL);
「あーこっち向かせて」「なるほど」
CreateEnemy(int iId, Vec3* pPos = NULL, Vec3* pRot = NULL);
「出てきたやつのHP半分にできへん?」「ヨユーっす」
CreateEnemy(int iId, Vec3* pPos = NULL, Vec3* pRot = NULL, float fHp = 1.0f);
「イベント起こしながら出したいんですが・・・」「まかせろ!」
CreateEnemy(int iId, Vec3* pPos = NULL, Vec3* pRot = NULL, float fHp = 1.0f, int iEventId = -1);
と、ちょっと極端ですが上記の感じで少しずつ増えていきました。
そろそろ呼び出している箇所を確認する際に、
関数のコメントと睨めっこしないと書けなくなってきますね。
こういうのを解消するには、
汎用的な作成関数は残したまま、
拡張部分を含めた構造体を引数に持つ作成関数をもう一つ作ると・・・
CreateEnemy(int iId, Vec3 Pos);
CreateEnemyEx(SCreateEnemyOption* pOption);
ルックもビューティフォー!ユーズもエクセレント!あぁまたベガ語が。
見た目も美しく、呼び出す側は楽チンですね。
と長々と書いたんですが、
こういうのってみんなわかってるんです。
ただ、修正しようすると、呼び出している箇所を全て書き換えないといけないし、
きちんと動作しているかチェックするのが大変です。
バグチェックしている終盤は特にこうなりがちです。
しかし使いにくいことには変わりないので、
後のプロジェクトで再利用する際には直しておきたいですね。
| 固定リンク | コメント (0) | トラックバック (0)
「プログラマー」カテゴリの記事
- 技術交流の業(2019.03.07)
- 福袋争奪戦デビュー(2019.01.31)
- 温泉旅行(2019.01.24)
- ゲーセンの近況(2018.11.29)
- 健康的にプログラミングを続けるためのちょっとした習慣(2018.10.18)
この記事へのコメントは終了しました。
コメント