未来の自分へのメッセージ
おはようございます。本日の当番、プログラマーのK.Yです。
日々プログラムを記述している私ですが
その際に気をつけていることのひとつに『コメント』があります。
プログラムでのコメントとは例えば
SearchTarget(); // ターゲットを探します
AttackTarget(); // ターゲットに攻撃をします
のように書かれたときの 『 // 』 より後ろに記述されたものになります。
このようにコメントを書くことにより、
ここではどのような処理が行われているのかなどが分かりやすくなります。
ただ上で挙げた例のようなコメントは、
関数名を見たり流れを確認すればなんとなく分かりますので
特にコメントが無くてもそこまで困ることはないと思います。
では、コメントの何を気をつけているのか。
それは『 この処理が何をしているか 』も重要ですが、
それ以上に『 なぜこのような記述になったのか 』ということです。
いくつか例を
例1
// 敵1の行動
{
SearchTarget(); // ターゲットを探します
AttackTarget(); // ターゲットに攻撃をします
}
// 敵2の行動
{
AttackTarget(); // ターゲットに攻撃をします
}
なぜ、敵2は SearchTarget() が無いのでしょうか?
このように書けば迷わずにすみそうです。
// 敵2の行動
{
// 敵2は必ずプレイヤーを狙うので他のターゲットは探さない
AttackTarget(); // ターゲットに攻撃をします
}
このコメントが無い場合、後々見直したときなどに
『 あ、敵2がターゲットを探してないや 』という感じで
敵2に SearchTarget() を追加してしまうかも知れません。
そうなると、敵2がプレイヤー以外のターゲットに向かってしまい
思ったとおりの動作をしなくなってしまいます。
例2
// キャラクターのパラメータ設定
// とりあえず
chara_HP = 100;
chara_Speed = 10;
chara_Power = 10;
なにが "とりあえず" なのでしょうか?
昔、このコメントを書いた自分を問い詰めたくなります。
そんな時はこんなコメントを付け加えておけば焦ることは無いでしょう。
// キャラクターのパラメータ設定
// パラメータが存在していない時はこの数値を使う
chara_HP = 100;
chara_Speed = 10;
chara_Power = 10;
などなど、後から読み返すと
『あの時の私は何を考えてこれを書いたのだろうか?』
と思うコメントに出くわすことがあります。
そしてプログラムを読み返して『あー、こうしたかったのね!』
と思うと同時に『ちゃんとコメント書いとけや!わし!』
となるわけです。
例3(例1・2と少し意味合いは違いますが、他にもこんなのがあります)
// 敵3の行動
{
AttackTargetSword(); // 剣で攻撃します
AttackTargetGun(); // 剣で攻撃します
↑(本当は銃での攻撃)
}
(コピペしてコメントだけほったらかしになっとるがな・・・)
これだけならまだしも、
やっぱり敵3は剣での攻撃は無くそうとなった時、
AttackTargetSword() の行だけを消したら
// 敵3の行動
{
AttackTargetGun(); // 剣で攻撃します
}
この1行だけになってしまいます。
プログラムとコメントが違っているという状況になり
後で見直したときに『ん?』となりそうです。
未来の自分がそのプログラムを見直したとき焦ることがないように
そして、他の人が読んだときにも誤解を与えないように
プログラムだけでなくコメントも的確に書いていきたいものです。
| 固定リンク
「プログラマー」カテゴリの記事
- Bug Fix (2012.05.25)
- 作業量を保存するの法則?(2012.05.24)
- 原点回帰 (2012.04.12)
- すばらしき中華料理の素(2012.03.19)
- やり過ぎにはご用心(2012.03.16)












コメント