アカウント名:
パスワード:
なので、インテリセンスでわかるようなことをわざわざ名前に付けるってのはあまりに前時代的。ハンガリアン記法が時代を超越して最初から無意味であったとは思わないが、いくつかのメリットと言われるものも今や価値がない。
コードの流れを追ってるときに、一つ一つの変数に対していちいちインテリセンスで確認しなければいけないとか、アホの極みだと思うが。
変数名を工夫するという点に関して、ハンガリアンは悪とまではいかないけれど、かといってインテリセンスに頼りましょうっていう話じゃないから。
どちらかといえばリアルタイムな静的構文チェックが現代のIDEにそなわっている(LSPもね)。そして変に圧縮せずにちゃんと命名しろというのが世間の流れだと思う。
Suffixでアプリケーションハンガリアン的な説明する場合もまだある。インテリセンスではないが、マウスかざせば型がわかるというのもそう。
システムハンガリアンが先頭に意味が若干不安定なものをつけたことでコードの意味や目的には無意味なカテゴライズが生まれてインテリセンスの検索性を阻害していたのはたしかにそう。
まぁ、最近はVS標準でもJetBrainsみたいに単語区切りでも曖昧にマッチしてくれる(単語の区切りの先頭の文字だけでもマッチしてくれる)ようになってきたことで、先頭に余計なものがついていてもつらくなくなりつつはあるけどね。(MainWindowが mwだけで出てくる様な話ね)
> 変に圧縮せずにちゃんと命名しろ
いやlpsz~をlongPointerToZeroTerminatedString~にしろって話じゃないでしょそんな型から得られる情報を重複して(しかも整合性の保証されない人力で)書くなという話であって
そうね、それはシステムハンガリアンだしそういう話じゃない。「ちゃんと命名」もそういう意味で言ったわけじゃないよ。
名が体を表すものにしましょうと。ただ場合によっては(同一スコープ内で似たのがいて区別するためとか)、ZeroTerminated が含まれてもいいとは思う。(もちろん必要な時だけ)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲを呼ぶ -- ある傍観者
もはやインテリセンスは言語の一部でしょ (スコア:1)
なので、インテリセンスでわかるようなことをわざわざ名前に付けるってのはあまりに前時代的。
ハンガリアン記法が時代を超越して最初から無意味であったとは思わないが、
いくつかのメリットと言われるものも今や価値がない。
Re: (スコア:0)
コードの流れを追ってるときに、一つ一つの変数に対していちいち
インテリセンスで確認しなければいけないとか、アホの極みだと思うが。
Re: (スコア:0)
変数名を工夫するという点に関して、ハンガリアンは悪とまではいかないけれど、
かといってインテリセンスに頼りましょうっていう話じゃないから。
どちらかといえばリアルタイムな静的構文チェックが現代のIDEにそなわっている(LSPもね)。
そして変に圧縮せずにちゃんと命名しろというのが世間の流れだと思う。
Suffixでアプリケーションハンガリアン的な説明する場合もまだある。
インテリセンスではないが、マウスかざせば型がわかるというのもそう。
システムハンガリアンが先頭に意味が若干不安定なものをつけたことでコードの意味や目的には無意味なカテゴライズが生まれて
インテリセンスの検索性を阻害していたのはたしかにそう。
まぁ、最近はVS標準でもJetBrainsみたいに単語区切りでも曖昧にマッチしてくれる(単語の区切りの先頭の文字だけでもマッチしてくれる)ようになってきたことで、
先頭に余計なものがついていてもつらくなくなりつつはあるけどね。
(MainWindowが mwだけで出てくる様な話ね)
Re: (スコア:0)
> 変に圧縮せずにちゃんと命名しろ
いやlpsz~をlongPointerToZeroTerminatedString~にしろって話じゃないでしょ
そんな型から得られる情報を重複して(しかも整合性の保証されない人力で)書くなという話であって
Re: (スコア:0)
そうね、それはシステムハンガリアンだしそういう話じゃない。
「ちゃんと命名」もそういう意味で言ったわけじゃないよ。
名が体を表すものにしましょうと。
ただ場合によっては(同一スコープ内で似たのがいて区別するためとか)、ZeroTerminated が含まれてもいいとは思う。
(もちろん必要な時だけ)