« やる気は思ったほど簡単に出せるもんじゃない | トップページ | 代替プラン »

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);


ルックもビューティフォー!ユーズもエクセレント!あぁまたベガ語が。
見た目も美しく、呼び出す側は楽チンですね。

と長々と書いたんですが、
こういうのってみんなわかってるんです。

ただ、修正しようすると、呼び出している箇所を全て書き換えないといけないし、
きちんと動作しているかチェックするのが大変です。
バグチェックしている終盤は特にこうなりがちです。

しかし使いにくいことには変わりないので、
後のプロジェクトで再利用する際には直しておきたいですね。

follow us in feedly
result = encodeURIComponent( "http://www.accessgames-blog.com/blog/2011/12/post-3b15.html" );document.write( "result = " , result );&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest">

| | コメント (0) | トラックバック (0)

« やる気は思ったほど簡単に出せるもんじゃない | トップページ | 代替プラン »

プログラマー」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: デフォる:

« やる気は思ったほど簡単に出せるもんじゃない | トップページ | 代替プラン »