ちゃんとコメント書こうかなって

アバター
spaaaark・∀・
記事: 66
登録日時: 12年前
住所: 埼玉
連絡を取る:

ちゃんとコメント書こうかなって

投稿記事 by spaaaark・∀・ » 11年前

トピックで出したメカスロを作るために、再びC++を触りだしました。
過去のソースコードを見ると、自分が書いたコードでも何をやっているかよく分からないという事があるというのは
よく聞く話です。僕が以前作ってた物もそうでした。そこで今度のプロジェクトではちゃんとコメントを書こうって決めたのです。

CODE:

#include "_header\keyexport.h"
/* CKeyExport_Sクラス ///////////////////////////////////////////
// 目的:各クラスへのキー入力状態を出力             //
// 変数:m_NowKeyState[256]; キーが連続で入力されているフレーム //
///////////////////////////////////////////////////////////////*/

CKeyExport_S::CKeyExport_S(){
/* コンストラクタ ///////////////////////////////////////////////
// 引数:なし                          //
// 動作:変数m_NowKeyStateを初期化する             //
///////////////////////////////////////////////////////////////*/
	for(int i=0;i=LessFlame);
}
int CKeyExport_S::ExportFlame(int KeyHandle){
/* ExportFlame関数 //////////////////////////////////////////////
// 引数:p1;入力をチェックするキーのハンドル          //
// 動作:指定のキーが連続で押されているフレーム数を返す     //
// 戻値:指定したキーが押されているフレーム数を整数値で返す	  //
///////////////////////////////////////////////////////////////*/
	return m_NowKeyState[KeyHandle];
}
プレビューするとちょっと四角がずれましたが気にしません。
実際にコメントを書くとやっぱり面倒なんですよね。ちょっとやっただけで思ってしまいます。
ですが大規模プログラムの訓練だと思って頑張って続けて行こうと思います。


アバター
usao
記事: 1889
登録日時: 12年前

Re: ちゃんとコメント書こうかなって

投稿記事 by usao » 11年前

まぁ色々言われてますが,コメントについては
何のためのコメントなのか?っていうのが,この場合「自分のため」Onlyなのでしょうから
自分が必要だと思うものを書くぜ! でいいとは思います.

私は自身の記憶力の無さには自信があるので,コメントが嘘になる危険性等と戦わねばならないのを承知の上で
必要と思うことはかなり多めにでも書きますね.
(コードだけ見ても何が何やらさっぱりわからん分野的なのを日頃やってるというのもあります.
 自分も下手すると明後日くらいにはわからんかもしれんし,他人が読むときにはもはや迷宮.)

kiuri
記事: 20
登録日時: 12年前

Re: ちゃんとコメント書こうかなって

投稿記事 by kiuri » 11年前

コメントは見たら当たり前の部分は書かないようにしています。
それに伴いできるだけパッと見て理解できる長さや名前のコードしか書かないようにしました。
大したものを作ったことがないというのもあってこれで十分理解できてますよ。

FUNK
記事: 25
登録日時: 12年前

Re: ちゃんとコメント書こうかなって

投稿記事 by FUNK » 11年前

自分用のコメントならば自由でいいんではないでしょうか?
こういう話をすると「私のやり方が一番だい!」論が集まってきてワヤワヤしがちですが、
そういうのに惑わされず、自分に一番相応しいのを時間をかけて見つけ行けばいいと思います。

私は個人的になプログラミングでは、コメントはイタリア語で書いています。
イタリア語の勉強がてらです。
こんなスタンスも有りだと思います。

ISLe
記事: 2650
登録日時: 14年前

Re: ちゃんとコメント書こうかなって

投稿記事 by ISLe » 11年前

やー他人(未来の自分含む)に見せるためだと思っちゃいましたよ。
だったらどうしてわざわざ書き方を他人に尋ねるのでしょうね。

(追記)
わたしも本人のやりたいようにやれば良いという意見には賛成です。
他の人がそうしている理由を理解した上で、取り入れられるところを取り入れていくのが良いと思います。
最後に編集したユーザー ISLe on 2014年3月03日(月) 23:32 [ 編集 6 回目 ]

アバター
spaaaark・∀・
記事: 66
登録日時: 12年前
住所: 埼玉
連絡を取る:

RE: ちゃんとコメント書こうかなって

投稿記事 by spaaaark・∀・ » 11年前

皆さんの意見を聞いてもう一度修正してみました。

CODE:

/* header */
#pragma once
#include "ISingleton.h"
#include "keyinput.h"
class CKeyExport_S : public ISingleton{
// [act]各クラスへのキー入力状態を出力
//		シングルトンで管理されている(_Sの意味)
	friend ISingleton;
// CKeyInput_SでKeyStateUpdate関数を使用させるためのfriend宣言
	friend CKeyInput_S;
	CKeyExport_S();
	~CKeyExport_S(){};
	void KeyStateUpdate(char* pInput);
// DxLibのキーボード取得時の配列マジックナンバー(m1)
	static const int m_GetInputArrayMax_C = 256;
// キーが連続で入力されているフレーム(m2)
	int m_NowKeyState[m_GetInputArrayMax_C];	
public:
	bool ExportKeyState(int KeyHandle,int LessFrame=1);
	int ExportKeyStateFrame(int KeyHandle);
};

/* C++ source */
#include "_header\keyexport.h"
CKeyExport_S::CKeyExport_S(){
	for(int i=0;i=m_GetInputArrayMax_C) return false;
	return (m_NowKeyState[KeyHandle]>=LessFrame);
}
int CKeyExport_S::ExportKeyStateFrame(int KeyHandle){
// [act]指定のキーが連続で押されているフレーム数を返す。
//		p1が異常値なら-1を返す。
	if(KeyHandle=m_GetInputArrayMax_C) return -1;
	return m_NowKeyState[KeyHandle];
}
最初に書いたものと比べて量は減りましたが、なんだか見やすくなった気もします。

アバター
せんちゃ
記事: 50
登録日時: 14年前

Re: ちゃんとコメント書こうかなって

投稿記事 by せんちゃ » 11年前

すいません、超どうでもいい話ですが
static const int m_GetInputArrayMax_C = 256;
これ、静的変数ならm付けしないほうがいいと思います。

コメントが最初よりもドキュメントらしさが感じられるようになってきた気がしていますが、
すいません。
これは本当に個人的な好みなので全然スルーしちゃっていいです。
単なる記述の位置の話なのですが、自分だったら

CODE:

// [act]指定のキーが連続で押されているフレーム数を返す。
//      p1が異常値なら-1を返す。
int CKeyExport_S::ExportKeyStateFrame(int KeyHandle){
    if(KeyHandle=m_GetInputArrayMax_C) return -1;
    return m_NowKeyState[KeyHandle];
}
って書きたいです

そういえばp1とかp2ってパラメータのことですか?
普通に変数名にしたほうが混乱しないで済むと思いますよ
最後に編集したユーザー せんちゃ on 2014年3月03日(月) 23:58 [ 編集 2 回目 ]

アバター
usao
記事: 1889
登録日時: 12年前

Re: ちゃんとコメント書こうかなって

投稿記事 by usao » 11年前

>static const int m_GetInputArrayMax_C = 256;
>これ、静的変数ならm付けしないほうがいいと思います。

私は逆に ms_XXX って書きます.モビルスーツみたいでかっこいい.

ISLe
記事: 2650
登録日時: 14年前

Re: ちゃんとコメント書こうかなって

投稿記事 by ISLe » 11年前

わたしならこんな感じにしますね。
こういう設計はしないので変な感じですが。

CODE:

/**
 *	キーの連続押下判定機能を提供する
 */
class CKeyExport : public ISingleton {

    CKeyExport();
    virtual ~CKeyExport() {};
    void Update(char *pInput);

    static const int KEY_NUM = 256; ///= KEY_NUM) return false;
    return (GetNumFramesHoldDown(Key) >= NumFrame);
}

/**
 * キーを押し続けているフレーム数を取得する
 *
 * @param Key キーを示す値
 * @return 指定したキーを押し続けているフレーム数
 *         何らかのエラーが発生した場合は-1
 */
int CKeyExport::GetNumFrameHoldDown(int Key) {
    if (Key = KEY_NUM) return -1;
    return countHoldDown[Key];
}
最後に編集したユーザー ISLe on 2014年3月04日(火) 18:04 [ 編集 1 回目 ]