アカウント名:
パスワード:
一貫性がないということは
複数人で作った
という可能性を私は提示したい。
Aという人が最初に作る、そしてBという人が別の部分をつくる。しかしこのときクラス名なんかはとくに一貫性なし。次にCという人間は別の部分をつくるが、一貫性をある程度保持するためにAとBの作ったクラス名を参考にして微妙な命名となる。
こんな感じで作られた可能性は・・・・ないか・・・・
関数名を見てみると・privateメソッドはアンダーバーで始める・暗号化など日曜プログラマには実装が難しい部分はC#サンプルからのコピペなので大文字から・その他自分で書いたところははJavaの流儀という印象。Javaのスキルがある開発者が覚えたてのC#使ってみました、という感じがします。英単語の略し方からしても英語文献を自分で読んでバリバリやるタイプではなさそうですが、開発経験はかなりありそうな。
オフトピ質問ですけど、
・privateメソッドはアンダーバーで始める
個人的に昔から気になってたのですが、これはなに由来なのですかね?
私は初めてみた業務用VisualC++のソースがすでにこれでした。当時「なんで?」と質問したら「しらん」と言われましたが。その後、FlexでもJavascriptでもPHPでもお会いします。。。
# また別の話ですが"My"はperl由来でFA?(VBでもよくサンプルで出会ったけど。。。)
アンダーバーで始める名前って1980年代から存在していて, 当時はOSやターゲットに依存した互換性の無い物に使われていたことが多かったように思います. つまり, 使ってしまったら互換性/移植性に問題が出てくるため, 通常レベルのプログラマでは使ってはいけないというようなルールが設定されることがありました. それらの機能を使う場合には, 共通ライブラリ作成チームとかで互換性を維持できるような上モノをかぶせて提供することで, 問題の局所化を図っていたわけです.
それが転じて, 外部から参照されないもの/単一のソース内で完結しているものの目印として頭のアンダーバーが使われるようになったんだと思います. 今のようにIDEが発達していない時代の工夫ですが, いちいち別の名前を考えるのが面倒とか, 関数/メソッドなどではどの関数/メソッドの下請けなのかが分かりやすいなんて理由で使われているのではないかと.
_で始まるメソッドやマクロは、予告なく消滅したり仕様が変わったりする可能性があることを意味していました。非公式という意味です。実装依存の部分でもよく使われます。
起源はわかりませんが、C言語のライブラリで既に導入されているので、かなり古いことは間違いありませんね。
C言語のライブラリがどーとかいうレベルで言うなら、
グローバル スコープを持ち、_ で始まる名前_ で始まり、その次が大文字の名前__ で始まる名前
は、システムに予約されています [microsoft.com](システムの内部的な名称で使われてるかもしれないから、バッティングしないようにユーザーは使うな、ということです。)
ローカルなスコープなら _小文字 で始まる名前は使えますけど、トラブルを避けるためにも、_で始まる名前は使わないのが無難。
#ライブラリのソースコードとか眺めて真似たりとかしてるとついつい_で始まる名前を使いたくなるんですよね。#私は今は、識別子の最後に_を付ける、というルールでやってます。
システムに予約されています [microsoft.com]
まあ、より正確には(上記URL先のMSDNにも書いてありますが)C90/C99規約ないしC++規約でリザーブされてるということですね。
MSDNから引用
C++ 規格では、次の名前が実装系のために予約されています。グローバル スコープを持ち、_ で始まる名前
_ で始まり、その次が大文字の名前
__ を含む名前(C++ の規定の方が予約名の範囲が大きく、2 連のアンダースコア文字が名前の先頭だけでなくどこにあっても予約名になる。)
これが参考になるかな?C++2003規約?http://stackoverflow.com/questions/228783/what-are-the-rules-about-usi... [stackoverflow.com]
#2339318ですが、レスを読む限りC/C++の規約から連想したり、それより古来(K&Rの変数名定義の注意書きにunderscoreの話があるとかないとか。。。)だったりと由来ははっきりしないっぽいですね。。。# にしても、pythonでは言語仕様になってるんですかね?privateがアンダースコア2個で始めるって。
割と有名なGoogle の python スタイルガイドでは 内部はアンダースコア一個ですね。http://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone... [googlecode.com]
アンダースコア 2個始まりってCだかC++だかでは気軽に使っちゃいけないやつだから pythonでも使わないんじゃないですかね。(というかアンダースコア 2個はじまりはまだ見たことない)
MS系だと__farとか__nearとか__cdeclとか__stdcallとかありました。
由来は知らないけど、C#触っててもReSharper先生に「Privateメンバはprefixに_つけろよ」って怒られるのでたぶんかなり一般的なんだと思う。
なんでその風習が出回ってるのかよくわからないんですが(java由来だと思っているけど)、昔からMicrosoftのガイドラインではprivateメンバは小文字始まりなだけなのでそれに従ってます。(VB.NETは困るんですけどね。)
http://msdn.microsoft.com/ja-jp/library/vstudio/ms229060(v=vs.100).aspx/ [microsoft.com]
まぁあんまりprivateな部分まではごちゃごちゃ規定されていない気はします、実際 .NET Frameworkのソースでもm_始まりもあるし、 ( System.Globalization.TextInfo )_始まりもあるし、 ( System.Web.UI.Design.MobileControls.TextViewDesigner )小文字始まりもあります ( System.Windows.Forms.TextBox )
悪く言うように聞こえたらごめんなさいこういう常識ってもう伝わらなくなっていたのかロートルはとっとと引退しろって言われたようにも思える
アンダースコアって呼べよ!!
privateでは頭にアンスコを着ける
Javaのスキルがある開発者が覚えたてのC#使ってみました、という感じがします。
これ、容疑者の開発スキルとかなり近いんだよなぁ…。元コメ主がそれを知ってたかわからないけど。
江川紹子氏による弁護人へのインタビュー記事 [yahoo.co.jp]より。
ーー彼がC#を使えないというのは、彼にとって有利な事情ですね。(略)ーー彼が普段使っていたプログラミング言語は何ですか。Javaです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
実際によるあるパターンとして (スコア:2)
一貫性がないということは
複数人で作った
という可能性を私は提示したい。
Aという人が最初に作る、そしてBという人が別の部分をつくる。
しかしこのときクラス名なんかはとくに一貫性なし。
次にCという人間は別の部分をつくるが、一貫性をある程度保持するためにAとBの作ったクラス名を参考にして微妙な命名となる。
こんな感じで作られた可能性は・・・・ないか・・・・
Re:実際によるあるパターンとして (スコア:0)
関数名を見てみると
・privateメソッドはアンダーバーで始める
・暗号化など日曜プログラマには実装が難しい部分はC#サンプルからのコピペなので大文字から
・その他自分で書いたところははJavaの流儀
という印象。
Javaのスキルがある開発者が覚えたてのC#使ってみました、という感じがします。
英単語の略し方からしても英語文献を自分で読んでバリバリやるタイプではなさそうですが、開発経験はかなりありそうな。
Re: (スコア:0)
オフトピ質問ですけど、
・privateメソッドはアンダーバーで始める
個人的に昔から気になってたのですが、これはなに由来なのですかね?
私は初めてみた業務用VisualC++のソースがすでにこれでした。
当時「なんで?」と質問したら「しらん」と言われましたが。
その後、FlexでもJavascriptでもPHPでもお会いします。。。
# また別の話ですが"My"はperl由来でFA?(VBでもよくサンプルで出会ったけど。。。)
Re:実際によるあるパターンとして (スコア:1)
アンダーバーで始める名前って1980年代から存在していて, 当時はOSやターゲットに依存した互換性の無い物に使われていたことが多かったように思います. つまり, 使ってしまったら互換性/移植性に問題が出てくるため, 通常レベルのプログラマでは使ってはいけないというようなルールが設定されることがありました. それらの機能を使う場合には, 共通ライブラリ作成チームとかで互換性を維持できるような上モノをかぶせて提供することで, 問題の局所化を図っていたわけです.
それが転じて, 外部から参照されないもの/単一のソース内で完結しているものの目印として頭のアンダーバーが使われるようになったんだと思います. 今のようにIDEが発達していない時代の工夫ですが, いちいち別の名前を考えるのが面倒とか, 関数/メソッドなどではどの関数/メソッドの下請けなのかが分かりやすいなんて理由で使われているのではないかと.
Re: (スコア:0)
_で始まるメソッドやマクロは、予告なく消滅したり仕様が変わったりする可能性があることを意味していました。
非公式という意味です。実装依存の部分でもよく使われます。
起源はわかりませんが、C言語のライブラリで既に導入されているので、かなり古いことは間違いありませんね。
Re:実際によるあるパターンとして (スコア:3, 参考になる)
C言語のライブラリがどーとかいうレベルで言うなら、
は、システムに予約されています [microsoft.com]
(システムの内部的な名称で使われてるかもしれないから、バッティングしないようにユーザーは使うな、ということです。)
ローカルなスコープなら _小文字 で始まる名前は使えますけど、トラブルを避けるためにも、_で始まる名前は使わないのが無難。
#ライブラリのソースコードとか眺めて真似たりとかしてるとついつい_で始まる名前を使いたくなるんですよね。
#私は今は、識別子の最後に_を付ける、というルールでやってます。
Re:実際によるあるパターンとして (スコア:1)
システムに予約されています [microsoft.com]
まあ、より正確には(上記URL先のMSDNにも書いてありますが)C90/C99規約ないしC++規約でリザーブされてるということですね。
MSDNから引用
C++ 規格では、次の名前が実装系のために予約されています。
グローバル スコープを持ち、_ で始まる名前
_ で始まり、その次が大文字の名前
__ を含む名前
(C++ の規定の方が予約名の範囲が大きく、2 連のアンダースコア文字が名前の先頭だけでなくどこにあっても予約名になる。)
これが参考になるかな?C++2003規約?
http://stackoverflow.com/questions/228783/what-are-the-rules-about-usi... [stackoverflow.com]
Re: (スコア:0)
#2339318ですが、レスを読む限りC/C++の規約から連想したり、それより古来(K&Rの変数名定義の注意書きにunderscoreの話があるとかないとか。。。)だったりと由来ははっきりしないっぽいですね。。。
# にしても、pythonでは言語仕様になってるんですかね?privateがアンダースコア2個で始めるって。
Re:実際によるあるパターンとして (スコア:1)
割と有名なGoogle の python スタイルガイドでは 内部はアンダースコア一個ですね。
http://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone... [googlecode.com]
アンダースコア 2個始まりってCだかC++だかでは気軽に使っちゃいけないやつだから pythonでも使わないんじゃないですかね。
(というかアンダースコア 2個はじまりはまだ見たことない)
# yes, fly. no, fry.
Re: (スコア:0)
MS系だと__farとか__nearとか__cdeclとか__stdcallとかありました。
Re: (スコア:0)
由来は知らないけど、C#触っててもReSharper先生に「Privateメンバはprefixに_つけろよ」って怒られるのでたぶんかなり一般的なんだと思う。
Re:実際によるあるパターンとして (スコア:1)
なんでその風習が出回ってるのかよくわからないんですが(java由来だと思っているけど)、
昔からMicrosoftのガイドラインではprivateメンバは小文字始まりなだけなのでそれに従ってます。
(VB.NETは困るんですけどね。)
http://msdn.microsoft.com/ja-jp/library/vstudio/ms229060(v=vs.100).aspx/ [microsoft.com]
まぁあんまりprivateな部分まではごちゃごちゃ規定されていない気はします、
実際 .NET Frameworkのソースでも
m_始まりもあるし、 ( System.Globalization.TextInfo )
_始まりもあるし、 ( System.Web.UI.Design.MobileControls.TextViewDesigner )
小文字始まりもあります ( System.Windows.Forms.TextBox )
# yes, fly. no, fry.
Re: (スコア:0)
悪く言うように聞こえたらごめんなさい
こういう常識ってもう伝わらなくなっていたのか
ロートルはとっとと引退しろって言われたようにも思える
Re: (スコア:0)
・privateメソッドはアンダーバーで始める
アンダースコアって呼べよ!!
Re:実際によるあるパターンとして (スコア:1)
privateでは頭にアンスコを着ける
Re: (スコア:0)
Re: (スコア:0)
これ、容疑者の開発スキルとかなり近いんだよなぁ…。
元コメ主がそれを知ってたかわからないけど。
江川紹子氏による弁護人へのインタビュー記事 [yahoo.co.jp]より。
Re:実際によるあるパターンとして (スコア:1)
# ちゃんと C#らしく書けるかどうかは別の話ですが、文法はかなり似ているので、
# java覚えたての若い子でも読めてはいましたね。
# 命名規約以外でもFinalizeとか実装してたら.NET知らない javaの人だなー、とかバレるポイントはいろいろあるんですけど(IDisposable使うんで)。
彼が普段使ってたのはJavaっていうのは知らなかったですが、普段の仕事がJavaの人なんてたくさんいますからねー。
# yes, fly. no, fry.