トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

スタイル、ネーミング、コメントについて学ぶ【C#】

この本の最後のほうにまとまっていたのでメモ

実戦で役立つ C#プログラミングのイディオム/定石&パターン

ネーミング

Pascal形式

TomaSheep

Camel形式

tomaSheep

フィールド、引数、ローカル変数などの変数系にはCamel形式

それ以外はPascal形式

privateフィールド

流儀がある

private TomaSheep tomaSheep;

private TomaSheep _tomaSheep;

private TomaSheep tomaSheep_;

private TomaSheep m_tomaSheep;

 

public static TomaSheep TomaSheep;??

何を表すものかわかりやすく

currentDate

numberOfMember

MembersCount

Registeruser

ReadLine

bool

isEmpty, isBackground canSave canExecute hasChildren

done found success enabled created exists

printFlagとかflagを入れない。

boolを返すメソッド

isEndOfMonth  IsLocalURL

 

コメント

コードから読み取れない情報を書く

アルゴリズムの出典URL、バグ回避のコードなど

適切な変数名メソッド名を付けたらコメントが必要なくなることも多い。

 不要なコードは消す

XMLコメントという、インテリセンスに自分で説明を表示できるようになるコメントがある。

/// <summary>
/// エンド画面を表示する
/// </summary>
/// <returns>
///点数を指定
/// </returns>

docs.microsoft.com

指針

スコープは短く

変数は利用される場所の近くで宣言初期化

マジックナンバーを使わない

謎の数値。

変更される可能性がない定数はconst,あるものはstatic readonlyだって。

static readonly int MaxTomatoCount=10;

www.hanachiru-blog.com

浮動小数

浮動小数点型(double、float)は2進数だから10進数の切りのいい数字0.1を表せない。

浮動小数点の変数をsum==1.0などと比較するのは危険。

unityでもその話やってたな

decimal型というのがあるらしい。

ネストは浅く

ネストとは入れ子のことだって。

for文の階層などを深くしてはいけない

qiita.com

boolの代わりにintを使わない

はい。

メソッドは短く単機能に

はい!

20行以内目安

50行越えたらヤバイ

メソッドの引数は3つ以内

いっぱい必要な時はオプションパラメータ用のクラスを定義する

フィールドは公開しない

公開する場合はプロパティ。

プロパティってなんだ。

qiita.com

Obsolute(廃止予定)を使わない

はい

原則

KISS シンプルにせよ

DRY 繰り返すな

YAGIN 使うまで作るな

qiita.com

最後に

まだいろいろあったけど、理解できない部分が多かったのでとりあえず終わり。

 VisualStudioのコード整えてくれる機能などはこっちに書いた。

Ctrl+KのあとにCtrl+Dでコードをきれいに!

bibinbaleo.hatenablog.com

この本はVisualStudioの機能をいろいろ紹介してくれていてとてもよかった。

 

名前を付けてくれるサイトの紹介など

bibinbaleo.hatenablog.com