質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

1678閲覧

種類別で変数宣言する際の命名規則

joyboy

総合スコア35

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2020/09/18 16:59

お世話になっております。プログラマー1年目の者です。
掲題の通りですが、種類別で変数を宣言する場合皆様はどうされていますでしょうか?
というのも、業務でコーディングする際以下のような宣言を見ることがあります。

例)販売品と非売品のテーブルを作成する

VB

1'パターン1 2Dim dt_1 As New DataTable '販売品のテーブル 3Dim dt_2 As New DataTable '非売品のテーブル 4 5'パターン2 6Dim dt_a As New DataTable '販売品のテーブル 7Dim dt_b As New DataTable '非売品のテーブル 8 9'パターン3 10Dim dt_hanbai As New DataTable '販売品のテーブル 11Dim dt_hibai As New DataTable  '非売品のテーブル

スネーク記法で統一はされているものの、種類別の変数を宣言する規則がコーダーによってまちまちな印象を受けました。
パターン1、2は宣言右のコメントで補足はありますが、ソースの中ではどちらか分かりづらい上に、コーディングミスのリスクもありそうです。
パターン3は一見してどのテーブルか判断が付くので、メンテナンスもしやすく、この変数名はどうでしょうか?と先輩に質問してみたところ、
奥歯に物が挟まったような回答だったので、結局何が適切な命名方法なのか困惑しています。

命名規則が記法のみ統一されていればよいという決まりのようなので、他の作業者にも分かりやすい変数を付けたいと思っています。
皆様はこういう場合どのような変数名を付けますでしょうか?
拙い質問文で申し訳ありませんが、アドバイス宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/19 04:44

余計なお世話かもしれませんが・・・ 大文字・小文字の区別をしない VB.NET では命名規則を決めても効果半減という感じがします。Visual Studio のエディタが勝手に(?)変えてしまうこともありますし。 業務で VB.NET を使わなければならないというならやむを得ないかと思いますが、VB.NET か C# か選択の余地があるなら C# を選ぶのがよさそうです。
joyboy

2020/09/19 15:33

回答ありがとうございます。 仰る通りVisual Studioのエディタが自動で変えてしまう事はしばしばありますね。 業務の制約上.NET一択となってしまっているので、命名規則に関しては解決策を模索する以外に道はなさそうです。 アドバイスいただき、ありがとうございます。
guest

回答1

0

ベストアンサー

結局何が適切な命名方法なのか困惑しています。

まず、命名規則についてはMicrosoftの公式リファレンスに推奨事項が載っています。
Visual Basic の名前付け規則

皆様はこういう場合どのような変数名を付けますでしょうか?

通常は現場ごとに命名規則を定めるべきです。
命名規則がない現場の場合は、ググるなりしてより一般的と思われる命名規則(上記MSのガイドラインのようなもの)を探し、それに準拠する形をとります。

上記を踏まえた上で、この質問は命名規則の話ではあるものの、要するに変数名を見て内容がわからないという点に問題意識があるんだと思いますが、その認識は全くもって正しいです。

コードを実行するのはコンピュータですが、そのコードを読んで将来保守するのは人間です。
dt_1とかdt_aの内容はコンピュータは理解できますが、人間は理解できません。
人間に理解できない名前を良しとするのであれば、そもそも命名規則自体が不要で、全部a,b,c...と順番に名前をつけても良いはずです。

曲がりなりにも命名規則を定めているような現場であれば、質問文の1,2のようなコードは規則の存在する意味を全く理解できていません。

投稿2020/09/18 17:35

gentaro

総合スコア8947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

joyboy

2020/09/19 15:28

回答ありがとうございます。 >要するに変数名を見て内容がわからないという点に問題意識があるんだと思います 仰る通りです。容量を得ない質問文から本質を的確に推察していただき、ありがとうございます。 認識は正しいとの事で安心しました。 >曲がりなりにも命名規則を定めているような現場であれば、質問文の1,2のようなコードは規則の存在する意味を全く理解できていません。 定められている内容が「スネーク記法で統一する事」というのが唯一の命名規則なのですが、=スネーク記法での変数名なら何でも許されるといった状態なので、gentaroさんの仰るように複数人が「規則の存在する意味を全く理解できていない」という事だと理解しました。 アドバイスいただきありがとうございます。とても勉強になりました。
gentaro

2020/09/19 15:58

何のための命名か、を考えれば「人間が理解するため」に尽きるということですね。 その点を踏まて、例えば dt_hanbai は dt_1 より明らかにマシです。 ただこれも欠点があり、一つは今は生みの親のマイクロソフトすら利用していないハンガリアン記法を使っている点と、もう一つは日本語名のローマ字表記を使っている点です。 https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%82%A2%E3%83%B3%E8%A8%98%E6%B3%95#:~:text=%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%82%A2%E3%83%B3%E8%A8%98%E6%B3%95%EF%BC%88%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%82%A2%E3%83%B3%E3%81%8D%E3%81%BB%E3%81%86,%E6%96%B9%E6%B3%95%E3%83%BB%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B%E6%83%85%E5%A0%B1%E3%83%BB%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97 データ型は基本的に変数宣言や初期化時にわかるし、そうでなくとも最近のIDEであればマウスカーソルを当てればすぐポップアップでわかります。 また、日本語には複数形というものがなく、例えば hanbai が複数の販売記録を指しているのであれば、それに含まれる1件ずつの販売記録と命名上の区別を付けることが出来ません。 英語であれば sales_records や sales_details と sales_record, sale_detail で区別が付きます。 このため、DBの設計などではテーブル名は基本的に複数形の単語を用います。(データテーブルもインメモリのテーブルなので同じ理屈が通用します) 命名については他にも一般的な注意点は色々ありますが、書籍もあるしネット上でも資料を見つけられると思いますので、知れべてみると良いと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問