- PR -

.NET開発のコーディング規則について

投稿者投稿内容
maru
ぬし
会議室デビュー日: 2003/01/27
投稿数: 412
投稿日時: 2004-07-16 15:57
こんにちは。

今回、本格的に.NET環境での開発を行うことなり、現在情報を集めているところです。
で、いつものようにコーディング規則についての情報をいろいろと集めていました。
MSDNのヘルプやインターネット上にコーディング規則として整理された資料を見つけ
これに習おうと考えています。
※整理された方ご苦労様です。ありがたく使わさせていただきます。

で、ふと疑問に思ったのですが、今までのVB開発ではハンガリアン記法を使うことが
主流だったように思います。

変数やオブジェクト名に int、str、txt、btn など、変数やオブジェクトの型がわか
るように。また、定数はフル英数大文字だったり・・・。
しかし、.NET環境でのコーディング規則はハンガリアン記法は使わないなど、今まで
と正反対のルールになっているような気がします。

これらはどういった理由から、このようなコーディング規則にごろっと変わったので
しょうか?ご存知の方おられませんか?※推測でも結構です。
CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2004-07-16 16:16
#二重に送信されてしまったので削除

[ メッセージ編集済み 編集者: CHN 編集日時 2004-07-16 16:18 ]
CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2004-07-16 16:17
たくさんの方に言いたいですが(強くお勧めしたい)、
なんとか命名方はあまりこだわらずに、
変数名でもなんでも「分かりやすい名前」にしましょう。
そのために、長くなってしまっても良いと思うのです。
なるべく、英文の「普通言語」を書くような感じでコーディングするように
心がけると、読みやすいですよ、非常に!!

_________________
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-07-16 16:21
 ハンガリアン記法について、長ったらしくてよけいに混乱する、という説が、.NET Framework以前からですが、あります。ただ、画面上に配置するコントロールについては、プリフィックスを決める方がよいと、私は考えます。

 ハンガリアン記法だと、Cやそれ以前の「型を作れない」言語ではそれなりに型を知る為によかったのですが、OO言語ではクラスを無限に作れますし、型情報はそのまま引き継がれるので明示する必要はないし、キャストしたら意味がない、インタフェイスや継承元クラスでアクセスするとかえってじゃまになるetc...だと思うのですが、いかがでしょう。
えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2004-07-16 17:10
私は昔ある方に「日本人は関数名も変数も漢字で書け、英語より短いから見やすいし直感的にわかりやすいだろう」と言われました。
英語が苦手で辞書を引きながらコーディングしていた私は目からうろこがいっぱい出たのを記憶しています。
ただ、その頃は日本語の名前が通る処理系が少なかったのでMicroSoft使うときはハンガリアンで英語を省略して書いていました。

今の.Netは日本語の名前が通る処理系なので、プライベートでは使ってみるかなと思っています。
本当に見やすいし直感的にわかりやすいですよ。
仕事で使うには他の人の説明・協力・教育が必要そうです。MicroSoftの推奨からも外れるし・・・

さて、ハンガリアン記法ですが、
皆が英語の省略をすることによって亜流がたくさん出て収拾がつかなくなった。
rectangle/point/size などを rect/pt/siz(sz) と省略することで逆にわかりづらくなり、
他の省略と混同する位ならフルスペルで書こうと言う意見もありました。
クラスや構造体をハンガリアン記法で書くときに個人差がありました。
構造体はどんなものでも st / pst で書く人もいました。

要するに「混同しやすい、付ける意味がない」が私の周りの意見ですね。
私はFORTRANからの習慣のLoop変数に i/j/k/l/m/n を復活させて喜んでいます。
maru
ぬし
会議室デビュー日: 2003/01/27
投稿数: 412
投稿日時: 2004-07-16 17:29
こんにちは。

そうですね。ハンガリアン記法はVBの時は当たり前のように使ってたのですが、Javaを
使い出したころから、ものすごく違和感を感じていました。

データの大半がクラス型になるとほとんど使わなくなったり、変数の型をぱっと見て
理解するのが目的だと思うのですが、変数の大半は隠蔽したりset関数/get関数で参照
したり、変数のスコープも小さい範囲なので、結局ハンガリアン記法の必要性が薄れ
てきたように感じていました。

開発環境自身もコード支援機能もしっかりしているので、皆さんの言われるように変
な省略せず長くなってもわかりやすく書くのがいいのでしょうね。

ただ、Jittaさんが言われるように、GUIのコントロール類はプリフィックスを決める
方がよさそうですね。

ジガブー
会議室デビュー日: 2004/07/16
投稿数: 2
投稿日時: 2004-07-16 18:26
こんにちは。初書き込みです。

jittaさんが非常に簡潔に要点を書かれていますが、全く同感です。

特に、「画面上に配置するコントロールについては、プリフィック
スを決める方がよいと、私は考えます」の部分は素晴らしい指摘だ
と思います。(この点を喝破されている文章を私は見たことがあり
ません)

私も最近.netの開発標準を策定すべく調査していたのですが、ハン
ガリアン記法を使わないというルールを画面上のコントロールにま
で適用してしまうとかなり見づらいコードになってしまいます。

なので、ビジネスロジック内のコードはハンガリアン記法は使わな
いが、例外的に画面上のコントロールには使用するといった使い方
が今のところベストではないかと私は考えています。

一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-07-17 16:36
私も、画面のコントロールに関してはtxtとかbtnとか付けてます。

で、ずいぶん遅い反応なんですが、maruさんの最初の書き込みに
引用:

maruさんの書き込み (2004-07-16 15:57) より:
で、ふと疑問に思ったのですが、今までのVB開発ではハンガリアン記法を使うことが主流だったように思います。
変数やオブジェクト名に int、str、txt、btn など、変数やオブジェクトの型がわか
るように。


というのがありますけど、intとかstrってハンガリアン記法じゃないですよね。
VBでハンガリアン記法を使っているソースって見たことないんですが。

スキルアップ/キャリアアップ(JOB@IT)