アカウント名:
パスワード:
一貫性がないということは
複数人で作った
という可能性を私は提示したい。
Aという人が最初に作る、そしてBという人が別の部分をつくる。しかしこのときクラス名なんかはとくに一貫性なし。次にCという人間は別の部分をつくるが、一貫性をある程度保持するためにAとBの作ったクラス名を参考にして微妙な命名となる。
こんな感じで作られた可能性は・・・・ないか・・・・
> 一貫性がないということは> 複数人で作った> という可能性
その場合、考慮すべきは「一週間前の自分はもはや他人」ってことですかね。
Aという時期にが最初に作る、そしてBという時期に別の部分をつくる。しかしこのときクラス名なんかはとくに一貫性なし。Cという時期に別の部分をつくるが、一貫性をある程度保持するためにAとBの作ったクラス名を参考にして微妙な命名となる。←イマココ
なんてのはよくある話だと思います。
#数日前、初期化処理中を示すフラグ名を「in_init」と「inInit」で混在させてたことが発覚したばかりなのでAC。
ないない。個人の裁量で作れるのに、一貫性を求めないわけがない。と、俺の感覚では思う。
その辺の綺麗さを求めない人種はプログラマにならないし、まともなスキルではない。とさえ思う。
いや、コピペでつくったんでしょ。実際、某サイトからコピペしてたみたいだし。
#_S/_Eはどこかで見たことあるな…#なんだったかなぁ…
_S → Second_E → Extendedとか?
既存コードに手を入れるときは絶対元のコードに触らないで、元のメソッドをコピって名前の末尾に2を加えたメソッドを追加(someMethod() → someMethod2())して、その中だけで解決する人がいたなぁ…DRY?何それ、ビール?みたいな感じで。
んーそこだけおもしろそうなので頭ひねってみたけど私には答えはでませんでした。。。
_uidToEndMark_S, uidToEndMark_E, uidToInterceptMark_S, uidToInterceptMark_E,
このMark系列との処理の対称性があるっぽいように思えたので、2とかExとかEx2とかではなさそうな気がします。なんでしょね。。。Series/Paralleでもないし、、、Single/Enumerationとか?これどっかで引数とかのsignatureみれないんですかね?
Start/End とかどうだろう。
俺は#2339266なんだけど、過去に見たことある_S/_EもStart/Endだった気がする。
元請けの規約にstart <-> stopbegin <-> endを対として使えってあった。
// _sはCRTのセキュア関数系を真っ先に思いつく。…あ、小文字か。
つかSとEが対になってんのにStart/Endを思いつかないって、/.Jってもう技術者サイトじゃないだなって感じ。
#2339305のACですが、ご、、、ごめんなさい。。。start/endのようなverb?は冒頭にくる固定概念がありましたし、他の方にあるとおりstart/stop、begin/endの方が馴染みがあったので。。。あと、marking処理っぽいのであんまり範囲的な概念もなく、、、ご指摘のコメントの書き方ではEnter/Leaveだったので。。。
# そして // yyyy/MM/dd σ(゚∀゚ )オレ Enterのコメントをみつけた人にもごめんなさい。。。
startとendが対になってるのがキモイんですが、C++のやり過ぎなんでしょうか…
フローチャートならSTARTとEND。
マテ、ENDで終わるなら始まりはRUNだろ?
動詞ではなく名詞なら start / end って結構対にならないかな?開始点("start point")/終了点("end point")みたいに。.Net でも LinearGradientBrush が使ってる。
今までの仕事で書いたコード・使ったコードがコピペ元ってこともあるよ
コピペも複数人で作ったうちに入るのでは。#コピペ元が他の人のコードなら。
関数名を見てみると・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)に設定を変更する必要があります。
「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」
実際によるあるパターンとして (スコア:2)
一貫性がないということは
複数人で作った
という可能性を私は提示したい。
Aという人が最初に作る、そしてBという人が別の部分をつくる。
しかしこのときクラス名なんかはとくに一貫性なし。
次にCという人間は別の部分をつくるが、一貫性をある程度保持するためにAとBの作ったクラス名を参考にして微妙な命名となる。
こんな感じで作られた可能性は・・・・ないか・・・・
Re:実際によるあるパターンとして (スコア:1)
> 一貫性がないということは
> 複数人で作った
> という可能性
その場合、考慮すべきは「一週間前の自分はもはや他人」ってことですかね。
Aという時期にが最初に作る、そしてBという時期に別の部分をつくる。
しかしこのときクラス名なんかはとくに一貫性なし。
Cという時期に別の部分をつくるが、一貫性をある程度保持するためにAとBの作ったクラス名を参考にして微妙な命名となる。←イマココ
なんてのはよくある話だと思います。
#数日前、初期化処理中を示すフラグ名を「in_init」と「inInit」で混在させてたことが発覚したばかりなのでAC。
Re: (スコア:0)
ないない。
個人の裁量で作れるのに、一貫性を求めないわけがない。
と、俺の感覚では思う。
その辺の綺麗さを求めない人種はプログラマにならないし、
まともなスキルではない。
とさえ思う。
Re: (スコア:0)
いや、コピペでつくったんでしょ。
実際、某サイトからコピペしてたみたいだし。
#_S/_Eはどこかで見たことあるな…
#なんだったかなぁ…
Re: (スコア:0)
_S → Second
_E → Extended
とか?
既存コードに手を入れるときは絶対元のコードに触らないで、
元のメソッドをコピって名前の末尾に2を加えたメソッドを追加(someMethod() → someMethod2())して、
その中だけで解決する人がいたなぁ…DRY?何それ、ビール?みたいな感じで。
Re: (スコア:0)
んーそこだけおもしろそうなので頭ひねってみたけど私には答えはでませんでした。。。
_uidToEndMark_S, uidToEndMark_E, uidToInterceptMark_S, uidToInterceptMark_E,
このMark系列との処理の対称性があるっぽいように思えたので、2とかExとかEx2とかではなさそうな気がします。
なんでしょね。。。Series/Paralleでもないし、、、Single/Enumerationとか?
これどっかで引数とかのsignatureみれないんですかね?
Re: (スコア:0)
Start/End とかどうだろう。
Re: (スコア:0)
俺は#2339266なんだけど、過去に見たことある_S/_EもStart/Endだった気がする。
Re: (スコア:0)
# // yyyy/MM/dd 退職済みの人の名前 S
# // 今は使ってないゴミ
# // yyyy/MM/dd 退職済みの人の名前 E
# が多重に入れ子になってるソースはもう見たくないです…
Re:実際によるあるパターンとして (スコア:2, 参考になる)
元請けの規約に
start <-> stop
begin <-> end
を対として使えってあった。
// _sはCRTのセキュア関数系を真っ先に思いつく。…あ、小文字か。
Re: (スコア:0)
つかSとEが対になってんのにStart/Endを思いつかないって、/.Jってもう技術者サイトじゃないだなって感じ。
#2339305のACですが、ご、、、ごめんなさい。。。
start/endのようなverb?は冒頭にくる固定概念がありましたし、他の方にあるとおりstart/stop、begin/endの方が馴染みがあったので。。。
あと、marking処理っぽいのであんまり範囲的な概念もなく、、、ご指摘のコメントの書き方ではEnter/Leaveだったので。。。
# そして // yyyy/MM/dd σ(゚∀゚ )オレ Enterのコメントをみつけた人にもごめんなさい。。。
Re: (スコア:0)
startとendが対になってるのがキモイんですが、
C++のやり過ぎなんでしょうか…
Re: (スコア:0)
フローチャートならSTARTとEND。
Re: (スコア:0)
マテ、ENDで終わるなら始まりはRUNだろ?
Re: (スコア:0)
動詞ではなく名詞なら start / end って結構対にならないかな?
開始点("start point")/終了点("end point")みたいに。
.Net でも LinearGradientBrush が使ってる。
Re: (スコア:0)
今までの仕事で書いたコード・使ったコードがコピペ元ってこともあるよ
Re: (スコア:0)
コピペも複数人で作ったうちに入るのでは。
#コピペ元が他の人のコードなら。
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.
Re: (スコア:0)
犯人の身近なベテランの人が作っていたものをパクって作成したみたいな想像をした