1read 100read
2012年4月プログラム141: クラス名・変数名に迷ったら書き込むスレ。Part21 (442)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
.netグレープシティコンポーネント (115)
【C++】 DirectX初心者質問スレ Part36 【C】 (913)
懐かしのMS-DOSプログラミング (349)
制御系なら俺に聞いてもいいぜ(10) (485)
HSPプログラムコンテスト2011【part 2】 (193)
初心者の俺が初めて覚えるプログラム言語 (459)
クラス名・変数名に迷ったら書き込むスレ。Part21
- 1 :12/01/22 〜 最終レス :12/04/30
- クラス名、変数名のつけ方に悩んだら書き込むスレです。
命名規則や設計の善し悪しについて議論するのは基本的に禁止。
前スレ
クラス名・変数名に迷ったら書き込むスレ。Part20
http://toro.2ch.net/test/read.cgi/tech/1311942721/
- 2 :
- >>1乙
> 前スレファイル名議論
住所の最後が名前、
パスの最後がファイル名、みたいなもんだな。
できるだけ簡潔なものを選ぶ余地がある。
- 3 :
- 1おつ
>>前1000
極論ではなく一般論
それもコーディングだけではなく自然言語も含めたより広い世界での一般論
極論してるのはそっちだよ
- 4 :
- >>3
馬鹿は来るな
- 5 :
- >>4
じゃあお前が帰れよ
- 6 :
- >>5
だからお前が失せろ
- 7 :
- >>6
だから馬鹿はお前なんだからお前が消えねーとだめだろ
説明しないとわからんほど馬鹿なのか
- 8 :
- >>7
さっさと失せろ馬鹿
- 9 :
- >>8
>>4
- 10 :
- >>9
>>4
- 11 :
- 小学校かここは
- 12 :
- 前スレ>>992
それ同じ事を言い方を変えただけ。
「その機能や概念を示す」のと「機能を読み取れること」のどこが違うんだ。
それなりに複雑な機能をもったクラスやメソッドの機能を短い名前で完全に表現
できないのは当たり前で、仔細な点は捨象して大枠の機能を抽象した名前を付けるに決まっている。
馬鹿じゃないのか。
- 13 :
- >>12
>「その機能や概念を示す」のと「機能を読み取れること」のどこが違うんだ。
例を出して言えば「オイラー方程式」が前者で「理想流体の運動法則」が後者だ
どちらも同じ物を示しているが前者は機能や概念を隠蔽した名称だ
ぜんぜん違うだろ?
そして議論で使うのはどちらが自然かといえば前者だ
後者をいちいち使うのはあまりにもクドい
- 14 :
- 前スレ >>990
> だったらutf8だとかeucだとか文字エンコードも併記すべきな気がするぞ…
併記すべきかどうかは場合による
複数の文字コードを扱っているのであれば、併記しなければ分からない
扱っている文字コードがOSや環境のデフォルトだけであり、
あるファイルフォーマット内の文字列部分を処理しているなどなら、
文字エンコードを併記する必要性は感じない
- 15 :
- >それなりに複雑な機能をもったクラスやメソッドの機能を短い名前で完全に表現
>できないのは当たり前で、仔細な点は捨象して大枠の機能を抽象した名前を付けるに決まっている。
あと一応言っておくが俺はクラス名やメソッド名を短く省略しろとは言っていない
狭い範囲、スコープに限定された文脈の中では短いものを使えと言っているのだ
>馬鹿じゃないのか。
それを読み取れなかったお前がBAKAです
- 16 :
- >>15
まだいたのか
消えろ馬鹿
- 17 :
- >>16
>>16
- 18 :
- >>17
>>16
- 19 :
- 論破されると罵倒するしかできないってなんか可哀想だな
神様ももうすこしIQ平等に分けてあげればよかったのに罪なことするぜ
- 20 :
- >>13
なるほど俺の誤解みたいだね。っていうかまさかそこまで馬鹿とは思わなかったw
要するに、
String.GetLength()
などという機能をそのまま表現した名前はよくないから、
String.func001()
String.YamadaTarou001()
のように単なる識別子以上のものではない名前を付けろという訳だ。
関数名と機能の対応を参照するバインダーがないと読めないコードが存在するって
都市伝説、あれは本当だったんだなw
こんなガチ馬鹿がどうしてこんなスレにいるんだろう。
- 21 :
- >>20
>>15
ちょっと前のレスも読めない馬鹿がなんでいまだに生きてるんだろう
- 22 :
- >>21
よ馬鹿
- 23 :
- >>22
>>19
- 24 :
- >>23
>>19
- 25 :
- >>20
それはクラスというひとつの大きな単位の中のメソッド名ですよね
>>15 で彼は
> あと一応言っておくが俺はクラス名やメソッド名を短く省略しろとは言っていない
> 狭い範囲、スコープに限定された文脈の中では短いものを使えと言っているのだ
と言っているので、それは反論の方向としては間違っていると思うのですが
たとえば、
void func () {
*** = String.GetLength()
場合の***の部分などの場合の事だと思います
- 26 :
- >>21
間違いを指摘されると「俺の真意はお前の理解と違う」ってか。
みっともない奴だな。
前スレの>>992は俺が書いた>>982に対する反論なんだから、そんな言い訳が通用する訳がない。
どんなクルクルパーだよ。
- 27 :
- それから、メソッドやブロックのスコープ内でも明示的な名前を使え、
なんて言ってる奴が一人でも居たか?
そんな奴いねえよ一人も。
誰と戦ってるつもりなんだろうなまったく。
- 28 :
- http://awabi.2ch.net/test/read.cgi/poverty/1327050821/3
- 29 :
- スコープが広域であれば、略さず完全な名前を付ける
superHogeCountWithPiyo
pugeraDescription
スコープの狭さに応じて単語を省く
例えばローカル関数であれば、
countWithPiyo もしくは count
pugeraDesc または desc
できる限り略語を使わない
×superHogeCountWithPiyo → shCountWithPiyo
×pugeraDescription → pDesc, pdesc
そもそも短い単語を略す必要はない
×cnt ○count
×idx ○index
- 30 :
- ○ c
○ i
- 31 :
- ・・・とは書いてみたものの、狭域スコープでは hogeCount を nHoges みたいに略すことがある
単語を略すのであれば、number (of) → num みたいな中途半端な略し方ではムラが生じてしまう(numでは生じないだろうが)ので、一文字 number (of) → nまで略す
その単語の略語にムラが生じることはないだろうと自分で確信が持てるのであれば、使うことはある
例えば、Description は desc 以外に略語を持たないと判断できるし、Information は info 以外の略語を持たないので、狭域スコープではこれを使う
Temporary は temp と tmp が存在するので、略したいときは 一文字「t」まで略する
- 32 :
- >>30
ごく短い、例えば3行以下の関数ローカルスコープであれば一文字でもかまわない
またはループカウンタとしてのcやiは、自分では許可している
- 33 :
- > ごく短い、例えば3行以下の関数ローカルスコープであれば一文字でもかまわない
- 34 :
- 変数名をゴッチャリ飾って区別しないといけないようなのは、
既にメソッドが大きすぎるか、メンバ変数の場合はそれらが多すぎる。
fooBarBazList =
appleBeerList =
codeDoorList =
みたいに併記しているような場合、うまくいくと
list =
これで住むような可能性がある。
- 35 :
- >>34
うむ。コーディングの技術がしっかりしてればほとんどの識別子は最低限まで縮めても問題は起こらないよね
というか問題が起こらないように作れると良い設計になってることが多い
- 36 :
- いやいや大きいとか多いとかじゃなくて対象コードブロックの中に機能や状態を持ち込み過ぎ
struct A{int x,y;}a;のaじゃなく
後から読み解く奴の身になってx,yのどちらか必要な方だけを取り出して書けよと
- 37 :
- 現実問題、英語で言ったら形容詞抜きの"list"だの"count"だので十分説明の機能を果たすような
クラスはまずあり得ない。
皆無とは言わないが、むしろ例外的。
そういう特殊な前提がないと成立しないようなアホみたいな議論はするだけ時間の無駄。
- 38 :
- >>35
丁寧なコメントが消臭剤でしか無いような場合があるのと同様に、
説明的な変数が消臭剤でしか無いような場合があるな。
早い段階ですべきは、元の悪臭漂うクソ構造を改めること。
- 39 :
-
就活中
(p)http://livedoor.blogimg.jp/jin115/imgs/3/1/31a6f8e6.jpg
就職後
(p)http://livedoor.blogimg.jp/jin115/imgs/2/b/2b790359.jpg
街の人(やらせ業者)募集中です
- 40 :
- その画像独り歩きしてるけど
2枚の画像は1年間開いてるからね
その娘は就活うまく行ってそのインタビュー場所の近くの会社に勤めてるって事
- 41 :
- 後ろに居る男も横断歩道の向こう側にいる人も
インタビュワーも停まってる車も天候も変わってないな
- 42 :
- 偶然ってあるもんなんだな
- 43 :
- Google Code Searchがなくなったのは痛すぎるな。
とりあえずつけたクラス名やメソッド名が外人的にあり得るか?否かをしらべるのに便利やった。
- 44 :
- ええーーっ!! ちょっと見ない間に無くなったのか!
- 45 :
- google code
- 46 :
- >>30
count_hogeもcHogeもほとんど見易さ変わらないだろ
- 47 :
- ch
- 48 :
- >>47
もはやなんだかわからんだろそれ
- 49 :
- 決まってんだろ
チャンネルだよ
- 50 :
- 入門書とか読むと、よく「チャネル」って書いてあるよね
その発音の方がより本物に近いのは分かるが、なんか気取ってて嫌
- 51 :
- 俺はにちゃねらー
- 52 :
- お前らはアニモー。
- 53 :
- >>50の中では「JISに合わせること=気取っている」なのか
- 54 :
- 前スレの、chrとかcharの974です。
まさか論争に発展するとは見通し甘かった。
私が書いているのはゲームの為の周辺ツールで、個人作業です。
ですから厳密な命名規則が欲しいって程でもないんです。
#報告
一度フルスペルで書いたのですが、書き進める内に用途が広がって
キャラクターの意味に相応しくなくなったので一切なくなってしまいました。
計画性のないプログラムは、これだから・・・!
- 55 :
- >>53
違う
JISに合わせる、合わせないは全く関係ない
チャネルという言い方が気取っているように感じるだけ
>>53の中ではたった一例を挙げて、それがたまたまJISに合ってただけで
「JISに合わせること=気取っている」と解釈するのか
- 56 :
- >>54
論争になったらなったで、それを話題に盛り上がる訳で、面白いものなのだよ・・・
- 57 :
- hashtable = {
"foo.name": "value1",
"foo.text": "value2",
"bar.name": "value3",
"bar.text": "value4"
}
みたいなデータから
{ "foo.name": "value1", "foo.text": "value2" }
だけをとりだす関数の名前を考えて下さい。
prefix = "foo."
print func(hashtable, prefix) #=> { "foo.name": "value1", "foo.text": "value2" }
今の候補
・get
・matched
・retrieve
お願いします。
- 58 :
- find
- 59 :
- find_by_key_prefix
- 60 :
- 複数候補だからenumかfindfirst→findnext
- 61 :
- >>57
PickUpPrefixMatches
- 62 :
- filterByPrefix
- 63 :
- ウィンドウが画面の外に出ないように防ぐ処理
をお願いします
- 64 :
- 関数名?引数や返り値は何?
- 65 :
- 関数名です
戻り値なし、引数は画面のRECTとウィンドウのRECTです
- 66 :
- その関数の副作用は何?
- 67 :
- 「ウィンドウが画面の外に出ないように防ぐ処理」じゃなくて
「(ウィンドウが画面の外に出ないように防ぎつつ)ウィンドウ移動する処理」なのでは?
- 68 :
- >>57
Perlっぽいけどfilterできんじゃねーの?
- 69 :
- 要するにそういう細かいことをまとめて行う処理です
- 70 :
- ちっとも細かくないやん 基本処理にしか見えん
- 71 :
- ではそろそろ
ウィンドウが画面の外に出ないように防ぐ処理
をお願いします
- 72 :
- MoveWindowInScreen
- 73 :
- avoid-tilesaw
- 74 :
- void MoveWindowInsideScreen(
const RECT & windowRect,
const RECT & screenRect);
- 75 :
- void MoveWindowInsideScreen(
const RECT & windowRect,
const RECT & screenRect,
RECT * pOutput);
- 76 :
- >>71
消えろゴミ
- 77 :
- なんでMOVEなんだよw
- 78 :
- void ウィンドウが画面の外に出ないように防ぐ処理(
矩形 const & ウィンドウ,
矩形 const & スクリーン,
矩形 & 結果) ;
いい加減英語識別子から脱却しろ
いちいち名前付なんてくだらない作業で悩む必要がなくなって捗るぞ
- 79 :
- preventとかcropとかかなぁ?captureはちと違うか。
- 80 :
- confine
- 81 :
- 「ウィンドウが画面の外に出ないように防ぐ処理」って何だかよく分からないな。
この手のことをする場合、例えばWindowsなら普通は、
(1) 移動中にデスクトップの上下左右いずれかの隅に達したら、その方向にはそれ以上
移動できないようにする。
(2) 移動完了(マウスアップとか)時、ウィンドウがデスクトップの上下左右のいずれかの隅を
超えていたらデスクトップの範囲内に戻す。
のどちらかじゃいかと思うんだが、ニュアンス的にどっちとも取れないな。
- 82 :
- >>71
KeepInsideDisplay()
- 83 :
- ProcessingPreventedSoThatAWindowMeyNotComeOutOfAScreen
- 84 :
- 略してMoveWindow
- 85 :
- 日本語の段階で既におかしいのにそれを英語にしても無駄
- 86 :
- 2つのリスト(配列でもいいですが)a=[a1, a2, a3, ・・・] b=[b1, b2, b3, ・・・] を
c=[a1, b1, a2, b2, a3, b3, ・・・] の様に1つのリストに合成するのは interleave ですが、
この逆方向の様にリスト c をリスト a とリスト b に分ける関数の名前は何が良いでしょうか
単純にリスト c のある要素を境に2つに分けるなら split や break が適切だと思いますが・・・
とりあえず今のところ、トランプカードを配る様に見えるので deal と名付けていますが、
もっと適切な名前はありますか?
- 87 :
- どういう基準で分けるかぐらい書けば?
- 88 :
- >>87
いや、だから interleave とは逆なんですけど・・・
c=[a1, b1, a2, b2, a3, b3, ・・・] を
a=[a1, a2, a3, ・・・] と b=[b1, b2, b3, ・・・] に分ける
- 89 :
- >>87
言葉で説明すると
リストcの n/2 番目の要素をリストaのn番目の要素に
リストcの (n/2)+1 番目の要素をリストbのn番目の要素に入れる
そんな分け方です
- 90 :
- すいません、間違ってました
リストcの 2n 番目の要素をリストaのn番目の要素に
リストcの 2n+1 番目の要素をリストbのn番目の要素に入れる
でした
- 91 :
- >>86
distribute なり divide とかでいいんじゃね?
- 92 :
- Cutでいいよ
- 93 :
- プロジェクト名ってどうやって決めてますか?
公開するとなるとさらに慎重になりますよね
- 94 :
- >>86
interleave ⇔ deinterleave
で良いのでは?
単に1つ(or n)おきに取り出すだけならdecimateもありだと思う。
- 95 :
- uninterliveか、 >>94 が挙げている deinterleave か、迷った。
>>94
decimateはdec-に「10ごと」という意味があるのと、
その10ごとの1を「処刑する」という意味があるのがよろしくない気がする。
- 96 :
- decimateは普通のプログラマはあまり使わないかも知れないが、間引きを表す術語みたいなものなんですよ。
- 97 :
- >>93
状況次第だけど、ソフトウェアの名前そのまま、もしくは逆に一般名詞にすることが多いかなあ。
- 98 :
- あえて全然関係ないコードネームにする
そうするとカフェで仲間と話し合うときにハッカーっぽさがましてカッコイイ気分になれる
- 99 :
- 一周を[0, 1)で正規化した角度のことをなんて名付けるべきかな
(0.5なら弧度法でのpiに、1.0なら弧度法での2piに相当する)
- 100read 1read
- 1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
ExcelVBAで勤務表を作ろう (324)
JavaScriptは消滅すべきだったよな (106)
【Perl,PHP】LLバトルロワイヤル21【Ruby,Python】 (775)
★お前らJavaはJNIで組もうぜ★ (821)
VBプログラマ質問スレ(Ver.6.0 まで) part58 (150)
懐かしのMS-DOSプログラミング (349)
--log9.info------------------
一人でタバコ吸うとき何しながら吸うよ!!? (251)
ZIPPOを無くした経験を語る (192)
JTキャンペーンの煙草が届いた人が報告するスレ (695)
なにで火を点けようか (624)
第4喫煙所[総合雑談スレッド] (890)
パイプグッズ専用スレ (227)
コーンパイプpart3 (723)
【パイプ】超!カーボン論【激論】 (100)
【ぱいぷ】荒島大先達に聞け!【珍脳者】 (165)
教えて自慢のタバコ芸!! (129)
【ライター】煙草のおまけスレ3個目【灰皿】 (103)
リトルシガー総合 (429)
未成年の喫煙者 3 (807)
万人受けする煙草 (157)
タバコの銘柄っぽい言葉 (176)
煙草研究所(´・д・`) (158)
--log55.com------------------
【朝日新聞】韓国、PCRキットの提供検討 日本から「要請」が前提[4/25]
【ゲーム】 韓国の新作ゲーム「鬼殺の剣」、日本マンガ盗作疑惑を開発会社が否定(画面あり)★2[04/25]
【杉村太蔵】「日本のコロナ感染拡大防止策は国内外から評価を受けてもいい」「台湾、韓国とは人口規模が違う」 [4/26]
【ハンギョレ/韓国】「728万人の雇用危機…459万人は失業手当もらえず」 [4/26]
【文春】「北朝鮮は韓国からの秘密資金39億ドルで核開発した」“金正恩の元金庫番”が衝撃の告白[04/26] [ろこもこ★]
【国際】 中国、コロナで世界からバッシング…「経済で中国とカップリング状態」の韓国の選択は? [04/26] [荒波φ★]
【新型コロナウイルス】韓国、PCR検査キットの支援を検討。日本から「要請」が前提(朝日新聞社合弁企業ハフポスト日本語版)[4/26] [右大臣・大ちゃん之弼★]
【日本からはポッポ】「私たちは高く称賛します」世界各国の政党指導者が中国を称賛 感染症の抑制と国際支援をたたえる[4/26] [右大臣・大ちゃん之弼★]
-