ローカルルールのご紹介2つ目です。
今回はコントロールの名前の付け方です。コントロールというのはTextBoxとかLabelとかそういった,ユーザーインタフェース(画面)に貼り付けるものの事です。
このコントロールに対する名前の付け方も,マイクロソフトのガイドラインには存在していないので,チーム内で話し合って,ローカルルールとして定義しておく必要があります。
なぜマイクロソフトのガイドラインにないのかと言うと,おそらくは,privateな世界のお話なので,そこまで定義する必要がないという事だと思います。
コントロールの名前の付け方は,私は「項目名+コントロール名」としています。
例えば「保存ボタン」に名前を付ける場合は「SaveButton」とします。
メールアドレスを入力するテキストボックスがある場合は「MailAddressTextBox」とします。コントロールの項目名の後に純粋にコントロール名を付けます。
最初に項目名を付けることで,保存ならSaveだから「S」と打ち込むと,インテリセンスに「SaveButton」と出てくるので探しやすいですね。「ButtonSave」だと「B」と打ち込むのは少し違和感があります。今のインテリセンスは優秀なので,「S」と打ち込んでも「ButtonSave」は表示されますが,以前の.NET3.5くらいまでは「S」と打ち込むと「S」始まりの名前しか見えなかったので,探すのが大変でした。その名残もあって「SaveButton」としています。基本的に名前の付け方は「仕様上の名前」+「それがなんなのか?」の順番にするのがいいと思います。要するに「商品テーブル」なら「ProductTable」という感じです。「TableProduct」だとそもそも違和感がありますよね。だからまず「項目名」,そしてその後にそれが何なのか?を示すために「Button」とします。
コントロールがサードパーティー製で,UltraXXXXXXXButtonとかいってとてつもなく長いコントロール名の時があります。その場合も「SaveUltraXXXXXXXButton」としているのかというと,実はそこまではしていません。この辺りは趣味の世界になってくるとは思いますが,そのコントロールがボタンなのか,ラベルなのかテキストボックスなのかが分かればいいと思っています。そして,アプリケーションを作るときに,最初にボタンは「UltraXXXXXXXButton」,ラベルは「LabelEx」などと,拡張されたコントロールを決めておいて,各プログラマーに判断させないようにします。標準のLabelを張り付ける人と,拡張されたLabelExを張り付ける人がいる時点で,その行為こそが問題で,コントロールはどれを使うべきか?という事を,最初にある程度決定してから実装を始めないと,画面事にコントロールの見え方が異なるなど,不細工なアプリケーションになってしまう恐れがあります。
少し話が脱線したようにも思いますが,要するに,どんなボタンが張り付いていようと,語尾には「Button」とのみ命名する。それが私のローカルルールです。
実装例
ボタンの命名は次のようになります。
ラベルの命名の例
テキストボックスの命名の例
これはローカルルールなので,こうしないといけないわけではありません。チームで話あって決めてください。
#02_名前の付け方
#03_名前付けのガイドライン
#04_パスカルケースとキャメルケース
#05_パスカルとキャメルの内訳
#06_パスカルとキャメルの実演
#07_2文字の略語は大文字にする
#08_名前空間のガイドライン
#09_ローカルルールについて
#10_private変数にアンダーバーを付ける
#11_コントロールの名付け
#12_クラス名とファイル名の名づけ
#13_StyleCopAnalyzersについて
#14_StyleCopAnalyzersのインストール
#15_ネームスペースの調整
#16_SA0001_プロパティのビルドのXMLでファイルを指定しておくと消える
#17_CS1591_XMLコメントなし
#18_SA1101_thisが付いていない
#19_不要なルールを非表示にする方法
#20_SA1200_usingの場所
#21_SA1400_アクセス修飾子が明示的に定義されていない
#22_その他不要なルールを非表示
#23_コンストラクタとデストラクタを作成
#24_Private変数とパラメータ変数の命名
#25_中括弧の省略禁止と改行
#26_コメントはスラッシュ4つ
#27_プロパティのXMLコメント
#28_コンストラクタやプロパティの書く順番
#29_アクセスレベルを加味した書く順番
#30_インタフェースのIとファイル名の不一致
#31_最後に