クラス名、変数名のつけ方に悩んだら書き込むスレです。
命名規則や設計の善し悪しについて議論するのは基本的に禁止。
前スレ
クラス名・変数名に迷ったら書き込むスレ。Part27
http://echo.2ch.net/test/read.cgi/tech/1476572490/
探検
クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1ネミ子
2017/05/07(日) 18:01:52.03ID:akuyRduv297デフォルトの名無しさん
2018/08/17(金) 20:02:32.47ID:zD2h2oDf298デフォルトの名無しさん
2018/08/17(金) 20:39:16.72ID:nnyWdGJK299デフォルトの名無しさん
2018/08/17(金) 21:36:39.65ID:zD2h2oDf なんや結局謎のままやんけw
300デフォルトの名無しさん
2018/08/17(金) 22:29:26.14ID:V/i+u2Gb この人はPredicateとDelegateを混同してるのではないだろうか
301デフォルトの名無しさん
2018/08/17(金) 23:06:48.61ID:hTsqlHEP302デフォルトの名無しさん
2018/08/17(金) 23:27:59.94ID:QIXEpzAH303デフォルトの名無しさん
2018/08/17(金) 23:33:12.06ID:7gyaHV45304デフォルトの名無しさん
2018/08/17(金) 23:36:41.12ID:QIXEpzAH まーた恥の上塗りが始まった
305デフォルトの名無しさん
2018/08/17(金) 23:48:25.74ID:w9bXgbFB >>303
このスレでも何度も書いたことだが、
英語という言語は日本語のように新しい概念に対して語彙を増やして対応する言語じゃない。
同じ言葉を文脈によってまったく別の意味に使い分ける傾向が強い言語だ。
だから、
>あくまでpredicateは一般名詞
これナンセンス。
だから何度も言ってるだろう。
プログラミングの分野では(数学と同じく)boolで評価する関数のことをpredicateを言うの。
いい加減恥を知った方がいいよ。
このスレでも何度も書いたことだが、
英語という言語は日本語のように新しい概念に対して語彙を増やして対応する言語じゃない。
同じ言葉を文脈によってまったく別の意味に使い分ける傾向が強い言語だ。
だから、
>あくまでpredicateは一般名詞
これナンセンス。
だから何度も言ってるだろう。
プログラミングの分野では(数学と同じく)boolで評価する関数のことをpredicateを言うの。
いい加減恥を知った方がいいよ。
306デフォルトの名無しさん
2018/08/17(金) 23:51:44.07ID:QIXEpzAH しかし夏だねえ
307デフォルトの名無しさん
2018/08/17(金) 23:53:05.85ID:9uI3JlhI >>303
言語機能か一般名詞かの違いしかないと思ってるんならそれは混同してるってことだよ
言語機能か一般名詞かの違いしかないと思ってるんならそれは混同してるってことだよ
308デフォルトの名無しさん
2018/08/18(土) 00:08:59.00ID:LOkpLZfD だいたいコードの中の普通の日本語でいう述語なんか出てこないだろうってw
お前はコードの中に、
(空は)青い
(地球ま)回る
とか書くのかとw
ダイクストラ先生の時代からコードってのはデータと手続きで出来てるんだよw
それは宣言型の言語だろうが同じこと
お前はコードの中に、
(空は)青い
(地球ま)回る
とか書くのかとw
ダイクストラ先生の時代からコードってのはデータと手続きで出来てるんだよw
それは宣言型の言語だろうが同じこと
309デフォルトの名無しさん
2018/08/18(土) 00:13:12.08ID:QJ6qXFdU なんやまたどえらいアホが現れたなあw結構結構wwww
310デフォルトの名無しさん
2018/08/18(土) 00:44:17.20ID:N7wT67Om >>303
キミ、「述語」って言葉の意味すらよく分かってないんじゃない?
キミ、「述語」って言葉の意味すらよく分かってないんじゃない?
311デフォルトの名無しさん
2018/08/18(土) 01:00:41.41ID:MgtGkUH1 混同というのはID:nnyWdGJKに対して言ったんだけどな
余計な飛び火をさせてしまった
余計な飛び火をさせてしまった
312デフォルトの名無しさん
2018/08/18(土) 01:06:13.96ID:MgtGkUH1313デフォルトの名無しさん
2018/08/18(土) 01:10:28.56ID:MgtGkUH1314デフォルトの名無しさん
2018/08/18(土) 01:13:07.29ID:CxOhf3ss あらゆるメソッド名、クラス名にSentenceと名付けてしまうかのような暴挙
315デフォルトの名無しさん
2018/08/18(土) 01:14:41.34ID:QJ6qXFdU あらゆるメソッド名、クラス名にSentenceと名付けたらコンパイル通らんやんwwww
アホしかおらんのかここはwwww
アホしかおらんのかここはwwww
316デフォルトの名無しさん
2018/08/18(土) 01:16:34.23ID:tAHy4SpI その理屈で言えば>>266もコンパイル通らんやろ…
317デフォルトの名無しさん
2018/08/18(土) 01:18:38.83ID:QJ6qXFdU318デフォルトの名無しさん
2018/08/18(土) 01:25:33.36ID:tAHy4SpI319デフォルトの名無しさん
2018/08/18(土) 01:27:40.92ID:QJ6qXFdU320デフォルトの名無しさん
2018/08/18(土) 01:28:57.12ID:N7wT67Om つーか何度も言ってるが、C#で多用されるLINQの引数型としてPredicateはあちらこちらで使われるんだから
それに別の意味を持たせて再定義してる時点で脳味噌スッカスカだろと
それに別の意味を持たせて再定義してる時点で脳味噌スッカスカだろと
321デフォルトの名無しさん
2018/08/18(土) 01:30:10.58ID:tAHy4SpI322デフォルトの名無しさん
2018/08/18(土) 01:44:39.95ID:X2Z3Uu8P delegate(委任、委譲)とpredicate(断定)の区別すら出来ない子がいるとは…一般名詞とか言語仕様以前の問題だろう
中学生ぐらいで英語力が止まってるのか?
中学生ぐらいで英語力が止まってるのか?
323デフォルトの名無しさん
2018/08/18(土) 01:56:59.73ID:LOkpLZfD >>312
何を指すも英語はそんな文脈に依存して意味が変わる単語だらけ
atomic, bit, function
日本語は英語より文脈に依存する表現を好まない傾向が強い
分割不可能性みたいに明示的な漢語を作り出すか、ビットのようにカタカナ表記にするか
(日本語でビットといえば普通文脈に関係なくそのビットしかない)関数のように音訳する
何を指すも英語はそんな文脈に依存して意味が変わる単語だらけ
atomic, bit, function
日本語は英語より文脈に依存する表現を好まない傾向が強い
分割不可能性みたいに明示的な漢語を作り出すか、ビットのようにカタカナ表記にするか
(日本語でビットといえば普通文脈に関係なくそのビットしかない)関数のように音訳する
324デフォルトの名無しさん
2018/08/18(土) 02:12:07.58ID:LOkpLZfD 電動ドライバーのビットはあるかw
でも日本語が同じ言葉より語彙を増やすことを好む言語なのはちょっと考えれば
大方同意するよね
スレ違いなのでこれで終わりで
でも日本語が同じ言葉より語彙を増やすことを好む言語なのはちょっと考えれば
大方同意するよね
スレ違いなのでこれで終わりで
325デフォルトの名無しさん
2018/08/18(土) 02:14:44.60ID:LOkpLZfD × 同じ言葉より語彙を増やすことを好む
〇 同じ言葉を使いまわすより語彙を増やすことを好む傾向が強い
〇 同じ言葉を使いまわすより語彙を増やすことを好む傾向が強い
326デフォルトの名無しさん
2018/08/18(土) 02:58:17.88ID:hnx9JO2D valueをgetするメソッド名に悩んでるのですが、一般的にはどんな名前になるんですかね?
327デフォルトの名無しさん
2018/08/18(土) 02:59:09.12ID:hnx9JO2D valueGetterでいいのかな?
328デフォルトの名無しさん
2018/08/18(土) 04:05:49.01ID:CDhAkOpw329デフォルトの名無しさん
2018/08/18(土) 05:31:12.42ID:g/WMhA69 >>326, >>327
変数のようにその値が意味する名称にする(例えば、string.length)、あるいはgetValueのように動詞始まりで書く
個人的には、状態を取得する関数は他の関数(手続き、メソッド)と完全に区別しているから、名詞にするよ
状態を表すbool型を返す場合は、trueを想定した命題にする特殊なルールがある(例えば、iterator.hasNext)
ValueGetterって名称の場合、関数は動詞始まりが一般的だから、(get)ValueGetterのように省略していると解釈され
意地悪を言っちゃうと、Valueを取得するGetterオブジェクトを返すって意味に取られかねない
変数のようにその値が意味する名称にする(例えば、string.length)、あるいはgetValueのように動詞始まりで書く
個人的には、状態を取得する関数は他の関数(手続き、メソッド)と完全に区別しているから、名詞にするよ
状態を表すbool型を返す場合は、trueを想定した命題にする特殊なルールがある(例えば、iterator.hasNext)
ValueGetterって名称の場合、関数は動詞始まりが一般的だから、(get)ValueGetterのように省略していると解釈され
意地悪を言っちゃうと、Valueを取得するGetterオブジェクトを返すって意味に取られかねない
330デフォルトの名無しさん
2018/08/18(土) 06:39:02.57ID:0oOTxqO8 >329は解答として満点に近いと思うのでこれに賛成しておこう
331デフォルトの名無しさん
2018/08/18(土) 07:44:29.19ID:MgtGkUH1 >>324
ありがとう把握した
個人的にはやまと言葉は1単語の広がりがとても広く
漢語はその豊富な表意文字と音素の恩恵から狭めって認識だわ
それと外来語学習者のバイアスがあって
学習者はコアとなる概念をそのまま理解できずに
母語の単語に置き換えて把握するから
例えば英語話者は日本語の核という言葉が
atomic, core, nucleus, kernelの4つに当てはまることを見て
使い回しの多い言語デスネーと感じる傾向があると思う
スレチなんで俺もこのくらいにしておきます
ありがとう把握した
個人的にはやまと言葉は1単語の広がりがとても広く
漢語はその豊富な表意文字と音素の恩恵から狭めって認識だわ
それと外来語学習者のバイアスがあって
学習者はコアとなる概念をそのまま理解できずに
母語の単語に置き換えて把握するから
例えば英語話者は日本語の核という言葉が
atomic, core, nucleus, kernelの4つに当てはまることを見て
使い回しの多い言語デスネーと感じる傾向があると思う
スレチなんで俺もこのくらいにしておきます
332デフォルトの名無しさん
2018/08/18(土) 07:56:57.22ID:MgtGkUH1 >>326
言語とクラス名にも依るけど、その感じだとJavaかな
JavaならThreadLocalやOptionalのような変数のコンテナクラスにはget()というメソッド名が与えられてるから、それに倣うと自然な感じになると思う
言語とクラス名にも依るけど、その感じだとJavaかな
JavaならThreadLocalやOptionalのような変数のコンテナクラスにはget()というメソッド名が与えられてるから、それに倣うと自然な感じになると思う
333デフォルトの名無しさん
2018/08/18(土) 08:21:05.22ID:0oOTxqO8 20年前ならともかく、
getだけでJava前提にするのは厳しいかなと思いますがw
getだけでJava前提にするのは厳しいかなと思いますがw
334デフォルトの名無しさん
2018/08/18(土) 12:28:24.34ID:MgtGkUH1 モダンな言語は大概プロパティがサポートされているから、getterメソッドを使う慣習があって、小文字で書くそこそこシェアのある言語ってことでJavaかなーと思ったんだけどな
Rubyも候補に入るのかな
Rubyも候補に入るのかな
335デフォルトの名無しさん
2018/08/18(土) 12:46:29.75ID:uDYXPxxS >>328
コンパイラが暗黙的にキャストしてくれるからって、それに頼り切って本来の引数型を見てみぬふりしちゃいかんだろう
コンパイラが暗黙的にキャストしてくれるからって、それに頼り切って本来の引数型を見てみぬふりしちゃいかんだろう
336デフォルトの名無しさん
2018/08/18(土) 13:03:31.24ID:CDhAkOpw337デフォルトの名無しさん
2018/08/18(土) 13:33:47.43ID:0oOTxqO8 >>334
プロパティあっても、アクセサ的なメソッドを作ることは珍しくないかなと
プロパティあっても、アクセサ的なメソッドを作ることは珍しくないかなと
338デフォルトの名無しさん
2018/08/18(土) 21:18:57.24ID:hnx9JO2D ルッビーアックバール!
339デフォルトの名無しさん
2018/08/19(日) 00:30:14.49ID:EuNb7t2q340デフォルトの名無しさん
2018/08/19(日) 07:29:43.11ID:Owr7PcVA341デフォルトの名無しさん
2018/08/19(日) 12:34:21.72ID:tEQmuEnO 1段落目だけでいいです
342デフォルトの名無しさん
2018/09/18(火) 13:04:45.53ID:ub4FiyyP343デフォルトの名無しさん
2018/09/19(水) 10:54:47.56ID:B2R8NLhN 変数名は大事だな
344デフォルトの名無しさん
2018/09/19(水) 14:27:36.07ID:MoqoniL9 よーしパパ、ハンガリアンでバリバリコード書いちゃうぞ!
345デフォルトの名無しさん
2018/09/20(木) 20:05:21.32ID:9QTub7MD ハンガリアンは大事だな
346デフォルトの名無しさん
2018/09/20(木) 20:50:07.90ID:l42nckct 変数名はだいじだな
ハンガリアン(に汚染されていたことの発覚)はおおごとだな
ハンガリアン(に汚染されていたことの発覚)はおおごとだな
347デフォルトの名無しさん
2018/09/20(木) 20:51:25.89ID:DBWB48iV カッコさんもこれほど存在感のない使われ方するとは思ってもみなかったやろなw
348デフォルトの名無しさん
2018/09/21(金) 22:58:36.14ID:zRb9Ordj ハンガリアン悪くない
悪いのは型名をプレフィクスに使う事
悪いのは型名をプレフィクスに使う事
349デフォルトの名無しさん
2018/09/21(金) 23:17:13.00ID:MqKbhYRD 型名が何フィクサーやったらええんや?
350デフォルトの名無しさん
2018/09/21(金) 23:30:33.48ID:0BdmXKlD NYのフィクサーならカッコいいと思います
351デフォルトの名無しさん
2018/09/21(金) 23:40:14.17ID:O7oYqnzQ ハンガリアン悪くない
private変数の
m_
とか推奨
private変数の
m_
とか推奨
352デフォルトの名無しさん
2018/09/22(土) 00:07:18.77ID:Elm8N2Dm 納期
DEAD_LINE
死ぬんか
DEAD_LINE
死ぬんか
353デフォルトの名無しさん
2018/09/22(土) 01:02:58.20ID:mXZbGj0b354デフォルトの名無しさん
2018/09/22(土) 09:01:46.06ID:4dEHSzz5 訳し方ひとつじゃないだろ
プログラマーのメンタルに悪い
プログラマーのメンタルに悪い
355デフォルトの名無しさん
2018/09/22(土) 09:41:14.17ID:i8+E3FCQ こうですね、理解ります
DEAD_LINE
死の線
モノの死にやすい部分
直死の魔眼により視ることができ、切られたものは死ぬ
DEAD_LINE
死の線
モノの死にやすい部分
直死の魔眼により視ることができ、切られたものは死ぬ
356デフォルトの名無しさん
2018/09/22(土) 10:17:47.73ID:mXZbGj0b357デフォルトの名無しさん
2018/09/22(土) 11:07:39.01ID:4dEHSzz5 納期=死線
ちがう絶対ちがう遅れたっていいんだ誰も死なないんだ
ちがう絶対ちがう遅れたっていいんだ誰も死なないんだ
358デフォルトの名無しさん
2018/09/22(土) 11:23:11.52ID:TIOG2Ben due date使えよ
359デフォルトの名無しさん
2018/09/22(土) 11:26:12.67ID:i8+E3FCQ 最適解について考えるなら俺も due date を推したい
時刻もあり得る deadline と違って日付であることが明確
deadline は守るべき締め切りというニュアンスが乗りすぎてフラットでない感もある
ただアッパーケースで書いてるし、ザ・期日というべき値ならDUE_DATEよりDEAD_LINEのニュアンスが相応しい文脈なのかもと思ったり
due date という英語は難しいから避けた方がいい、なんて環境ならレベルが低すぎるからとっととおさらばしたい
時刻もあり得る deadline と違って日付であることが明確
deadline は守るべき締め切りというニュアンスが乗りすぎてフラットでない感もある
ただアッパーケースで書いてるし、ザ・期日というべき値ならDUE_DATEよりDEAD_LINEのニュアンスが相応しい文脈なのかもと思ったり
due date という英語は難しいから避けた方がいい、なんて環境ならレベルが低すぎるからとっととおさらばしたい
360デフォルトの名無しさん
2018/09/22(土) 11:33:19.06ID:i8+E3FCQ いや納期だったか
じゃあ delivery date だな
じゃあ delivery date だな
361デフォルトの名無しさん
2018/09/22(土) 12:34:11.88ID:TIOG2Ben delivery dateだと、その日だけって感じにならん?
due dateならそれより前でも可ってわかるけど
due dateならそれより前でも可ってわかるけど
362デフォルトの名無しさん
2018/09/22(土) 13:49:40.09ID:kFAOP0FY 英辞郎で「納期」で検索した感じ、ニュアンス的には納品側の用語としてはdeadline、
発注側の用語としてはdue dateが適切のように感じるね
個人的にはそこまでこだわる必要はなく、普通にdeadlineでよいと思う
発注側の用語としてはdue dateが適切のように感じるね
個人的にはそこまでこだわる必要はなく、普通にdeadlineでよいと思う
363デフォルトの名無しさん
2018/09/22(土) 13:51:25.09ID:4dEHSzz5 俺のメンタルに悪いっつってんだろgじゃkじゃあjsふぁ
364デフォルトの名無しさん
2018/09/22(土) 14:24:37.52ID:mXZbGj0b 日本語には「〜です」って言葉をよく使うんだけど
生きづらそうだね
生きづらそうだね
365デフォルトの名無しさん
2018/09/22(土) 15:15:34.07ID:4dEHSzz5 それは直接的な意味ではないし回避するために毎回文章を考えるのが面倒なので仕方ないdeath
366デフォルトの名無しさん
2018/09/27(木) 19:49:12.84ID:JSlkPqQs 自社スタンドアロンアプリでデータをCSVにエクスポートする機能があるので、
ExportXXX()みたいな関数名が付けられていたんだけど、
この機能を使い回して自社WEBサービス版でも一部利用しようということに
なったものの、こっちで使うときもExportでいいのかどうか
くだらないことに引っかかってる次第。
スタンドアロン←→WEBの間にユーザーは一切関与せず、どちらもまとめて
一つのシステムという扱いなので、Exportでは外に出して自由に使える
イメージが強くて違和感が。
気にしすぎですかね?
ExportXXX()みたいな関数名が付けられていたんだけど、
この機能を使い回して自社WEBサービス版でも一部利用しようということに
なったものの、こっちで使うときもExportでいいのかどうか
くだらないことに引っかかってる次第。
スタンドアロン←→WEBの間にユーザーは一切関与せず、どちらもまとめて
一つのシステムという扱いなので、Exportでは外に出して自由に使える
イメージが強くて違和感が。
気にしすぎですかね?
367デフォルトの名無しさん
2018/09/27(木) 19:55:39.03ID:lMgw/m73 気にしすぎというか何言っとるのかわからん
368デフォルトの名無しさん
2018/09/27(木) 20:14:19.43ID:7LpaKKmv もはや気にしてもしょうがない
出来ているものの名前は変えなくていい
とはいえ違和感が強いならExportというネーミングが最初から微妙だった可能性を省みてもいいかも
システム外部へのエクスポートはCSV出力のひとつの役割で
当初はその側面しか見てなかったけど
本質を表してはいなかった可能性がある
例えば別案はWriteXXXToCSV
出来ているものの名前は変えなくていい
とはいえ違和感が強いならExportというネーミングが最初から微妙だった可能性を省みてもいいかも
システム外部へのエクスポートはCSV出力のひとつの役割で
当初はその側面しか見てなかったけど
本質を表してはいなかった可能性がある
例えば別案はWriteXXXToCSV
369デフォルトの名無しさん
2018/09/27(木) 20:15:54.50ID:314u9gDI Web版でExportXXXしたら何が起きるの?
370デフォルトの名無しさん
2018/09/27(木) 20:40:57.03ID:sTtGwCQ3 何言ってるのか分からないねw
Exportっていうのは普通に考えれば「データを他所のアプリに対してexport」ってニュアンスなので、
もしCSVをそのアプリ自身でも読むのならちょっと違うとは思う。
Exportっていうのは普通に考えれば「データを他所のアプリに対してexport」ってニュアンスなので、
もしCSVをそのアプリ自身でも読むのならちょっと違うとは思う。
371デフォルトの名無しさん
2018/09/27(木) 21:05:18.71ID:JSlkPqQs >>367
スタンドアロンというのが意味が違うんですかね。
Windowsにインストールしてるソフトがあり、それのことを書いてました。
旧来のそのソフトにWEBサービス版が加わり、そっちとデータの
やりとりが必要となったという流れです。
>>368
仰るとおりです。当初は外部に出してしまって好きに使ってもらう
ことしか考えてなかったのですが、WEB版にデータを渡すのに
一々新規でそのプログラムを作らないで、Export部分を使い回した方が
工数削減出来るだろうし、その後の保守も手間を省けるというところです。
ただ、この場合システム内部で完結するのでExportとは言わないかなあと。
既に開発スタートしてて、既存のExport部とは関係ないデータを吐き出すのに
MakeXXXXCSVみたいなのを作ってから、後でExport処理も使い回す際に
ネーミングに疑問が出てきました次第で。
>>369
WEB版にはExport機能はありません。
スタンドアロン運用で不便な点のみWEB版として追加してます。
>>370
すみません。
ニュアンスとしては同感でして、そこから今回の質問の流れとなりました。
とりあえずは、やはりExportのままだと本来の意味からするとちょっと
違う感じですよね。
もうちょっと考えてみます。どうもありがとうございました。
スタンドアロンというのが意味が違うんですかね。
Windowsにインストールしてるソフトがあり、それのことを書いてました。
旧来のそのソフトにWEBサービス版が加わり、そっちとデータの
やりとりが必要となったという流れです。
>>368
仰るとおりです。当初は外部に出してしまって好きに使ってもらう
ことしか考えてなかったのですが、WEB版にデータを渡すのに
一々新規でそのプログラムを作らないで、Export部分を使い回した方が
工数削減出来るだろうし、その後の保守も手間を省けるというところです。
ただ、この場合システム内部で完結するのでExportとは言わないかなあと。
既に開発スタートしてて、既存のExport部とは関係ないデータを吐き出すのに
MakeXXXXCSVみたいなのを作ってから、後でExport処理も使い回す際に
ネーミングに疑問が出てきました次第で。
>>369
WEB版にはExport機能はありません。
スタンドアロン運用で不便な点のみWEB版として追加してます。
>>370
すみません。
ニュアンスとしては同感でして、そこから今回の質問の流れとなりました。
とりあえずは、やはりExportのままだと本来の意味からするとちょっと
違う感じですよね。
もうちょっと考えてみます。どうもありがとうございました。
372デフォルトの名無しさん
2018/09/28(金) 20:32:14.35ID:SyXcx5uH >>366
エクスポートは取り出した結果を外部に公開するイメージだから、スタンドアロンとかwebとかは関係ないと思う。
エクスポートは取り出した結果を外部に公開するイメージだから、スタンドアロンとかwebとかは関係ないと思う。
373デフォルトの名無しさん
2018/09/29(土) 01:06:55.25ID:QC2tzjvw おまえのイメージも関係ないと思う
374デフォルトの名無しさん
2018/09/29(土) 02:02:39.43ID:4/x0Bpme >>372
そう、関係ないですよ。一行で書けば、
既にあるExport機能を内部で完結する形で流用するので関数名がExportだと意味が違ってくるけど変えた方がいいかな考えすぎ?
という主旨です。
開発内部からみれば一応二つのシステム間でExport,Importしてるのは間違いないですが。
そう、関係ないですよ。一行で書けば、
既にあるExport機能を内部で完結する形で流用するので関数名がExportだと意味が違ってくるけど変えた方がいいかな考えすぎ?
という主旨です。
開発内部からみれば一応二つのシステム間でExport,Importしてるのは間違いないですが。
375デフォルトの名無しさん
2018/09/29(土) 12:46:33.16ID:x2fX+cFc 最初から通信などの内部処理用として用意するならserializeとかにすると思うけど、
既存の処理を使い回すならexportでも別にいいかなあって印象
自分で自由に出来るなら、出力部分のコードをserialize側に移して
export側ではserializeを呼び出すようにしちゃってもいいんだろうけど
既存の処理を使い回すならexportでも別にいいかなあって印象
自分で自由に出来るなら、出力部分のコードをserialize側に移して
export側ではserializeを呼び出すようにしちゃってもいいんだろうけど
376デフォルトの名無しさん
2018/10/06(土) 01:13:06.07ID:JjdhAE/r 「システム・ハンガリアン記法」を嫌う人がいるようだけど、個人的には実際に長年使ってみて、
コーディング効率が上がっていると感じる。
ネット上でよく見かける反論に、「システム・ハンガリアン記法は、(代入などで型が異なれば)コンパイラ
がエラーを出してくれるのだから不要」というものがある。
しかし、システム・ハンガリアン記法を使っていれば、たとえば、代入のコードをコーディングしたい最中に
周囲の変数の変数名を見て、エラーが起きない組み合わせを探すと、実は、非常にわずかな組み合わせ
しか無いことが多い。
そして、そのわずかな組み合わせの中に必ず正しいコードがあるので、人間の作業は、
そのわずかな組み合わせの中から選ぶだけでよくなるので、思考の節約になってくれる。
もし、システム・ハンガリアンを使っていなければ、この思考の節約が働かないので、
本格的に考えないといけないことがあり、余計に時間がかかってしまうことがある。
正しいコードが次のようなものだったとする:
pXxxx = pYyyy + ofsAaa;
周囲には、pXxx, pYyy, ofsAaa 位しか変数がないとすれば、頭を使わなくても、可能な組み合わせは、
上記のコードを含む少数のパターンしかないことがすぐに分かる。
そのうちから正しいコードを「選ぶ」事と、意味で考えることを二重に行うことで、早く正解のコードを
書くことが出来るようになる。
ところが、システム・ハンガリアン記法を使っていなければ、意味で考えることしか出来なくなり、
思考パターンを減らすことが出来ない。また、コンパイルしてみないと「検算」もも出来ない。
コーディング効率が上がっていると感じる。
ネット上でよく見かける反論に、「システム・ハンガリアン記法は、(代入などで型が異なれば)コンパイラ
がエラーを出してくれるのだから不要」というものがある。
しかし、システム・ハンガリアン記法を使っていれば、たとえば、代入のコードをコーディングしたい最中に
周囲の変数の変数名を見て、エラーが起きない組み合わせを探すと、実は、非常にわずかな組み合わせ
しか無いことが多い。
そして、そのわずかな組み合わせの中に必ず正しいコードがあるので、人間の作業は、
そのわずかな組み合わせの中から選ぶだけでよくなるので、思考の節約になってくれる。
もし、システム・ハンガリアンを使っていなければ、この思考の節約が働かないので、
本格的に考えないといけないことがあり、余計に時間がかかってしまうことがある。
正しいコードが次のようなものだったとする:
pXxxx = pYyyy + ofsAaa;
周囲には、pXxx, pYyy, ofsAaa 位しか変数がないとすれば、頭を使わなくても、可能な組み合わせは、
上記のコードを含む少数のパターンしかないことがすぐに分かる。
そのうちから正しいコードを「選ぶ」事と、意味で考えることを二重に行うことで、早く正解のコードを
書くことが出来るようになる。
ところが、システム・ハンガリアン記法を使っていなければ、意味で考えることしか出来なくなり、
思考パターンを減らすことが出来ない。また、コンパイルしてみないと「検算」もも出来ない。
377デフォルトの名無しさん
2018/10/06(土) 01:42:44.00ID:JjdhAE/r さらに、文字列などを使っている時、
CString strText;
const char *pszText = (const char *)strText; // operator char *() 演算子による型変換
int lenText = strText.GetLength();
などと、同じ Text という名前の文字列に対して、CString 文字列や、それを高速アクセスするための
文字列へのポインタ、文字列の長さ、の各々に対する変数名を機械的に付けられるのは重宝している。
さらに、よくあるのは、メンバ変数と全く同じ意味のローカル変数や仮引数がある状況。
この場合、毎回、新しい生を考え出すのは大変なので、メンバ変数には必ず先頭に m_ を
つけていると便利。今の場合、
m_strText = strText;
m_lenText = lenText;
のように美しくバランスするのがとても好きだ。
これだと、エラーが正しいコードであることがとても分かりやすい。
また、「m_」の接頭辞は、次のようなコンストラクタでも重宝する:
CPerson::CPerson( const CString &strName ) {
m_strName = strName;
}
さらに、引数が同じ文字列でも、0終端文字列の場合は、
CPerson::CPerson( const char *pszName ) {
m_strName = pszName;
}
とすればよいだけなので、とても美しい。
CString strText;
const char *pszText = (const char *)strText; // operator char *() 演算子による型変換
int lenText = strText.GetLength();
などと、同じ Text という名前の文字列に対して、CString 文字列や、それを高速アクセスするための
文字列へのポインタ、文字列の長さ、の各々に対する変数名を機械的に付けられるのは重宝している。
さらに、よくあるのは、メンバ変数と全く同じ意味のローカル変数や仮引数がある状況。
この場合、毎回、新しい生を考え出すのは大変なので、メンバ変数には必ず先頭に m_ を
つけていると便利。今の場合、
m_strText = strText;
m_lenText = lenText;
のように美しくバランスするのがとても好きだ。
これだと、エラーが正しいコードであることがとても分かりやすい。
また、「m_」の接頭辞は、次のようなコンストラクタでも重宝する:
CPerson::CPerson( const CString &strName ) {
m_strName = strName;
}
さらに、引数が同じ文字列でも、0終端文字列の場合は、
CPerson::CPerson( const char *pszName ) {
m_strName = pszName;
}
とすればよいだけなので、とても美しい。
378デフォルトの名無しさん
2018/10/06(土) 02:54:17.48ID:hIftmu0Z 唐突にどうしたのw
真面目に言ってるのかネタのつもりかのか知らんけど、畢竟
「書きっぱなしで他人も自分も後でメンテしない」
コードならどんな表記法使おうが何の問題もないのよ。
ハンガリアンが批判されるのは、この条件を満たさない(世の中のコードの9割はそうだと思うけど)
場合に問題が起こるから
もちろんハンガリアンがダメって言ったって教条主義的に全部捨てる必要はない。
メンバ変数のプリフィクスなんか誰も文句言わないよ
こんな20年前に決着が付いてる話を今頃して何が楽しいの
真面目に言ってるのかネタのつもりかのか知らんけど、畢竟
「書きっぱなしで他人も自分も後でメンテしない」
コードならどんな表記法使おうが何の問題もないのよ。
ハンガリアンが批判されるのは、この条件を満たさない(世の中のコードの9割はそうだと思うけど)
場合に問題が起こるから
もちろんハンガリアンがダメって言ったって教条主義的に全部捨てる必要はない。
メンバ変数のプリフィクスなんか誰も文句言わないよ
こんな20年前に決着が付いてる話を今頃して何が楽しいの
379デフォルトの名無しさん
2018/10/06(土) 03:14:51.07ID:wpWp2JW+ ワイはアプリもシステムも混在するハンガリアン
とりあえず事故は皆無
アプリケーションで使うのは、大体座標系かな
x,y,cx,cyとか、コイツらをシステムの方でやっちゃうと変数名が長くなるだけ
ならまだいいんだけど、計算がちと複雑化してくるとあああああってなる
とりあえず事故は皆無
アプリケーションで使うのは、大体座標系かな
x,y,cx,cyとか、コイツらをシステムの方でやっちゃうと変数名が長くなるだけ
ならまだいいんだけど、計算がちと複雑化してくるとあああああってなる
380デフォルトの名無しさん
2018/10/06(土) 07:22:44.97ID:hM5EPMW3 グローバル変数でなければハンガリアンオッケーだ。
381デフォルトの名無しさん
2018/10/06(土) 11:05:40.90ID:Ba25Qv4b 個人的にはこうだな
・ポインタ変数にpを接頭するのは分かりやすい
・メンバ変数にm_も悪くない
・型を接頭するのはやめて
・ポインタ変数にpを接頭するのは分かりやすい
・メンバ変数にm_も悪くない
・型を接頭するのはやめて
382デフォルトの名無しさん
2018/10/06(土) 11:06:26.33ID:Ba25Qv4b lenTextがintLenTextじゃないのは気になった
デフォルト扱い?
デフォルト扱い?
383デフォルトの名無しさん
2018/10/06(土) 11:10:52.47ID:Ba25Qv4b 型の接頭がいいと思うのは関数内で型変換するときくらい
384デフォルトの名無しさん
2018/10/06(土) 11:17:28.61ID:Ba25Qv4b ポインタと型変換とメンバ変数に共通することを一般化して考えると、同じ情報を異なる形式で2つ持ちたいときにハンガリアンは活きる
385デフォルトの名無しさん
2018/10/06(土) 14:07:26.85ID:1KPazL3D386デフォルトの名無しさん
2018/10/06(土) 15:03:56.04ID:evMRo/Iv C++相談室 part137
https://mevius.5ch.net/test/read.cgi/tech/1535353320/962
962 デフォルトの名無しさん (ワッチョイ 6ee3-BkfR) [sage] 2018/10/05(金) 18:51:17.31 ID:4ThlZrTR0 [3/7]
>>947
最初の従業員のデータについては、
EmployeeInfo
二番目の dictionary の方は、
g_dictCompanyEmploeeInfo_s
https://mevius.5ch.net/test/read.cgi/tech/1535353320/962
962 デフォルトの名無しさん (ワッチョイ 6ee3-BkfR) [sage] 2018/10/05(金) 18:51:17.31 ID:4ThlZrTR0 [3/7]
>>947
最初の従業員のデータについては、
EmployeeInfo
二番目の dictionary の方は、
g_dictCompanyEmploeeInfo_s
387デフォルトの名無しさん
2018/10/06(土) 15:21:42.95ID:1KPazL3D コピペマン参上!!!まで読んだ
388デフォルトの名無しさん
2018/10/06(土) 16:32:09.02ID:pORM0fWU389デフォルトの名無しさん
2018/10/06(土) 20:13:22.49ID:rmt6Q6pM390デフォルトの名無しさん
2018/10/06(土) 21:13:34.32ID:pORM0fWU >>389
どっちもプリフィクスなの変わらなくない?って聞きたかったんだけど
どっちもプリフィクスなの変わらなくない?って聞きたかったんだけど
391デフォルトの名無しさん
2018/10/06(土) 22:43:56.02ID:rmt6Q6pM392デフォルトの名無しさん
2018/10/06(土) 22:52:54.09ID:rmt6Q6pM 変なプレフィックスを使うことに忌避感情はあるけどptrというやや古典的な略語を使うことについてマイナスイメージはないということか
393デフォルトの名無しさん
2018/10/06(土) 23:10:54.72ID:pORM0fWU >>391-392
よく分からんが、pFoo を否定したのは>385だぞ
よく分からんが、pFoo を否定したのは>385だぞ
394デフォルトの名無しさん
2018/10/06(土) 23:46:24.65ID:rmt6Q6pM >>393
ゴメン間違えた
ゴメン間違えた
395デフォルトの名無しさん
2018/10/07(日) 11:54:03.14ID:9wt2o7WS >>385
何故、ハンガリアン記法が支持され、否定されてきたか
PtrToReadやPointerToReadなんて記法は、そのオブジェクトのデザインとしての命名ではなく
ハンガリアン記法と同じくプログラマの都合のような命名でしょ
文章的にそれをやってしまうと、ハンガリアン記法よりも余計にウザったい命名規則になると思うがな
そのPointer(Ptr)って名前は、システムとしてのポインタ(型)なのか
デザインとしてのポインタ(指し示すもの)なのか、って分かりづらくなる
何故、ハンガリアン記法が支持され、否定されてきたか
PtrToReadやPointerToReadなんて記法は、そのオブジェクトのデザインとしての命名ではなく
ハンガリアン記法と同じくプログラマの都合のような命名でしょ
文章的にそれをやってしまうと、ハンガリアン記法よりも余計にウザったい命名規則になると思うがな
そのPointer(Ptr)って名前は、システムとしてのポインタ(型)なのか
デザインとしてのポインタ(指し示すもの)なのか、って分かりづらくなる
396デフォルトの名無しさん
2018/10/07(日) 12:09:03.29ID:TpDmbWu/ >>395
何を言ってるのか意味が分からないよ
システムとかデザインとか何のこっちゃw
世の中いろんなプログラマがいるが、PtrToReadなんて命名をする奴は誰もいないだろうw
よく見てみ
ReadPtrって書いてあるでしょうw
これは例えばキューみたいなものを実装する時に次のデータの読み出し位置をポイントするポインタ(読み出しポインタ)だ
だからPtrToReadPtr は「読み出しポインタへのポインタ」だw
何を言ってるのか意味が分からないよ
システムとかデザインとか何のこっちゃw
世の中いろんなプログラマがいるが、PtrToReadなんて命名をする奴は誰もいないだろうw
よく見てみ
ReadPtrって書いてあるでしょうw
これは例えばキューみたいなものを実装する時に次のデータの読み出し位置をポイントするポインタ(読み出しポインタ)だ
だからPtrToReadPtr は「読み出しポインタへのポインタ」だw
397デフォルトの名無しさん
2018/10/07(日) 13:54:56.07ID:nLJ8SV7e >>395
だからどっちのハンガリアンだよ
だからどっちのハンガリアンだよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- とらせん IPあり
- 巨専】
- 【DAZN】ワールドカップ欧州予選総合 ★5
- こいせん 全レス転載禁止
- 【J SPORTS】FIFA U-17ワールドカップ ★10
- 【ATP】テニス総合実況スレ2025 Part 211【WTA】
- トヨタ、反日だった。2027年に中国にレクサスのEV工場を設立。高市 [931948549]
- 日本政府、ネトウヨに媚びるために韓国との関係も悪化させてしまう [603416639]
- 【悲報】高市効果で「1ドル=160円」が相場へwwwwwwwwwwwwwwwwwwwwwwwwwwwww 止まらぬ高市円安💥💥 [871926377]
- 【悲報】SP500今日も暴落で完全に世界恐慌。高市恐慌として全世界で語り継がれそう [686538148]
- 自閉症が「んなっしょい」と連呼するお🏡
- FGOで好きなサーヴァントがアビゲイル、北斎、楊貴妃なんだが
