【C#】コーディング規約って大事
最近は Unity で開発をする機会が多いので、偏った考え方になるかもしれないですが、いくつかのプロジェクトで気になった点を、少し毒強めに書いてみます。
目次
関数編
名前
void a1()
{
// hogehoge
}
- 未だにこんなクソコードを見かけることがあります。万死に値する。
- 内部実装を見なくても、それが何か分かる様にする。
SetFunc系
void SetItem()
{
// foo
}
- Set と名前を付けるのであれば引数を渡してあげてください。
- もし Set するものがない場合、それはSetupなのではないか、一度考え直した方がよいです。
リフレクション
SendMessage("foo");
- 置換作業が大変。呼び出し元の検索が困難に なる。
- 呼び出し先メソッドがコードストリッピングで消えます。
- Attribute 付ければ防げるとはいえ、面倒以外の何物でもない。
- ExecuteEvents.Execute を使えば代用できます。
Enum
enum Type
{
home_a1,
home_a2,
home_a3,
}
関数名と同等に、意味のある名前にする。Type だけでは名前だけで何の Type なのか知ることが出来ません。
まとめ
新しいプロジェクトに入った際に、はじめの目につくところはこんなところ。どこもそんなに綺麗に出来てはいない。人数が増えると難しいのかもしれませんね。それにしても開発環境には恵まれない笑