1 名前:仕様書無しさん [2012/03/10(土) 22:20:29.12 ] 文法的には何ひとつ間違ってはいないし、本人なりに見やすくしようとする意図は汲み取れるのだが、 どうにも気持ち悪くて、「修正してやる!」と叫びながらキーボードを激しく連打したくなる そういう薄気味悪いコーディングスタイルを発見したら書き込むスレッド
2 名前:仕様書無しさん mailto:sage [2012/03/10(土) 22:24:49.50 ] for(i = 0;i < IMAX;i++){・・・}
3 名前:仕様書無しさん mailto:sage [2012/03/10(土) 22:26:16.62 ] #define { begin #define } end
4 名前:仕様書無しさん mailto:sage [2012/03/10(土) 22:27:07.72 ] pBase = (条件) ? new Child1() : new Child2();
5 名前:仕様書無しさん mailto:sage [2012/03/11(日) 01:07:15.09 ] スレタイがイラッつとする
6 名前:仕様書無しさん mailto:sage [2012/03/11(日) 01:10:07.48 ] ☆ × ' . × x ` . x ヽ . ☆ X ,. -. ‐'´ ̄``丶、 ノ} X /} /: : : : : : : : : ーヘ × / //: : : :l: .:. .} | . : : : : } . . ゜ _ノ_,ム′: : : |:::::::/! l.::. : ! /: :\ , ☆ _/ /,. -‐〉 : : :_ !:;イ¬.|:i::: |i.|. :.i::: : : ヽ ; ☆ . . ,. '´!{ ゝ-‐''^¨二.ノ:〔__− V!::!LTV{::: : : :.', ×x . ぃ .イ::. : : |⌒` }:リ'示Y1:: : : i } x × . '´ ,. 介iー-、 {:::::::::. : : ! ^' ヒ'リ ',.|:::. :.. :.!リ X X / /ヽ' L! ヽ. Y::::i::::. .::. |r:ゥ- 、' `^ /:::l::::.::::.x:リ′ ; ☆ イラッ☆ x / / /⌒ヽ 込Jヽ:ト:{>、:ィ八_ ,.‐く イ:ィ:::!x::X::/ ゛ i'´ /-r‘ー、 ヘ-┴‐〉 `'i¬ ヘ.__{:::::::}.彳〔__レ1::ル'゜ ゜ . ー 、 --−'´ コ:..:.}: \ 丶 .l | -、匸⌒´:_;-、ノ }_ ´ ゜ ×. `ヽ、 └;.:. .. } 〉 ヽ.| 〈__:,.イv/´〕、冫`i x ☆ ` ¬ゥ´:..:....:..:..:..: ,ノ、 \ { ! {.{j_/,ィう′ ! x ' Y:..:..:..X:..:..:.∠.._ ヽ.} |. } `マ^V | X , ゛ヽ:..:..:..:../ ,.⊥_ /小\¬-{ ∨ヘ._,. -‐¬、 ☆ ` ー′ j:..:..:..:Y´:´/ハ卜':..! :ヽ ∧::ヘ .:..:... } /:..:..:..:..j/:..:.`:..:´:..:..i :..:ト-_ノ マ'’:..:..:..:..ヘ
7 名前:仕様書無しさん mailto:sage [2012/03/11(日) 01:55:03.52 ] #define private public
8 名前:仕様書無しさん mailto:sage [2012/03/11(日) 02:43:59.61 ] String hoge = null ; hoge = getSQL( flg1 flg2 ) ;
9 名前:仕様書無しさん mailto:sage [2012/03/11(日) 02:44:47.10 ] >>8 の9行目訂正 flg1,
10 名前:仕様書無しさん mailto:sage [2012/03/11(日) 03:05:02.57 ] GNUの字下げスタイルはなんか嫌だ
11 名前:仕様書無しさん mailto:sage [2012/03/11(日) 06:31:52.11 ] コードの書き方にこだわるようじゃ3流だな。 こだわるべきはアルゴリズムだろ。 そこがきちっとしていればコードが短くなる。コードが短くなれば自然と読みやすくなる。 早くその領域に達するといいな。
12 名前:仕様書無しさん mailto:sage [2012/03/11(日) 07:15:38.84 ] 他人のコードを読んだことないの?
13 名前:仕様書無しさん mailto:sage [2012/03/11(日) 09:14:43.77 ] >>11 既知のパターンで書かれているかも重要 パターンとパターンをつないでいくような作りであると、読みながら何をしたいのかが分かる。
14 名前:仕様書無しさん mailto:sage [2012/03/11(日) 12:56:09.17 ] >11 コードを短くするにはアルゴリズムではなく 関数にすることが重要。 どんなに長いコードでもたった一行にできる。 しかもすごく読みやすくなる。
15 名前:仕様書無しさん mailto:sage [2012/03/11(日) 13:09:35.46 ] というか設計だな
16 名前:仕様書無しさん mailto:sage [2012/03/11(日) 16:11:30.97 ] >>1 の条件に該当するヤツは 一行が長くならないようにコメントを適当に改行してるんだけど 単語の途中を改行でぶった切られてのぐらいしか思いつかない あとはイラッっとするので > 本人なりに見やすくしようとする意図は汲み取れるのだが で該当したものはない
17 名前:仕様書無しさん mailto:sage [2012/03/11(日) 17:29:28.29 ] 古来から言われていることだが、ポインタ変数と普通の変数をいっぺんに宣言するとまぎらわしい。
18 名前:仕様書無しさん mailto:sage [2012/03/11(日) 18:26:18.08 ] >>17 int* ptr_A, B; こんな感じ?
19 名前:仕様書無しさん mailto:sage [2012/03/11(日) 18:34:53.32 ] K&R流では int *pa, b; だね *(アスタリスク)の前に空白を入れるのか後に入れるのかという違いだけど、 >>18 のスタイルの発祥はどこなんだろ?
20 名前:仕様書無しさん mailto:sage [2012/03/11(日) 19:02:06.53 ] >>18 >int* ptr_A, B; これで両方ポインタになるべきだと 俺は思うのだが
21 名前:仕様書無しさん mailto:sage [2012/03/11(日) 19:45:40.12 ] クラスのプロトタイプ宣言ファイルにそのクラスが使う複数の構造体の宣言を一緒に入れる クラスのプロトタイプ宣言のなかにそのクラスが使う構造体の宣言をごっそり入れる どう思う?
22 名前:仕様書無しさん mailto:sage [2012/03/11(日) 22:13:55.60 ] >>20 ていう思い違いをしやすいから*は識別名にくっつけろ、という話じゃね?
23 名前:仕様書無しさん mailto:sage [2012/03/11(日) 22:39:10.87 ] いやそうじゃなく文法自体が不適切なんじゃないのかって話
24 名前:仕様書無しさん mailto:sage [2012/03/11(日) 23:25:48.90 ] >>23 そりゃあ「コンパイラに優しい言語仕様」を目指したわけだし てかそもそもそういうスレじゃないし
25 名前:仕様書無しさん [2012/03/12(月) 02:04:41.58 ] if(hoge != null) { if(hoge.length() > 0) { // 糞処理 } } ネスト深くせずreturnしてほしいわ if(hoge != null && hoge.lenght() > 0) { return; } // 糞処理
26 名前:仕様書無しさん mailto:sage [2012/03/12(月) 02:11:39.25 ] >>25 バカっ☆
27 名前:仕様書無しさん mailto:sage [2012/03/12(月) 02:39:19.67 ] 定数宣言で=の位置を縦に揃えるのがあまり好きじゃない
28 名前:仕様書無しさん mailto:sage [2012/03/12(月) 06:45:08.76 ] Linux環境でC++ソースの整形コマンドってなかったっけ?
29 名前:仕様書無しさん mailto:sage [2012/03/12(月) 13:02:39.61 ] >27 俺は逆に、揃えてないほうが不快。
30 名前:仕様書無しさん mailto:sage [2012/03/12(月) 14:48:57.42 ] 揃ってると見やすいけど修正しづらい
31 名前:仕様書無しさん mailto:sage [2012/03/12(月) 15:04:21.10 ] 後で長い名前の定義を足した時に揃え直すか迷う
32 名前:仕様書無しさん mailto:sage [2012/03/12(月) 15:10:16.44 ] >>27 and >>29 ,30 縦揃えにTabを使わないのが問題なんじゃね? 自分はタブ幅4(:se ts=4 sw=4 ai)だけど、全く苦にならない
33 名前:仕様書無しさん mailto:sage [2012/03/12(月) 16:30:15.35 ] 俺はインデント以外でタブ文字使われるのが大嫌い
34 名前:仕様書無しさん mailto:sage [2012/03/12(月) 19:58:47.49 ] キナ臭くなってまいりました
35 名前:仕様書無しさん mailto:sage [2012/03/12(月) 20:46:52.41 ] タブサイズを8以外にしてるのがイラっとするわ。
36 名前:仕様書無しさん mailto:sage [2012/03/12(月) 21:11:14.76 ] indentのデフォルトは2じゃね?
37 名前:仕様書無しさん mailto:sage [2012/03/12(月) 21:35:49.34 ] =の位置で簡単に揃えられない エディタを使う奴が無能なだけ。
38 名前:仕様書無しさん mailto:sage [2012/03/12(月) 21:38:11.18 ] そもそも変数名の長さがまちまちなところに問題の根本が潜んでいる気がする
39 名前:仕様書無しさん mailto:sage [2012/03/12(月) 21:53:50.70 ] だからコボラーはCOL001,COL002,COL003…みたいな変数にしてたんだろ
40 名前:仕様書無しさん mailto:sage [2012/03/13(火) 00:48:50.68 ] エディタ表示部が勝手に検知して勝手に揃えて表示するというのはありなような気はする 画面表示がディスク上のファイルのバイナリ列と完全に一致しなければならないわけじゃないしな
41 名前:仕様書無しさん mailto:sage [2012/03/13(火) 06:49:57.92 ] 2行以上のコメントを//で書いてあるとイラッとくる
42 名前:仕様書無しさん mailto:sage [2012/03/13(火) 07:26:43.39 ] >>39 変数の長さを規約で決めてしまうのか ソースを見やすくするっていう規約の存在意義を考えるとアリだな
43 名前:仕様書無しさん mailto:sage [2012/03/13(火) 09:01:52.99 ] >>36 インデントは2でも4でも8でもいいけど、タブのサイズを4とかにしてタブでインデントしてるヤツは イラっとするわ。
44 名前:仕様書無しさん mailto:sage [2012/03/13(火) 13:39:53.08 ] >41 それは//のほうが正しいだろ。 /*〜*/で普段のコメントが書いてあると、一部の処理を殺して試したいときに、普段のコメントがそれを邪魔する。 関数の中身に書くコメントは//じゃないと邪魔だ。 JavaDoc形式については別だぞ。
45 名前:仕様書無しさん mailto:sage [2012/03/13(火) 19:40:55.20 ] for(i = 0; i < max; i++); ←※ { // 云々 } こーゆーミスするなら中括弧の前に改行入れんじゃねえよハゲ
46 名前:仕様書無しさん mailto:sage [2012/03/13(火) 20:55:25.95 ] てへぺろ;-P
47 名前:仕様書無しさん mailto:sage [2012/03/13(火) 22:54:43.60 ] >>43 MS「(;゚Д゚)エッ…」
48 名前:仕様書無しさん mailto:sage [2012/03/13(火) 23:50:12.33 ] >>43 なんで?
49 名前:仕様書無しさん mailto:sage [2012/03/13(火) 23:52:59.28 ] >>43 なんで?
50 名前:仕様書無しさん mailto:sage [2012/03/13(火) 23:57:17.22 ] >>43 はRuby使いなんじゃね? Rubyには標準ライブラリを含めてインデント2で書かれたコードが多い
51 名前:仕様書無しさん mailto:sage [2012/03/14(水) 00:10:57.34 ] インデント2は明らかに少なすぎ。 デザイン的に空間が分かれてるように見えない。
52 名前:仕様書無しさん mailto:sage [2012/03/14(水) 00:35:03.78 ] >>43 チカンすればいいじゃん
53 名前:仕様書無しさん mailto:sage [2012/03/14(水) 02:52:09.84 ] >>52 おまわりさんこっちです
54 名前:仕様書無しさん mailto:sage [2012/03/14(水) 07:34:18.44 ] 生ポインタとusingを禁止で全て書き直せとのお達し 配列長が必要なので、shared_arrayは使えない vector<Hoge*>* hoge; ↓ boost::shared_ptr<std::vector<boost::shared_ptr<Hoge>>> hoge; マジキチ 下手すりゃdelete漏れを探すよりもカオスなことになりそうだぜ
55 名前:仕様書無しさん mailto:sage [2012/03/14(水) 13:02:41.26 ] >>47-49 タブサイズは8に決まってるだろ。 タブサイズを8以外にしてるやつは迷惑だわ。 インデントを8以外にしたいときにはスペース使え。 >>52 どっちにしても面倒だし、チカンするくらいならエディタの設定を変えたほうが速いだろ。
56 名前:仕様書無しさん mailto:sage [2012/03/14(水) 16:12:41.42 ] インデントはタブサイズの設定関係ないだろ インデント以外のレイアウトにタブ使うヤツがクソ野郎
57 名前:仕様書無しさん mailto:sage [2012/03/14(水) 16:20:32.15 ] みんなそれぞれ意見がバラバラなのが面白いぜw
58 名前:仕様書無しさん mailto:sage [2012/03/14(水) 16:49:24.33 ] コーディングスタイルはしばしば宗教に例えられる
59 名前:仕様書無しさん mailto:sage [2012/03/14(水) 17:57:48.38 ] コーディングルール・コーディングスタイル議論は山のようにあって正直ウンザリなので、 このスレでは「イラッつとする」かどうかのみで判断した感情的なレスをお願いします
60 名前:仕様書無しさん mailto:sage [2012/03/14(水) 19:30:13.99 ] >>56 関係あるだろ。 タブサイズ4前提でインデントしてて、8に設定してあるエディタで見ると崩れるやつとかいる。
61 名前:仕様書無しさん mailto:sage [2012/03/14(水) 19:41:56.11 ] いまやってるphpのシステムで関数の引数を function hoge($arg1, $arg2, $arg3) { $weight = arg1; $height = arg2; $age = arg3; } と必ず$arg1, $arg2…みたいな意味の無い名前の変数でうけて、関数の中で意味のある 名前の変数に移してるんだけど、 普通に function hoge($weight, $height, $age) でいいじゃないか。 なんか意味あるのか。
62 名前:仕様書無しさん mailto:sage [2012/03/14(水) 19:47:25.12 ] コードを追うと突如現る謎の空白行 ふと右を見ると変数の頭文字らしきものがニョキっと生えてる タブ8とか3階層ネストするだけで宇宙に行ってまうわ 気持ち悪いったらありゃしない
63 名前:仕様書無しさん mailto:sage [2012/03/14(水) 20:32:57.87 ] Full HDなモニタ買ってもらえ。
64 名前:仕様書無しさん mailto:sage [2012/03/14(水) 20:42:50.52 ] >>61 Perl厨のせいなんじゃね? Perlには仮引数がないから sub hoge { $weight = shift; $height = shift; $age = shift; } ってやるよ。
65 名前:仕様書無しさん mailto:sage [2012/03/14(水) 23:14:52.71 ] >>60 すまん、インデントの意味を間違えてた 段落を意図したインデントのみタブを使えって言いたかった こういうこと言いたかったんです ttp://ameblo.jp/argv/entry-10000648280.html
66 名前:仕様書無しさん mailto:sage [2012/03/15(木) 01:23:10.20 ] >>65 正しい日本語使おうな。 たしかに、タブとスペース混ぜられたり、後ろに不要な空白残したりされると殴りたくなる。 てめーのことだぜ先輩!
67 名前:仕様書無しさん mailto:sage [2012/03/15(木) 02:07:12.65 ] いえ、わたくしは、イライラしながらフォーマッタでポチポチ揃えてる側の人間ですが。
68 名前:仕様書無しさん mailto:sage [2012/03/15(木) 09:47:40.20 ] 昔はタブサイズは8にするべきだって思ってたんだけどね 今は1か2がちょうどよく思えてきたよ
69 名前:仕様書無しさん mailto:sage [2012/03/15(木) 10:36:11.89 ] タブのサイズを1に設定してタブを使うなら、ふつーにスペース使ったほうがよくね?
70 名前:仕様書無しさん [2012/03/15(木) 11:36:52.65 ] bool hoge(){ if( fuga() != false ){ return false; } else{ return true; } } なぜreturn !fuga();としないのだ……。
71 名前:仕様書無しさん mailto:sage [2012/03/15(木) 12:14:05.59 ] /* 2011.3.11 なんかエラーになるのでとりあえず外す return false; */ } return true;
72 名前:仕様書無しさん mailto:sage [2012/03/15(木) 12:26:17.66 ] >>70 A:論理値をリテラルと比較するような阿呆だから
73 名前:仕様書無しさん mailto:sage [2012/03/15(木) 13:45:30.08 ] >>71 3.11・・・
74 名前:仕様書無しさん mailto:sage [2012/03/15(木) 14:00:09.04 ] >>73 rev.666 2011-03-11 15:47 ほぼ100%職場おわるので中間コミット SyntaxError出るけどこれ以上はやばいのでかんべんしてください 去年下請けと組んでやった案件の作業ログにこんなのあったの思い出したわ
75 名前:仕様書無しさん mailto:sage [2012/03/15(木) 14:05:41.36 ] 修正したり追加した行に日付と名前が書いてあるのは お前の名前分かっても意味無いんじゃ、って思うな。
76 名前:仕様書無しさん mailto:sage [2012/03/15(木) 18:26:58.01 ] 日付は何故そう修正したか雰囲気がわかったりするから無いよりはマシ それよりはまともなコメントを書けよハゲって話なんだが 担当者を入れるのは責任問題の押し付け合いをするためのものと理解している
77 名前:仕様書無しさん mailto:sage [2012/03/15(木) 19:03:15.35 ] 日付と名前は必須だろ どこにバグがあるか特定する時に一番役に立つ
78 名前:仕様書無しさん mailto:sage [2012/03/15(木) 20:25:45.12 ] 修正履歴なんて入れてないでソース管理ツール使えよって感じだけど、ドカタの現場だとただのファイル共有ツールって認識だし使っても同じか。
79 名前:仕様書無しさん mailto:sage [2012/03/15(木) 21:04:29.64 ] わざわざソース管理ツールをインストールするの面倒じゃん おまえらすぐ管理ツールを変更しちゃうから古いソースを見る時に大変なんだよ
80 名前:仕様書無しさん mailto:sage [2012/03/15(木) 21:12:59.59 ] やっぱり新しいツールや技術についていけない無能に合わせるしかないよな
81 名前:仕様書無しさん mailto:sage [2012/03/15(木) 21:13:26.95 ] 名前がファミリーネームどころかファーストネームですらなく、 親しい間でなければ使わないような愛称 鼻穴に5センチほど割り箸突っ込んでグググと水平に近づけて 後遺症が残らない程度に苦痛を与えることで反省を促したい
82 名前:仕様書無しさん mailto:sage [2012/03/16(金) 00:11:44.00 ] 俺もちょっと前にPHPで return hoge ? false : true ; って書いてた。恥ずかしい
83 名前:仕様書無しさん mailto:sage [2012/03/16(金) 06:55:35.96 ] return func(); とか、気持ち悪くないか?
84 名前:仕様書無しさん mailto:sage [2012/03/16(金) 11:17:23.41 ] 返却値の柔軟性を奪っておいた方が後々不具合が少ない気はしないでもない。
85 名前:仕様書無しさん mailto:sage [2012/03/16(金) 19:59:37.11 ] /*2008.01.01 障害対応 start */ /*2009.09.15 障害対応 start */ /*2010.12.11 障害対応 start */ /*2011.02.13 障害対応 start */ return true; /*2011.02.13 障害対応 end */ /*2010.12.11 障害対応 end */ /*2009.09.15 障害対応 end */ /*2008.01.01 障害対応 end */ こんなのを見ると腹立つ 消すなって言われると帰りたくなる
86 名前:仕様書無しさん [2012/03/16(金) 20:10:41.24 ] >>85 え?なんで修正した箇所のソースが残ってないの? 普通はコメントアウトして残すだろ? コメントアウトした部分を削除する時は日付も削除するし そんな状態にはならない
87 名前:仕様書無しさん mailto:sage [2012/03/16(金) 20:15:05.66 ] >>86 >普通はコメントアウトして残すだろ? 普通は…な…。
88 名前:仕様書無しさん mailto:sage [2012/03/16(金) 20:20:45.49 ] 正月から大変なんだなw
89 名前:仕様書無しさん mailto:sage [2012/03/17(土) 01:07:19.71 ] >85 そもそもSubversionとか使ってないの?
90 名前:仕様書無しさん mailto:sage [2012/03/17(土) 01:09:31.26 ] そこかよw
91 名前:仕様書無しさん mailto:sage [2012/03/17(土) 07:04:29.13 ] 全体の設計があきらかにアレなコードで いちいち修正をコメントで残されてもなー
92 名前:仕様書無しさん mailto:sage [2012/03/17(土) 10:36:26.07 ] ありきたりだけど、コメントが疑問系のやつ 一回それに対する回答コメントがあってワラタ
93 名前:仕様書無しさん mailto:sage [2012/03/18(日) 07:15:33.32 ] LINQの使い方を知って以来、foreachまみれのソースは基本的にイラつく
94 名前:仕様書無しさん mailto:sage [2012/03/18(日) 19:33:17.18 ] foreach?gotoでループを表現しているコードをいじらされるよりだいぶマシだな
95 名前:仕様書無しさん mailto:sage [2012/03/19(月) 01:56:27.12 ] >>14 ちゃんと意味のある関数ならいいけどな。
96 名前:仕様書無しさん mailto:sage [2012/03/19(月) 01:57:43.43 ] >>20 C#はなるんじゃなかった?
97 名前:仕様書無しさん mailto:sage [2012/03/19(月) 11:49:33.84 ] C#にはポインタはありません(すくなくとも表面的には) それよりもここのタイトルの「イラッつと」って書き方にいらっと来た。
98 名前:仕様書無しさん mailto:sage [2012/03/19(月) 13:33:57.93 ] >>97 あからさまに仕様上あるわけだが>C#のポインタ そんなことより、スレタイに関しては >>5 で既出なんだが ホントに直近のレスだけしか見てないんだなあ(´・ω・`)
99 名前:仕様書無しさん mailto:sage [2012/03/19(月) 13:56:14.92 ] 何のひねりもないマジレスにイラッつとした
100 名前:仕様書無しさん [2012/03/19(月) 15:44:51.04 ] スレタイの「イラッつと」は「イラッと」の間違い? なんかいらっと来た
101 名前:仕様書無しさん mailto:sage [2012/03/19(月) 18:12:57.12 ] if (0 == hoge)
102 名前:仕様書無しさん [2012/03/19(月) 19:25:54.13 BE:1248768735-2BP(0)] >>101 これはわからなくはないが見にくい
103 名前:仕様書無しさん mailto:sage [2012/03/19(月) 20:01:41.88 ] >>101 if (0 < hoge && hoge < fuga) これは許してちょんまげ
104 名前:仕様書無しさん mailto:sage [2012/03/19(月) 20:29:56.00 ] >>103 それは普通
105 名前:仕様書無しさん mailto:sage [2012/03/19(月) 20:57:03.45 ] もしかして、"<" は良くて ">" は使わないの?
106 名前:仕様書無しさん mailto:sage [2012/03/19(月) 21:03:08.93 ] はぁ?
107 名前:仕様書無しさん [2012/03/19(月) 21:59:50.74 ] void hoge() { if(this.expr) return; hogehoge(); fugafuga(); ... } 俺も7年前までこう書いていたんだが、 今ではイラッとまで来ないが、なんかもやっとする。 入口一つに出口一つ、例外的に途中抜けするから例外、 と考えているんだが、そういう考えは少数派なのだろうか
108 名前:仕様書無しさん mailto:sage [2012/03/19(月) 22:14:45.37 ] >>107 return文の利用を気にしているのかな? それを使わないことでネストが浅くなる場合もあるよ 以下は、ソート処理で使われる比較メソッドの例 def compare(x, y) gender_result = x.gender <=> y.gender return if gender_result == 0 age_result = x.age <=> y.age return if age_result == 0 x.name <=> y.name end 昔のgoto文不要論争と同じように、return文も全面的に禁止するのではなく、 必要に応じて使い分ける(=必要な場合に限って使う)ことを考えればいいのではないかと
109 名前:108 mailto:sage [2012/03/19(月) 22:17:52.90 ] ミスがあったのでコードを訂正(なお、言語はRuby) def compare(x, y) gender_result = x.gender <=> y.gender return gender_result if gender_result == 0 age_result = x.age <=> y.age return age_result if age_result == 0 x.name <=> y.name end
110 名前:仕様書無しさん mailto:sage [2012/03/19(月) 23:21:53.63 ] >>107 > 入口一つに出口一つ これを守るためにフラグ変数導入したり、do〜while(0)使ったりするコードは イラッとする。
111 名前:仕様書無しさん mailto:sage [2012/03/20(火) 00:23:49.93 ] >>110 >これを守るためにフラグ変数導入したり、do〜while(0)使ったりするコードは >イラッとする。 御意
112 名前:仕様書無しさん mailto:sage [2012/03/20(火) 01:32:28.25 ] if(hoge) goto exit;
113 名前:仕様書無しさん mailto:sage [2012/03/20(火) 03:16:51.32 ] >>107 出口一つにしたければ、 void hoge() { if(this.expr) goto EXIT; hogehoge(); fugafuga(); ... EXIT: } こう書けばいいよw つか、returnなんてこの書き方の短縮形でしか ないんだから出口を一つにする意味はない。
114 名前:仕様書無しさん mailto:sage [2012/03/20(火) 07:23:02.48 ] 場合わけが多岐にわたり、なおかつ「通常」の抜け方が唯一の関数だと 末尾に「通常」のreturn、そこまでのあちこちにif文と抱き合わせで複数のreturn というのは必然
115 名前:仕様書無しさん mailto:sage [2012/03/20(火) 11:01:41.79 ] >>101 これをコーディング規約にするのは 「ウチのプロジェクトには、代入と比較を間違える間抜けがいます」 つってるようなもんだよなあ。
116 名前:仕様書無しさん mailto:sage [2012/03/20(火) 12:20:25.49 ] 代入と比較を 書き 間違える人なら 全員当てはまると思いますが?
117 名前:仕様書無しさん mailto:sage [2012/03/20(火) 12:35:19.18 ] たしかVisualBasicだと比較も = 1個だけだったと思う BASIC系全部そうかな
118 名前:仕様書無しさん mailto:sage [2012/03/20(火) 12:43:43.70 ] BASICは、ifで代入できるなんて あほらしい仕様がないからね。
119 名前:仕様書無しさん mailto:sage [2012/03/20(火) 13:06:39.30 ] >>115 は根性と精神力でプログラミングするんだろうなあ お近づきにはなりたくない
120 名前:仕様書無しさん mailto:sage [2012/03/20(火) 13:40:45.28 ] まぁ普通は静的解析ツール使ってチェックするよなぁ。 >>101 みたいなプログラマの注意力に依存したスタイルは今どき流行らないよ。
121 名前:仕様書無しさん mailto:sage [2012/03/20(火) 13:54:35.84 ] >>101 頭の中で0がhogeだったらって考えちゃうけど、こう書いたときにどう考えてるんだろ
122 名前:仕様書無しさん mailto:sage [2012/03/20(火) 13:54:57.90 ] >>113 その手の奴で、それぞれ脱出する箇所によって終了処理が異なるから EXIT1: EXIT2: …と、returnの前に4つくらいラベルが書かれたソースを 見たことがあるな。 ネストが深くなるのがそんなに嫌なのか。
123 名前:仕様書無しさん mailto:sage [2012/03/20(火) 14:00:38.72 ] ネストが深くなっていいことは一つもないからな。
124 名前:仕様書無しさん mailto:sage [2012/03/20(火) 14:19:18.43 ] >>119 なんで根性と精神力があると間違えないと思うの? バカなの?
125 名前:仕様書無しさん mailto:sage [2012/03/20(火) 15:25:25.39 ] if (sysfn(...) < 0) {エラー処理} //sysfn()は、エラー時に"-1"を返す関数 なぜすなおに-1を使わない?
126 名前:仕様書無しさん mailto:sage [2012/03/20(火) 15:30:15.28 ] ネットで似たような処理を探してきて、意味もわからず貼り付けて、 「出来ました」 とかいうスタイル。 技術者なめとんのか
127 名前:仕様書無しさん mailto:sage [2012/03/20(火) 15:40:00.90 ] >>125 負の整数をエラーコードとしている場合、新たなエラーコードが追加されたときにもエラー処理を実行させるため
128 名前:仕様書無しさん [2012/03/20(火) 16:13:54.00 ] >>103 むしろそうしないコードにイラッつとするわ
129 名前:仕様書無しさん [2012/03/20(火) 16:14:36.45 ] >>124 こんなもん静的解析ツールが見つけ出してくれるだろ
130 名前:仕様書無しさん mailto:sage [2012/03/20(火) 17:55:49.64 ] >>127 sysfn()は、「失敗時に-1」と定義されたシステムコールです
131 名前:仕様書無しさん [2012/03/20(火) 19:38:01.93 ] システムコールの仕様は一生変わらないとお思いかね
132 名前:仕様書無しさん mailto:sage [2012/03/20(火) 19:42:26.65 ] 変わってからまたおいでw
133 名前:仕様書無しさん mailto:sage [2012/03/20(火) 19:44:21.26 ] 「失敗Aが-1だけど失敗Bは3を返す」 という構造になる確率よりも 「失敗Aが-1なので失敗Bは-2を返す」 という構造になる確率のほうがたぶん高い とにかく失敗ならヒットしたいという場合、とりあえず負かどうかチェックするのはいちおうはアリだ 「失敗なんだけど、既存のエラー処理では処理しきれない新失敗」という可能性もあるんだけど、 それはたぶんエラーコードがなにになっても結局うまく動かないだろうからどうでもいい
134 名前:仕様書無しさん mailto:sage [2012/03/20(火) 19:47:28.02 ] >130 それならsysfn()のヘッダに #define SYSFN_ERROR -1 って書かれてるだろうから俺はそれを使う。 書いてなければsysfn()を作った奴が無能。
135 名前:仕様書無しさん mailto:sage [2012/03/20(火) 20:19:40.05 ] xxxxx{ } xxxxx( ){ } カッコの列が違うと読みづらくて仕方ない
136 名前:仕様書無しさん mailto:sage [2012/03/20(火) 20:25:09.56 ] int mCode = 0; // 変数mCodeの宣言 そんなの見りゃ分かる。 mCodeが何の変数かを書いてほしかった。
137 名前:仕様書無しさん mailto:sage [2012/03/20(火) 20:55:44.58 ] >>136 もう一歩踏み込んで変数名だけでわかるようにしないと
138 名前:仕様書無しさん mailto:sage [2012/03/20(火) 21:34:41.41 ] 日本語で書かないとわけがわからなくなる値の入る変数名というのは結構あったりする
139 名前:仕様書無しさん mailto:sage [2012/03/20(火) 21:40:17.74 ] >>125 成功時に0以上の値を返す関数だから。
140 名前:仕様書無しさん mailto:sage [2012/03/20(火) 21:57:22.53 ] ・
141 名前:仕様書無しさん mailto:sage [2012/03/20(火) 21:57:25.05 ] 普通にそう考えられないやつはセンスないよね。
142 名前:仕様書無しさん mailto:sage [2012/03/20(火) 23:54:41.16 ] CのベテランがJavaにきても成功/失敗を、0/-1で返してたな。 関数名も chkHoge() みたいな感じだし。 イラっとするっていうか懐かしい感じがした。
143 名前:仕様書無しさん mailto:sage [2012/03/21(水) 00:20:49.82 ] exit 1 が失敗を現す文化がですね
144 名前:仕様書無しさん mailto:sage [2012/03/21(水) 00:44:15.06 ] >>25 式の評価順が気になって安全に振ってんだろ
145 名前:仕様書無しさん mailto:sage [2012/03/21(水) 01:18:59.93 ] >>54 これって、typedefつかっちゃダメなのか?
146 名前:仕様書無しさん mailto:sage [2012/03/21(水) 03:45:59.92 ] ループの全てをdoループで処理したらイラッとするって言われた。 forとかwhileとか使えって(´・ω・`) ループ前に変数初期化、ループの最初と最後にifで必要に応じてbreak。 ループカウンタ進めるタイミングとか、ループ抜ける条件を一覧(風)に並べられたりとか、見やすいと思うんだけどな。 イラッとするもの?
147 名前:仕様書無しさん mailto:sage [2012/03/21(水) 06:16:44.32 ] たかがループで > ループ前に変数初期化、ループの最初と最後にifで必要に応じてbreak。 > ループカウンタ進めるタイミングとか、ループ抜ける条件を一覧(風)に並べられたり こんなことやらないといけないのは、何かおかしいと直感的に感じる。 条件などをきちんと整理すれば普通の forとか whileになるんじゃないか?
148 名前:仕様書無しさん mailto:sage [2012/03/21(水) 06:28:26.77 ] いちいちインクリメンタに意味のある名前をあたえているせいで forの宣言行が長くなっていると予想
149 名前:仕様書無しさん mailto:sage [2012/03/21(水) 09:33:37.32 ] K&R Cっぽい関数宣言してる人がいてビックリしたことがる
150 名前:仕様書無しさん mailto:sage [2012/03/21(水) 09:41:20.56 ] C++やC99 or laterなら問題になるがC89までなら問題ない それより関数定義のほうを見たらびっくりするだろ
151 名前:仕様書無しさん mailto:sage [2012/03/21(水) 12:49:10.36 ] >>146 > ループの全てをdoループで処理したらイラッとするって言われた。 イメージが沸き辛いんだけど、 for (int i = 0; i < N; ++i) { /* something */ } を int i = 0; do { if (i >= N) break; /* something */ i++; } while (true); みたいに書いてるのか? ループの最後にifってのがよくわからんが。 もしそうなら今までで1、2を争うイラッつとレベル
152 名前:仕様書無しさん mailto:sage [2012/03/21(水) 13:22:32.98 ] >>146 イラッつとするって言うか、死ねって思う。 do whileだと終了判定とカウンタの処理の2か所でバグ仕込む可能性が上がって 解析する場合に余計なコストがかかる。 ただのfor文だと分かった場合であっても、それ以前と仕様が変わって そうせざるを得なかった場合まで考えるから鬱陶しい。
153 名前:仕様書無しさん [2012/03/21(水) 17:20:34.42 ] >>146 俺なら全部書きなおさせる。
154 名前:仕様書無しさん mailto:sage [2012/03/21(水) 18:13:00.78 ] >>146 命令の数が増えたら読みにくいじゃん ループはforで統一するのがいいんだよ
155 名前:仕様書無しさん mailto:sage [2012/03/21(水) 18:28:43.38 ] >>154 えっ?そんな理由でforに統一してるの? 絶対一緒に仕事したくないなぁ〜
156 名前:仕様書無しさん mailto:sage [2012/03/21(水) 18:59:49.89 ] 新着があるはずなんだがぜんぜん表示されない…
157 名前:仕様書無しさん mailto:sage [2012/03/21(水) 19:16:16.72 ] whileしか使わない
158 名前:仕様書無しさん mailto:sage [2012/03/21(水) 19:54:01.21 ] ifとgotoしか使わない
159 名前:仕様書無しさん mailto:sage [2012/03/21(水) 22:59:55.17 ] 俺はwhile統一派 変数初期化やインクリメントは単独の式でやったほうがいい
160 名前:仕様書無しさん mailto:sage [2012/03/21(水) 23:01:01.13 ] >>154 for統一ってのは無いな
161 名前:仕様書無しさん mailto:sage [2012/03/21(水) 23:01:23.71 ] >>159 処理系によって遅くなるぞ
162 名前:仕様書無しさん mailto:sage [2012/03/21(水) 23:05:05.67 ] forとwhileの統一なんかは別にどーでもいいが do whileで統一はまじでやめほしい
163 名前:仕様書無しさん mailto:sage [2012/03/21(水) 23:12:53.60 ] until文とか出てくると紛らわしい。
164 名前:仕様書無しさん mailto:sage [2012/03/21(水) 23:24:25.39 ] >161 forとwhileの違いごときで体感レベルで遅くなるような処理系って現存するのか……?
165 名前:仕様書無しさん [2012/03/21(水) 23:39:43.30 ] whileは変な書き方したら遅くなりそうな気はするな
166 名前:仕様書無しさん mailto:sage [2012/03/21(水) 23:44:18.23 ] ってもJUMPするだけじゃん
167 名前:仕様書無しさん mailto:sage [2012/03/22(木) 00:27:49.79 ] for(;;)は条件式の省略が認められてるが、while(true)は定数のboolで条件式を代用してる
168 名前:仕様書無しさん mailto:sage [2012/03/22(木) 01:38:23.47 ] >>164 現存するかは知らんけど、数年前のC++ Builderに付いてたコンパイラは forで加減算してる場合しかループ展開しなかった
169 名前:仕様書無しさん mailto:sage [2012/03/22(木) 06:24:32.18 ] gotoが使える言語で 1回だけしか実行しないループとbreakで疑似goto 多重ループを抜ける為の大量に設置された判定文 gotoは使わないでね☆ミみたいなのにとらわれすぎだと思った コメントにしっかり書くならいいと思うんだけどなぁ
170 名前:仕様書無しさん mailto:sage [2012/03/22(木) 08:33:09.39 ] >>54 thisポインタ使われてたら終わるなw
171 名前:仕様書無しさん mailto:sage [2012/03/22(木) 09:38:41.47 ] >>169 複数回のメンテを受けた後がGOTOの本領発揮 共同作業でGOTO使うなっていうのは鉄の掟 あがっている例ではその部分を関数化すれば解決するんじゃないだろうか returnによるgotoも賛否がわかれる所ではあるけれど
172 名前:仕様書無しさん mailto:sage [2012/03/22(木) 09:56:37.14 ] >breakで疑似goto 別モンだろw
173 名前:仕様書無しさん mailto:sage [2012/03/22(木) 10:58:08.82 ] >>172 上から下に流れるだけのgotoと言うかなんと言うか どっちかと言うと1回のループでなんでこんなもんが…と混乱した後に 「ただbreakで飛びたいだけでしたーwww」ってのがな…
174 名前:仕様書無しさん mailto:sage [2012/03/22(木) 11:06:25.62 ] 難読化技術はとどまることを知らない
175 名前:仕様書無しさん mailto:sage [2012/03/22(木) 13:13:43.25 ] goto使うなというのは、あなたのために言っているのではない あなたの次の次の次の人くらいのために言っている
176 名前:仕様書無しさん mailto:sage [2012/03/22(木) 13:23:26.07 ] > 1回だけしか実行しないループとbreakで疑似goto なんで if 使わないの?
177 名前:仕様書無しさん mailto:sage [2012/03/22(木) 13:28:57.86 ] forだと2回条件を評価しているんだがifだと1回だよね
178 名前:仕様書無しさん mailto:sage [2012/03/22(木) 13:40:20.34 ] エラー時に関数抜ける場合とかの解放忘れ防止に goto もありかな、と思う事はある。
179 名前:仕様書無しさん mailto:sage [2012/03/22(木) 13:51:40.67 ] >>175 コメントはしっかり書くと言t 俺のコメントが…消えた…? 関数にするほどの処理じゃないor関係性があった処理で戻り値無しの関数終了をイメージした何かだったんだろう 調査だったからそれで動いてたし触らないが吉としてスルーした
180 名前:仕様書無しさん mailto:sage [2012/03/22(木) 13:56:27.17 ] >>178 解放なんて例外でキャッチしてやればいいじゃん というかそれ以外の方法だとどうやっても抜ける可能性でるだろ
181 名前:仕様書無しさん mailto:sage [2012/03/22(木) 14:51:20.98 ] 例外が使えない状況もあるからね。
182 名前:仕様書無しさん mailto:sage [2012/03/22(木) 14:55:17.06 ] >>180 Exception Safetyって知ってる? 知らずにレスしてるならもっと勉強しろ。 知ってるなら、そう簡単な話ではないことくらいわかるだろ。
183 名前:仕様書無しさん mailto:sage [2012/03/22(木) 17:38:53.68 ] gotoが「絶対ダメ」なのなら、例外だって「かなりダメ」だろう どっちにしても大域脱出なのは変わりがないのだから、極めて慎重に設計されて極めて慎重に使用されるべき 「gotoはダメだけど例外ならいいよ」なんてことはあって欲しくない あって欲しくないってことは実際にはあるってことなんだが
184 名前:仕様書無しさん mailto:sage [2012/03/22(木) 17:56:13.71 ] >>183 君、何の言語ができるの?
185 名前:仕様書無しさん mailto:sage [2012/03/22(木) 20:15:58.44 ] まぁgotoが許されるのは多重ループの脱出か try-catchが無い場合の例外処理に限られるわな。 goto禁止ってのはそもそも、gotoが悪いんじゃなくて 処理ブロックの中を行き来するのが悪いって話だからなぁ。 ダイクストラ本人はgotoがダメとは言ってないし。 あと、breakは本来の意味では問題あるgotoになり得ない。 if( x ) { goto label1; label2: goto label3 } while( n ) { label1: goto label2 label3: }
186 名前:仕様書無しさん mailto:sage [2012/03/23(金) 23:51:50.59 ] カッコの内側にスペース入れてるのとカンマの後ろにスペース入れてないのがイラっとするわ。
187 名前:仕様書無しさん mailto:sage [2012/03/24(土) 07:42:22.62 ] これか foo( aaa,bbb,ccc ) なんか、AKBにそういう顔をしたメンバーが居るそうだな ( ∵ )
188 名前:仕様書無しさん mailto:sage [2012/03/24(土) 09:44:13.79 ] ミサワさんか
189 名前:仕様書無しさん mailto:sage [2012/03/24(土) 09:59:23.99 ] 浜ちゃん
190 名前:仕様書無しさん mailto:sage [2012/03/25(日) 22:03:08.33 ] a = a + 1;
191 名前:仕様書無しさん mailto:sage [2012/03/26(月) 11:06:32.52 ] >>190 Luaとかはそう書かないとダメだと思った
192 名前:仕様書無しさん mailto:sage [2012/03/26(月) 20:21:29.78 ] >>190 宣言型言語に慣れるとイラッとするのかもしれない 【関数型言語(Haskell)】 a' = a + 1 【論理型言語(Prolog)】 A1 = A + 1
193 名前:仕様書無しさん mailto:sage [2012/03/27(火) 09:04:29.30 ] 1ならインクリしろって事なのかマジックナンバーだからなのか 一定の数値足すならそれが記述方法として正しいし理解しやすいと思う
194 名前:仕様書無しさん mailto:sage [2012/03/27(火) 09:08:07.35 ] あぁ同じ変数に突っ込むってのもあったか 何かしら足してるなら別物になる事が多いしなぁ…
195 名前:仕様書無しさん mailto:sage [2012/04/03(火) 21:38:44.46 ] phpばっかやっとるやつは、 きたないな、ソースも顔も。
196 名前:仕様書無しさん mailto:sage [2012/04/04(水) 00:34:00.34 ] 金を儲けると顔がきたなくなっちゃうよね
197 名前:仕様書無しさん mailto:sage [2012/04/07(土) 02:10:36.21 ] // TODO 自動生成されたメソッド・スタブ
198 名前:仕様書無しさん mailto:sage [2012/04/07(土) 16:30:48.93 ] // 仕様追加対応 if ( id > 11 && id < 13) { }
199 名前:仕様書無しさん mailto:sage [2012/04/07(土) 18:55:20.54 ] コメントをテンプレートを使って強制するとおこりがちなこと /************************************ * 関数名 Initialize * 日本語名 初期化関数 * 概要 初期化を行う * 機能 パラメータの初期化 * 備考 特になし *************************************/ InitStatus (...) { }
200 名前:仕様書無しさん mailto:sage [2012/04/07(土) 18:57:08.56 ] たいてい、コメントブロックと関数の間に //Initialize (...) { が存在する
201 名前:仕様書無しさん mailto:sage [2012/04/08(日) 17:24:39.33 ] \ ヽ | / / \ ヽ / / ‐、、 殺 伐 と し た ス レ に 鳥 取 県 が ! ! _,,−'' `−、、 __/\ _,,−'' `−、、 _| `〜┐ _,,−'' _ノ ∫ _,.〜’ / ───────‐ ,「~ ノ ───────‐ ,/ ` ̄7 | 島 根 県 / _,,−' ~`⌒^7 / `−、、 _,,−'' 丿 \, `−、、 ,'´\ / _7 /`⌒ーへ_,._⊃ /`i ! \ _,,-┐ \ _,.,ノ r‐-、、 / ! ゙、 `ー--<´ / L. ,〜’ ゙、 >−一'′ ,' y' U `ヽ/ / ヽ ヽ '´ U イ ____ / __ | \____\ ___/__ / ̄ ____|____ \ \____\ //ヽ /___ /|\ \ \____\ / / ヽ / /__ / | \ \_______ / / / / / / | \ | \ / / / / _/ __/ | \__ | \  ̄―_
202 名前:仕様書無しさん mailto:sage [2012/04/09(月) 10:43:48.99 ] >198 idがdoubleかなんかになってるんだよ。
203 名前:仕様書無しさん [2012/04/11(水) 21:01:07.00 ] 俺がおかしいんだろうけど privateかつ仮想関数でもない関数がstatic関数じゃ無かったとき。 てか、できるだけクラス内部で呼ぶオブジェクト自身の関数は、 static関数であって欲しい。 まず、インターフェースとして外に見せてる関数じゃないんだから、 static関数で十分だし、コード追うときメンバー変数弄ってる関数は 見た目がグローバル変数中で使ってる関数と同じなんで読みづらい。
204 名前:仕様書無しさん mailto:sage [2012/04/11(水) 21:13:17.77 ] this使えよとしか
205 名前:仕様書無しさん mailto:sage [2012/04/11(水) 21:19:09.81 ] this->〜();ってしてても他のヤツ保守するときサボるし this省いてもコンパイルエラーにならんし
206 名前:仕様書無しさん mailto:sage [2012/04/11(水) 21:23:10.50 ] Objective-Cとかjavascriptだと selfやthis強制するから便利だよな
207 名前:仕様書無しさん mailto:sage [2012/04/11(水) 21:32:49.03 ] >>203 うん、君がおかしい。 でもそれがイラッつとするなら そりゃ感情論だから仕方ない。
208 名前:仕様書無しさん mailto:sage [2012/04/11(水) 21:38:44.72 ] >>204 thisもどうかと思うわ。5個メンバー変数あっても、 実際一つのprivate関数が必要とするのは2〜3って事が多いし。 だったら直接その変数を引数渡しした方がましじゃん。
209 名前:仕様書無しさん mailto:sage [2012/04/11(水) 21:55:57.48 ] >>208 メンバー変数をわざわざ引数で渡す必要性がわからん。
210 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:21:59.19 ] >>209 グローバル変数と同じ理由 // ここだけ見ていつループが終了するか解るか? for( point = 0; 100 > point; ++point ) Function();
211 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:27:32.68 ] 極端にもほどがあるな
212 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:30:07.16 ] 数年前のコード追うときとか楽なんだよ >>210 の例でいうFunctionで実際に値が 変更されるかどうか、Functionの中身 見ないで判断することができるからね。
213 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:37:37.22 ] グローバル変数は目の敵にするくせに メンバ変数にしただけで安心しちゃってる人は グローバル変数の何が悪いのかもう一度考え直したほうがいいね。
214 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:38:55.94 ] > >>210 の例でいうFunctionで実際に値が > 変更されるかどうか、Functionの中身 > 見ないで判断することができるからね。 意味がわからない。
215 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:42:45.84 ] >>213 普通は必要があるからメンバ変数として保持するわけで。 メンバ変数として保持する必要がない変数までメンバ変数として保持してる コードは、そもそもそれ自体が変だとは思わないか?
216 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:44:24.83 ] >>214 pointがフィールドだった場合Functionメソッドが何もしなければ100回でループを抜ける もしFunctionがpointに対し何かしていればループの回数はFunctionの実装を確認するまで不明となる
217 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:46:03.03 ] >>215 問題点が違うよ。 無駄じゃないメンバーでも問題は変わらないんだから。
218 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:46:26.79 ] >>215 メンバ変数は状態を保持するための苦肉の策でしょ 本当は禁止したほうがいいくらいだよ
219 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:48:06.79 ] なんか、static爺の匂いがしてきたぞ。
220 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:49:07.12 ] 俺とプログラム議論で戦おうて言うなら徹底的にしてやるぞ
221 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:50:04.98 ] インターフェースとしてクラスを使うのか、thisを省略するためにクラスを使うのかじゃ全然違うしな
222 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:50:07.26 ] >>218 全部の変数をmain関数から引き渡せば状態を保持するメンバ変数なんていらない っていう主張だったっけ?
223 名前:222 mailto:sage [2012/04/11(水) 22:51:28.59 ] あぁ、ちょっと違った。 main関数じゃなくて、上位の関数だったかな。
224 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:52:52.35 ] >>223 インターフェースになる関数の中で呼ぶ自分のメンバーには 引数でメンバー変数を渡せって話。
225 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:53:08.84 ] なぜグローバル変数が嫌われるかといえば 変数のスコープがブロックを超越するために 生成消滅のタイミングを把握できないからだ。 メンバ変数にしたところで スコープがクラス内に限定されるだけで メソッドというブロックを超越する問題は解決されていない。
226 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:54:56.26 ] >>225 消滅というか変更全般だろ 下手すりゃ無限ループも起こすし
227 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:54:57.12 ] まあオブジェクト指向も所詮道具なんだから 良い所悪い所判って使えばいいんだけどね
228 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:58:14.63 ] オブジェクト指向は関係なくね もっと構造化レベルの原始的な話でしょ
229 名前:仕様書無しさん mailto:sage [2012/04/11(水) 22:59:28.54 ] >>228 その通り。 この話題に違和感を感じるならオブジェクト指向以前に 構造化を判ってない証拠。
230 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:03:17.37 ] >>224 そもそもそんな関数をメンバ関数にしてる設計がおかしいんじゃない? インスタンスに関係ない関数なら、クラスに入れないのが正しいのでは?
231 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:04:30.58 ] >>230 Javaとか.Net系統じゃ無理だし
232 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:04:36.84 ] >>230 インスタンスに関係ないわけじゃなくて お行儀良くしましょうってことだよ
233 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:07:35.43 ] >>230 あるクラス内でしか使わない関数なら 不要になったとき捨てやすいように クラススコープに隠しておきたい
234 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:11:24.14 ] >>231 別クラスにするとかあるでしょ。 >>232 基本的にはオブジェクト指向である限り、インスタンスと相互作用が ないものはクラス内に入れないほうがいい。 まぁコーディング上の都合でちょっとしたことをさせる (インスタンスと関係ない)小さなメソッドを入れることはあるけど。
235 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:11:57.08 ] >>233 同意。 整理整頓しようってだけの話。
236 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:14:21.42 ] >>234 別クラスで公開してしまったら他から使われる可能性があるからな
237 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:15:16.96 ] >>234 メンバ変数を直接いじるよりは、引数と戻り値を通じてやり取りしたほうが良い。 プライベートであっても、副作用があるより無いほうが良い。
238 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:23:21.29 ] >>236 副作用を起こすことを目的とした関数の場合には、 結局メンバ変数を参照渡しするか何かして副作用をおこすんだろ? そんなに変わるとは思えないな。
239 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:25:37.88 ] 戻り値で受け取ったほうがはっきりするでしょ this.value = privateMethod( 100 );
240 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:31:11.70 ] 操作するのが一つでよければね。
241 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:32:16.97 ] >>240 戻り値が一つしか返せないから不便というのであれば タプルを持つ言語を使えば良い
242 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:33:20.27 ] >>241 言語を選ぶ自由があるなら>>206 でFAじゃね
243 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:34:54.43 ] before: for( point = 0; 100 > point; ++point ) Function(); after: for( point = 0; 100 > point; ++point ) point = Function( point ); 多少明示的にするだけでかなり違うね。
244 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:35:04.92 ] >>242 参照で返してもいいよ
245 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:38:10.17 ] >>243 ループ中にループ変数に代入する(かつ下位関数で書き変える?) っていうコーディングスタイルがそもそもありえない。
246 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:39:25.25 ] 別にこんなものは絶対こうしなくちゃていうものじゃなくて 方便で使い分ければ良いんだけど 意識してるかどうかは別の話だからな
247 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:39:34.35 ] >>245 forの例は極端だろうけどwhileとか ループ中で副作用が発生すんのはよくあるよ
248 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:41:41.00 ] whileはループじゃねーよ
249 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:42:47.37 ] whileがループじゃなかったら何なんだw
250 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:54:05.04 ] >>245 「ループ変数」てのがすでにおかしい。 それはただの変数だ。
251 名前:仕様書無しさん mailto:sage [2012/04/11(水) 23:58:36.37 ] >>240 戻り値がオブジェクト一個で済まないなら それこそ別クラスにすりゃよくね クラス内部でprivateメソッドにするような 内容じゃないでしょ
252 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:04:11.70 ] おまいらスタイルの話じゃないですよ、と。
253 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:08:32.12 ] 問題の本質はあるクラスメソッドにおいて メンバ変数にアクセスしてるのかグローバル変数にアクセスしてるのか ぱっと見区別が付かないということだったはず。 thisを強制すれば済む話だけど、 社内の統制がクソでコーディングスタイルが統一できないのであれば 何を提案しようが無駄な気もする。
254 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:11:39.58 ] >>250 ただの変数pointで > for( point = 0; 100 > point; ++point ) point = Function( point ); こんなコード書いてきたら何も言わずに書き直すわ。
255 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:12:07.49 ] グローバル変数と問題が同じというだけで もとからメンバー変数とグローバル変数が紛らわしいという話じゃないよ
256 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:12:21.59 ] >>253 問題の本質は 引数と戻り値を使わず、メンバ変数を直接いじるプログラムを書くことによって 思わぬ副作用に見舞われることがあるってことだよ。
257 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:13:27.56 ] >>254 わざわざ問題を単純化して話をしやすくしているのに 話をすり替えるな
258 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:15:04.57 ] >>254 それを書き直すのは構わんが こういうケースだって問題はかわらんのよ while( 100 > point ) { FunctionA(); FunctionB(); FunctionC(); } while( 100 > point ) { FunctionA(); point = FunctionB( point ); FunctionC(); }
259 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:16:14.07 ] >>253 それこそスレ的には 「アプリケーションハンガリアン使え」 で済む話じゃね?
260 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:19:35.71 ] ハンガリアンは、型を表すプリフィックスであって スコープを表すプリフィックスはハンガリアンではありません。 プリフィックスが付けばなんでもハンガリアンだと思うバカが多くて困る。 ぶっちゃけ、::や->や.を記号ではなく文字として捉えれば、 nantoka::fooとかの nantoka::もプリフィックスだってーの。
261 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:20:05.29 ] >>259 システムハンガリアンじゃね? アプリケーションハンガリアンってと pxSize ptSize emSizeみたいな単位とか 変数の型(とスコープ)じゃなく中身の情報含ませるものだから
262 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:20:46.53 ] >>260-261
263 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:24:14.52 ] 話を戻そう。 プリフィクスを付けたところで ある関数で、メンバー変数やグローバル変数が 書き換えられている事は解らないので意味がない。
264 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:28:07.06 ] 全部const関数にしましょってか
265 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:28:19.01 ] >>258 どうも、例にあげてるコード自体が何となく臭いんだけど。。 メンバ変数pointが100未満の場合ループするよっていう 仕様なら(=pointがそれだけ重要な意味を持ってるなら)、 前者でいいと思う。
266 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:29:10.29 ] >>260 恥ずかしいな
267 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:29:42.46 ] >>265 マジで?
268 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:32:31.44 ] >>265 問題は直すとき。今後者のループを見ればpointを 書き換えてる関数は一発で解るけど 前者だと3個とも疑わしい 実際の具体的な名前の関数ならすぐ解ると思うかもしれないけど 具体的な名前の関数でも分かりづらい事が多い
269 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:35:21.54 ] while( 100 > point ) { this.proc.FunctionA(&point); this.proc.FunctionB(&point); this.proc.FunctionC(&point); } もうこれでいいよ。
270 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:36:24.40 ] >>269 渡さなくても良い関数には無理して渡さなくても良いんだよ
271 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:36:45.59 ] >>267 別スレッドでpointを書き換える関数(publicかもしれない)が 呼ばれたときのこととか考えるとね。 意味としては、 100 > pointが成り立っている間、 FunctionA(), FunctionB(), FunctionC()を実行しつづけるよ っていうのが重要だとおもうんで。
272 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:37:42.86 ] >>266 お前がなw
273 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:39:17.57 ] >>271 そんな例外(プログラム的な意味ではなく)を考えたところで意味が無いでしょ。 例外は例外らしく処理を切り分けるべき。 ここでは変数pointがどの関数によって影響を受けるか 明示されていることが大事なんだ。
274 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:43:07.32 ] >>273 後者の書き方でも、結局は明示されてないということ。 むしろ、 point = FunctionB( point ); だけをチェックすればいいんだと間違えるかもしれない。
275 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:43:13.34 ] >>271 どうしても無理っていうなら別だけど できる状況なら分かりやすくしとけばいいでしょ
276 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:43:17.04 ] >>258 の流れから while( 100 > point ) { this.proc.FunctionA(); this.proc.FunctionB(&point); this.proc.FunctionC(); } これで文句あるまい。
277 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:43:52.25 ] >>274 だけをチェックすればいいようにするんだよ。
278 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:48:40.72 ] logsoku.com/thread/hibari.2ch.net/tech/1308106024/941- logsoku.com/thread/hibari.2ch.net/tech/1308106024/956 パラダイム未修得のトーシロらしいぞお前ら
279 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:51:55.39 ] オブジェクト指向はインターフェースの外の話しだし パラダイムがどうのとかどうでもいいよ 飽くまで構造化と実用的な保守スタイルの話しだし
280 名前:仕様書無しさん mailto:sage [2012/04/12(木) 00:56:18.33 ] >>278 同じような話だけど、バカが水差して終わってるだけじゃん
281 名前:仕様書無しさん mailto:sage [2012/04/12(木) 07:00:21.99 ] 何か随分と伸びてると思ったら、ゆうべはおたのしみでしたね。 メンバ変数の書き換えについては、小規模なら良い様な気もするけども、 ループカウンタを途中でいじられるのはイラッつとするな。 This必須とか制限を増やしてコーディングの自由度を下げて 誰が書いても似たコードになるようにするのが今の言語の流れかね。
282 名前:仕様書無しさん mailto:sage [2012/04/12(木) 12:03:48.69 ] >>243 実際に動かしてから死ねよって思うかソース見た瞬間に死ねよって思うかぐらいの違いしかないが この違いのおかげでおおごとにならずに済むこともまあまあある
283 名前:仕様書無しさん mailto:sage [2012/04/12(木) 13:20:34.27 ] for( point = 0; 100 > point; ++point ) Function(); // Function()内でpointを更新
284 名前:仕様書無しさん mailto:sage [2012/04/12(木) 14:38:32.69 ] だからコメントは信用するなと……ぐふっ
285 名前:仕様書無しさん mailto:sage [2012/04/12(木) 16:41:17.25 ] なんかすげえ伸びててワロタ
286 名前:仕様書無しさん mailto:sage [2012/04/12(木) 21:28:30.37 ] ここまで読み流した ループカウンタをメンバ変数にするな
287 名前:仕様書無しさん mailto:sage [2012/04/12(木) 21:28:30.63 ] >>281 > This必須とか制限を増やしてコーディングの自由度を下げて 逆に言えばさ、thisを書かなくても良くなったら 自由度があがるってことになると思うんだけどさ、 「thisを書かなくてよくなった、俺は自由だ!」って思う奴いるの? つまりね、俺が言いたいのはthis必須と自由度とは全く関係ないよってこと。 × 「コーディングの自由度を下げて 」 ○ 「コーディングの面倒くささを下げて」 君が本当に言いたいことはこうでしょ? で、問題はthis省略で本当に面倒くささが下がったかどうか。 確かに書くときの面倒さはなくなったが、逆に読むときは 正確な意図がすぐには分からず面倒さは増えることになる。 これは、どっちがいいかって話。トレードオフの話でしかない。 なぜ俺が最初に「自由度とは無関係」と言ったのかというと、自由度は 上がるか下がるかしか無い。そうするとトレードオフの話ではないように見えてしまう。 本当は、this必須かどうかってのは、トレードオフの問題なのに、 this省略できたほうが優れてるような印象になってる。
288 名前:仕様書無しさん mailto:sage [2012/04/12(木) 21:31:27.37 ] 解釈の自由度が下がるやん
289 名前:仕様書無しさん mailto:sage [2012/04/12(木) 21:52:32.47 ] 解釈の自由度ってなに? まさか、書いた本人が どう解釈されてもいいように書いた! なんて言うわけないしw
290 名前:仕様書無しさん mailto:sage [2012/04/12(木) 21:57:34.84 ] > 誰が書いても似たコードになるようにするのが今の言語の流れかね。 これもよくわからんね。 ですます調でかけ!と言われても 似たような小説にはならんだろ? オリジナリティがある小説を書く場合、 そのストーリーでオリジナリティを出すのであって そんな語尾をどうするか程度で、似てる似てないなんて 判断しないだろ。
291 名前:205-206 mailto:sage [2012/04/12(木) 22:18:30.30 ] ごめん、眠くて>>205-206 にいい加減な事書いた。 thisじゃなくてメンバー変数を明示的に引数で渡せば十分だった。 別にthis->
292 名前:is a pen mailto:sage [2012/04/12(木) 22:19:05.26 ]
293 名前:205-206 mailto:sage [2012/04/12(木) 22:21:26.76 ] 途中で送信してしまった 別にthis->〜を強制する意味はなかった。 せめてthisでも明示的に渡せば書き換えが 分り易くなると思ったが無駄だった。
294 名前:仕様書無しさん mailto:sage [2012/04/12(木) 22:25:38.38 ] >>291-293 いや違うって。 引数で渡そうが渡すまいが、 同じクラス内のメソッドだとメンバ変数に自由にアクセスできてしまうから まずは他所へ追いやるのが先だろ。 その追いやる先というのはthis.〜から始まるサブクラスしかあり得ない。 それ以外から始まるクラスはぱっと見でスコープわからんだろ。
295 名前:仕様書無しさん mailto:sage [2012/04/12(木) 22:27:43.50 ] >>294 既にさんざん出てるけどstatic関数なら制限できるよ
296 名前:仕様書無しさん mailto:sage [2012/04/12(木) 22:34:18.14 ] >>295 でもそれがstaticかどうかってぱっと見わからないよね。 staticじゃなくてもコンパイル通るよね。
297 名前:仕様書無しさん mailto:sage [2012/04/12(木) 22:40:31.22 ] >>296 通るだけならグローバル変数だってコンパイル通るじゃん じゃなくて、ルールでそう規制するんでしょ レビューとかでさ
298 名前:仕様書無しさん mailto:sage [2012/04/12(木) 22:47:24.21 ] >>296 簡単な文を一行書くだけで簡単にグローバル変数は使える。 でも現実には、みんな引数渡しを使う。 組織内でダメという風潮を作れるかどうかよ。
299 名前:仕様書無しさん mailto:sage [2012/04/12(木) 23:24:28.33 ] >>282 バグに限った話じゃないけどな 改修しやすさも大きく変わる 5個関数がならんでて、5個の関数の中身調べなきゃ 改修する変数の影響が解からん場合と、 2個関数調べれば変数の動作を完全に把握できる場合とじゃ 作業に掛ける時間が大きく異なる
300 名前:仕様書無しさん mailto:sage [2012/04/12(木) 23:26:48.40 ] 実装の安易さと、保守と、バグ発生の回避を同時に満たすコーディングか。
301 名前:仕様書無しさん mailto:sage [2012/04/12(木) 23:45:09.36 ] スマポにするとコンストラクタでthis使えないからな どんどんソースが汚くなる
302 名前:仕様書無しさん mailto:sage [2012/04/12(木) 23:46:30.95 ] 1段メンバー呼び出してるだけでも面倒だが、 メンバー呼び出し階層が2段でその先で 書き換えられてるとか相当辛いよな そもそも階層増えるなら自分のクラスじゃなく 他のクラスメンバー呼べって話だろうけど
303 名前:仕様書無しさん mailto:sage [2012/04/12(木) 23:51:13.90 ] if(null == hoge) C言語屋の年寄りってこう書くよね 最高にウザいんだけど
304 名前:仕様書無しさん mailto:sage [2012/04/12(木) 23:52:57.20 ] >>303 お前の周りだけ。 類は友を呼ぶ
305 名前:仕様書無しさん mailto:sage [2012/04/13(金) 00:11:15.56 ] C言語ならなおさら書かないんじゃないか? 文字列を==で比較する感覚に似ている
306 名前:仕様書無しさん mailto:sage [2012/04/13(金) 00:51:18.01 ] >>303 一生懸命アラ探ししてやっと見つけたのがそんなどうでもいいことなのなら その先輩は結構デキる奴だな もしくはお前がダメすぎて他のアラが見えないか
307 名前:仕様書無しさん mailto:sage [2012/04/13(金) 01:08:09.16 ] 1年目の新参ですがこのスレは勉強になります
308 名前:仕様書無しさん mailto:sage [2012/04/13(金) 01:20:16.77 ] 1年目の新参だからこのスレは勉強になります
309 名前:仕様書無しさん mailto:sage [2012/04/13(金) 06:15:22.90 ] >>303 定数を先に書くのはC初心者の象徴だろう。
310 名前:仕様書無しさん mailto:sage [2012/04/13(金) 06:41:06.79 ] >>309 俺も定数先に書くわ 何か問題あんの?
311 名前:仕様書無しさん mailto:sage [2012/04/13(金) 06:52:14.05 ] 「定数を先に書いておくと、 比較と代入を間違えて記述したときエラーになるので 間違いを見つけ易い」 という理由でそういう記述の仕方をする人は散見するけども、 それは 「私は比較と代入を間違える可能性があります」 と宣言してるようなもんで、他の部分もちょっと信用ならないよねーという ただの経験則。
312 名前:仕様書無しさん mailto:sage [2012/04/13(金) 07:07:50.84 ] ==は「〜が一致する」的な読み方だから「1とaが一致」より「aと1が一致」がaの中身を調べてるって文章になり読みやすい…気がするから変数先だな完全に個人的な理由だが
313 名前:仕様書無しさん mailto:sage [2012/04/13(金) 07:14:55.68 ] >>311 0 > ExampleFunction( ・・・, ・・・, ・・・, ・・・, ・・・ ) 定数左に書けば条件見やすいけど ExampleFunction( ・・・, ・・・, ・・・, ・・・, ・・・ ) < 0 定数右に書くと条件が右端に行くんで見づらい
314 名前:仕様書無しさん mailto:sage [2012/04/13(金) 07:39:34.94 ] >>313 下のが見やすいんだが
315 名前:仕様書無しさん mailto:sage [2012/04/13(金) 08:45:33.13 ] >>313 変数使えばいいやん。 条件式に直接使うぐらいなら、ほとんどの場合はExampleFunctionは意味のある名前の「はず」だから 文脈そのまま読める方が読みやすいと思うが・・・まぁ慣れれば慣れるんだろうな。
316 名前:仕様書無しさん mailto:sage [2012/04/13(金) 10:47:49.74 ] 伸びすぎててイラッつとしたコーディングスレ
317 名前:仕様書無しさん mailto:sage [2012/04/13(金) 14:45:34.51 ] >>311 > 「私は比較と代入を間違える可能性があります」 > と宣言してるようなもんで、他の部分もちょっと信用ならないよねーという == とタイプしようとして = とタイプしてしまう可能性は誰にでもある 「俺は間違えるかもしれない」と言ってる奴は、「俺は絶対間違えない」って奴よりも信用できる たとえコンパイルオプションやツールでチェックできるとしても、 (0 == foo) って書くのは悪いことじゃない そもそも、(0 == foo) が理解し辛いって奴は、数学的センスに欠けている 地図を読むときに、常に進行方向が上になるように地図をぐるぐる回す奴に通じるものがある そんな奴とも一緒に仕事をしなければならない以上、 規約で (foo == 0) って記法に統一するってのはあるかもしれないが、 そんな奴はお荷物だということを自覚すべき
318 名前:仕様書無しさん mailto:sage [2012/04/13(金) 14:52:53.94 ] >>317 > 「俺は間違えるかもしれない」と言ってる奴は、「俺は絶対間違えない」って奴よりも信用できる 俺なら、コンパイラがチェックしてくれるのに、「俺は間違えるかもしれない」から(0 == foo)とか書く奴は、 間抜けか頭堅い奴と判断する。 > たとえコンパイルオプションやツールでチェックできるとしても、 (0 == foo) って書くのは悪いことじゃない 悪いことだよ。 > そもそも、(0 == foo) が理解し辛いって奴は、数学的センスに欠けている 数学的センスなんか関係無いよ。言語の話をしてるんだよ。 「if foo is zero」と「if zero is foo」を同じように同じ速度で紛れがなく誰でも判断できるかどうかの話。 > そんな奴はお荷物だということを自覚すべき お前がお荷物だよ、全く。
319 名前:仕様書無しさん mailto:sage [2012/04/13(金) 14:56:55.59 ] マジックナンバーを直書きすることはほとんどないし 定数なのにconstを忘れる可能性もあるな
320 名前:仕様書無しさん mailto:sage [2012/04/13(金) 15:17:29.57 ] 0 == fooと書いたとしても、問題の解決になっていないからねぇ。 手癖みたいなもんで、書くのは勝手だとおもうが 「0 == fooのほうがいい」と主張する奴の話は当てにしない。
321 名前:仕様書無しさん mailto:sage [2012/04/13(金) 15:28:50.32 ] たとえ話をする奴は説明が下手
322 名前:仕様書無しさん mailto:sage [2012/04/13(金) 16:12:14.85 ] 誰も 0 == foo の方が良いって主張してないと思うが foo == 0 の方が良いって主張してる奴はいるけど
323 名前:仕様書無しさん mailto:sage [2012/04/13(金) 16:17:01.34 ] >>322 日本語の読解力に甚だしく欠けてます
324 名前:仕様書無しさん mailto:sage [2012/04/13(金) 16:28:25.79 ] >>322 お前にイラッつとしたわ
325 名前:仕様書無しさん mailto:sage [2012/04/13(金) 16:55:33.94 ] >>311 ちょっと頭悪すぎ hoge == null の方がいい理由は、null == hoge と書いたときに得られるわずかな利点よりも、 直感的に理解しづらいという欠点の方が大きいから もちろん if (hoge = null) みたいなミスを検出できる開発環境下が前提だが
326 名前:仕様書無しさん mailto:sage [2012/04/13(金) 17:11:28.77 ] >>325 いや、お前が頭悪すぎだから >>311 を百回読め
327 名前:仕様書無しさん mailto:sage [2012/04/13(金) 17:18:36.25 ] if (0 == hoge)の件は、ある程度の分量の文章を一度読んだだけでは理解できないIQの層の奴らの 琴線に触れる何かをもってるんだろうな
328 名前:仕様書無しさん mailto:sage [2012/04/13(金) 17:27:01.97 ] >>326 俺は 0 == x と書く人に対して、用心深いとは思っても > 「私は比較と代入を間違える可能性があります」 > と宣言してるようなもんで、他の部分もちょっと信用ならないよねーという みたいな感想は抱かないがね
329 名前:仕様書無しさん mailto:sage [2012/04/13(金) 17:31:55.14 ] >>325 =>>328 だとしたら、ちょっと何言ってるのかわからないレベル
330 名前:仕様書無しさん mailto:sage [2012/04/13(金) 17:37:41.05 ] え? 「私は比較と代入を間違える可能性があります」から、用心深く0 == x と書く人が糞だとみんな言ってんじゃないの?
331 名前:仕様書無しさん mailto:sage [2012/04/13(金) 17:42:57.72 ] >>328 俺なら、そんなくだらん用心深さなんか発揮しないで、読みやすいコード書けアホと思うな。
332 名前:仕様書無しさん mailto:sage [2012/04/13(金) 17:50:48.47 ] 雨が降る可能性が0%でないからと言って、毎日レインコートと長靴で生活する馬鹿
333 名前:仕様書無しさん mailto:sage [2012/04/13(金) 17:50:49.33 ] >>331 で、お前は 0 == x と書く人の他の部分のコードが信用ならないと思うのか? 俺は他の部分にも同様の用心深さを期待できてむしろ信用できると思うがね
334 名前:仕様書無しさん mailto:sage [2012/04/13(金) 17:53:34.46 ] >>333 全く信用できない。 そいつは、 ・コンパイラが教えてくれるのを知らない無知 ・それは知ってるが、「念のため」とかいう訳のわからない理由でスタイルを崩さない馬鹿 のどちらかだから。
335 名前:仕様書無しさん mailto:sage [2012/04/13(金) 17:53:44.63 ] >>332 > 雨が降る可能性が0%でないからと言って、毎日レインコートと長靴で生活する馬鹿 ソフトウェア開発においては、それが普通
336 名前:仕様書無しさん mailto:sage [2012/04/13(金) 17:56:18.69 ] if (0 == hoge)と書く奴を「用心深い奴」と評価する奴に初めて会ったわ
337 名前:仕様書無しさん mailto:sage [2012/04/13(金) 17:59:37.08 ] if (0 == x)と書くことが良いことだと思うような間抜けのコードが信頼できるわけないだろ
338 名前:仕様書無しさん mailto:sage [2012/04/13(金) 18:00:54.32 ] 条件式は左辺が評価対象じゃないとな 左読みで重要な情報を先に目に入るようにしないと、思考の効率が格段に悪くなる
339 名前:仕様書無しさん mailto:sage [2012/04/13(金) 18:03:58.21 ] returnやsizeofで不要な括弧を「その方がわかりやすいから」と取ろうとしない奴とか、 if (hoge == true)を「その方がわかりやすいから」という奴と同じ臭いがする
340 名前:仕様書無しさん mailto:sage [2012/04/13(金) 18:04:59.80 ] GNUのコーディングスタイルほどいらつくものは無い
341 名前:仕様書無しさん mailto:sage [2012/04/13(金) 18:08:09.13 ] >>311 コーディング標準とか禁じ手を全否定?
342 名前:仕様書無しさん mailto:sage [2012/04/13(金) 18:10:42.06 ] またわけのわからん奴が現れた
343 名前:仕様書無しさん mailto:sage [2012/04/13(金) 18:17:26.07 ] 括弧や演算子の前後に一切スペースを入れず、空行も一切入れないスタイルにいらつく
344 名前:仕様書無しさん mailto:sage [2012/04/13(金) 19:14:49.43 ] >>317 >== とタイプしようとして = とタイプしてしまう可能性は誰にでもある 自分のを発見して「ホントにあるんだ・・・」と、変な感動を覚えた記憶がある
345 名前:仕様書無しさん mailto:sage [2012/04/13(金) 19:18:12.09 ] 不毛な議論
346 名前:仕様書無しさん mailto:sage [2012/04/13(金) 19:18:48.78 ] 3 x 4 と 4 x 3 は意味が違うんだ、という小学校の話を思い出した。
347 名前:仕様書無しさん mailto:sage [2012/04/13(金) 21:18:11.51 ] >>339 sizeofは括弧付けちゃうなあ・・・
348 名前:仕様書無しさん mailto:sage [2012/04/13(金) 21:30:47.51 ] >>346 3+3+3+3と4+4+4は確かに違うといえば違う
349 名前:仕様書無しさん mailto:sage [2012/04/13(金) 21:37:56.62 ] == を妄想オーバーライドしすぎ
350 名前:仕様書無しさん mailto:sage [2012/04/13(金) 21:51:32.59 ] regist
351 名前:仕様書無しさん mailto:sage [2012/04/13(金) 21:55:31.92 ] >>350 あるあるw
352 名前:仕様書無しさん mailto:sage [2012/04/13(金) 22:13:55.77 ] >>315 やだよ一時変数で済むもんワザワザ宣言するなんて あと、具体的な名前書いても条件が画面右寄りになることで到底分かりやすくなったとも思えん while( 0 < GetMessage( &message, 0, 0, 0 ) ){}
353 名前:仕様書無しさん mailto:sage [2012/04/13(金) 23:05:38.21 ] hoge == 0 でも 0 == hoge でも何とかなるのだが、 hoge == 0 で統一されたソースに 0 == hoge で 追加修正された時はイラッつとした
354 名前:仕様書無しさん mailto:sage [2012/04/13(金) 23:48:50.81 ] まだそのネタが続いてるのか 0 == hoge か hoge == 0 かなんてどうでもいい >>311 の頭おかしいのは > 「私は比較と代入を間違える可能性があります」 > と宣言してるようなもんで、他の部分もちょっと信用ならないよねーという の部分 もっと言うと、>>311 は一切typoしない、typoする奴は信用ならねーって言ってること
355 名前:仕様書無しさん mailto:sage [2012/04/14(土) 00:00:15.21 ] 両者を納得させるために hoge == A は (hoge - A) == 0 にしようず
356 名前:仕様書無しさん mailto:sage [2012/04/14(土) 01:27:09.14 ] >>339 ちなみに、「sizeof 識別子」と「sizeof(型)」は別物ですよ? 混在してると解り難いってゆーなら括弧必須のルールでもいいけど。
357 名前:仕様書無しさん mailto:sage [2012/04/14(土) 01:29:53.09 ] >>352 while (GetMessage(&message, 0, 0, 0) > 0) { } ふぅ。
358 名前:仕様書無しさん mailto:sage [2012/04/14(土) 01:47:16.66 ] 100%ミスしない人間が存在しているという前提がもう頭おかしいだろ。 0==hogeが見難いのは単なる慣れ。 オレの気に入る書き方以外はクソとかどんだけ自己中なのか。
359 名前:仕様書無しさん mailto:sage [2012/04/14(土) 02:18:18.91 ] >>358 >>334
360 名前:仕様書無しさん mailto:sage [2012/04/14(土) 02:29:41.11 ] そうかいちゃダメな理由になってないだろうww
361 名前:仕様書無しさん mailto:sage [2012/04/14(土) 02:47:50.81 ] そうだね。
362 名前:仕様書無しさん mailto:sage [2012/04/14(土) 04:40:43.71 ] 0==hogeって書く奴は定数がdefineされててもFUGA==hugeってやるんだよな。キモイ… つか、==じゃない比較演算子もそうすんの?HOME>=hageとか。==だけ?
363 名前:仕様書無しさん mailto:sage [2012/04/14(土) 05:22:19.96 ] >>362 不等号に関しては、複数並ぶときに向きを揃えるっていう 数学的なお約束があるんで、それに合わせることも多いんじゃね。 定数1 <= 変数A && 変数A <= 定数2 みたいに。
364 名前:仕様書無しさん mailto:sage [2012/04/14(土) 05:24:52.86 ] >>358 スレタイ読め
365 名前:仕様書無しさん mailto:sage [2012/04/14(土) 06:25:36.06 ] 。・゚・(Д゚(0==(´∀` ) これをグループ内で提案したらものすごく気持ち悪がられた 本質的に「わざと違和感を抱かせてミスを防ぐ」トリックだから やむをえないかもしれない
366 名前:仕様書無しさん mailto:sage [2012/04/14(土) 09:10:49.83 ] それは慣れていない所だから有効なんだろう。 違和感が無くなるほど使用されている現場ならミス防止には役に立たない。 削除の時の確認ダイアログと同じ話。
367 名前:仕様書無しさん mailto:sage [2012/04/14(土) 09:28:16.94 ] >365 >本質的に「わざと違和感を抱かせてミスを防ぐ」トリックだから >やむをえないかもしれない そんな理由付けが許されるならば、 int func0005() とかも許されるな。 「これも、わざと違和感をもたらせてミスを防ぐトリックですよ」とか 「関数名がもたらす思い込みを排することでミスを防いでいます」とか。
368 名前:仕様書無しさん mailto:sage [2012/04/14(土) 09:38:57.26 ] >>367 違和感を抱かせて「あぁ。そういうことね」と思い出させる。 0==hogeを見れば、「hogeに代入しないように」ということを思い出す。 さて、int func0005() 違和感は感じるが、肝心の「思い出す」ことはなんだ?
369 名前:仕様書無しさん mailto:sage [2012/04/14(土) 09:52:09.53 ] hogeには代入してもいいんじゃないの? 代入したくないんだったらconstでも付けとけばいい話では。 (言語によってはできないのもあるのかな)
370 名前:仕様書無しさん mailto:sage [2012/04/14(土) 10:27:21.14 ] if( 0 == hoge ) はほとんどお目にかかった事無いから気にして無い。 if( hoge = 0 ) はWarning出てるのに放置されてたのをこの前見かけた。 Warning出てるのにコミットする奴にイラッつとする。
371 名前:仕様書無しさん mailto:sage [2012/04/14(土) 10:56:45.31 ] >>368 「動作を知りたければ仕様書にあたれ」とか?
372 名前:仕様書無しさん mailto:sage [2012/04/14(土) 11:09:30.40 ] だいたいそんな言語を使うほうが悪い VB使えよ
373 名前:仕様書無しさん mailto:sage [2012/04/14(土) 12:33:07.09 ] だめだ、このスレは汚いソースコード位イライラする
374 名前:仕様書無しさん mailto:sage [2012/04/14(土) 12:34:52.32 ] イライラじゃなくイラッつとしなくちゃダメだろ
375 名前:仕様書無しさん mailto:sage [2012/04/14(土) 12:36:56.40 ] ☆ × ' . × x ` . x ヽ . ☆ X ,. -. ‐'´ ̄``丶、 ノ} X /} /: : : : : : : : : ーヘ × / //: : : :l: .:. .} | . : : : : } . . ゜ _ノ_,ム′: : : |:::::::/! l.::. : ! /: :\ , ☆ _/ /,. -‐〉 : : :_ !:;イ¬.|:i::: |i.|. :.i::: : : ヽ ; ☆ . . ,. '´!{ ゝ-‐''^¨二.ノ:〔__− V!::!LTV{::: : : :.', ×x . ぃ .イ::. : : |⌒` }:リ'示Y1:: : : i } x × . '´ ,. 介iー-、 {:::::::::. : : ! ^' ヒ'リ ',.|:::. :.. :.!リ X X / /ヽ' L! ヽ. Y::::i::::. .::. |r:ゥ- 、' `^ /:::l::::.::::.x:リ′ ; ☆ イラッ☆ x / / /⌒ヽ 込Jヽ:ト:{>、:ィ八_ ,.‐く イ:ィ:::!x::X::/ ゛ i'´ /-r‘ー、 ヘ-┴‐〉 `'i¬ ヘ.__{:::::::}.彳〔__レ1::ル'゜ ゜ . ー 、 --−'´ コ:..:.}: \ 丶 .l | -、匸⌒´:_;-、ノ }_ ´ ゜ ×. `ヽ、 └;.:. .. } 〉 ヽ.| 〈__:,.イv/´〕、冫`i x ☆ ` ¬ゥ´:..:....:..:..:..: ,ノ、 \ { ! {.{j_/,ィう′ ! x ' Y:..:..:..X:..:..:.∠.._ ヽ.} |. } `マ^V | X , ゛ヽ:..:..:..:../ ,.⊥_ /小\¬-{ ∨ヘ._,. -‐¬、 ☆ ` ー′ j:..:..:..:Y´:´/ハ卜':..! :ヽ ∧::ヘ .:..:... } /:..:..:..:..j/:..:.`:..:´:..:..i :..:ト-_ノ マ'’:..:..:..:..ヘ
376 名前:仕様書無しさん mailto:sage [2012/04/14(土) 12:44:31.81 ] >>357 それ何が見やすいの?
377 名前:仕様書無しさん mailto:sage [2012/04/14(土) 12:47:34.30 ] おまいらなんでC前提なん
378 名前:仕様書無しさん mailto:sage [2012/04/14(土) 12:53:40.47 ] 他の言語と違って、標準的なコーディングスタイルってものがないから。
379 名前:仕様書無しさん mailto:sage [2012/04/14(土) 12:58:37.37 ] そんな言語早く捨ててしまえ
380 名前:仕様書無しさん mailto:sage [2012/04/14(土) 13:11:52.79 ] 比較演算に順序が決まってる言語なんてそもそも有っただろうか
381 名前:仕様書無しさん mailto:sage [2012/04/14(土) 13:53:02.05 ] >>368 >違和感は感じるが、肝心の「思い出す」ことはなんだ? 一言では言い表せない、その関数の振る舞い全て。 >>371 その通り。
382 名前:仕様書無しさん mailto:sage [2012/04/14(土) 14:06:32.51 ] >>381 そう思うならプログラムなんて適当に書けば? ここにいる必要ないし、この板にいる必要もない。 プログラマ辞めちまえよ。
383 名前:仕様書無しさん mailto:sage [2012/04/14(土) 14:11:37.03 ] >>381 真性の馬鹿だな。死んで欲しい。
384 名前:仕様書無しさん mailto:sage [2012/04/14(土) 14:25:13.34 ] >>381 > 一言では言い表せない じゃあダメだろw 一言で言い表せることが重要なんだから。
385 名前:仕様書無しさん mailto:sage [2012/04/14(土) 17:06:28.29 ] イラッつとした相手が上司だったり先輩だったりすると何て言えばいいかわからない
386 名前:仕様書無しさん mailto:sage [2012/04/14(土) 17:15:42.21 ] >>382-384 お前は何と戦っているんだ?
387 名前:仕様書無しさん mailto:sage [2012/04/14(土) 17:17:27.90 ] >>385 イラッとしたら何か言わなくてはいけないという 法律でもあるのか?
388 名前:仕様書無しさん mailto:sage [2012/04/14(土) 17:23:41.06 ] 普通イラッてしたら イラって言うだろ? 昨日も満員電車で イラって何回も言ったわ
389 名前:仕様書無しさん mailto:sage [2012/04/14(土) 17:30:20.61 ] 昔ある中華料理のチェーン店でバイトしてたせいか 内装の同じ店に行くと新しい客が来たとき「イラッ」って言ってしまう
390 名前:仕様書無しさん mailto:sage [2012/04/14(土) 17:59:30.27 ] >>388 うわーキモいw そういう中二病のやついたなー学生の時w
391 名前:仕様書無しさん mailto:sage [2012/04/14(土) 18:25:54.65 ] >>388 言わねえよww
392 名前:仕様書無しさん [2012/04/14(土) 18:26:10.67 ] >>55 同意 >>249 あくせる >>289 解釈の自由度が下がる=誤解が減る
393 名前:仕様書無しさん mailto:sage [2012/04/14(土) 18:28:55.84 ] >>386 イラッつとしたら人に当たり散らすタイプなんだろう。 >>385 言い返す権利はないのよ?(´・ω・`)
394 名前:仕様書無しさん mailto:sage [2012/04/14(土) 18:54:49.16 ] >>389 しゃーせー
395 名前:仕様書無しさん mailto:sage [2012/04/14(土) 19:18:26.96 ] >>381 は敢えて仕様書を読ませる為に プログラムを読みにくくすると言ってるんだぞ。 まるでコボラーだな。
396 名前:仕様書無しさん mailto:sage [2012/04/14(土) 20:06:14.10 ] ソース暗号化しといて、readmeに「複合鍵は仕様書の中に隠されているよ!頑張ってね☆ミ」で解決
397 名前:仕様書無しさん mailto:sage [2012/04/14(土) 21:10:03.59 ] while (GetMessage(&message, 0, 0, 0) > 0) { } が while( 0 < GetMessage( &message, 0, 0, 0 ) ){} になるだけで仕様書読まなきゃならんのか
398 名前:仕様書無しさん mailto:sage [2012/04/14(土) 22:32:45.64 ] >>395 もう関数名を「仕様書嫁123」とかにすればいいのに。
399 名前:仕様書無しさん mailto:sage [2012/04/14(土) 22:37:11.11 ] コンパイルしてしまえばコーディングスタイルなんて気にしなくてもよくなるだろ
400 名前:仕様書無しさん mailto:sage [2012/04/14(土) 22:43:49.11 ] そゆこという奴よくいるよな
401 名前:仕様書無しさん mailto:sage [2012/04/14(土) 22:44:20.94 ] コンパイルした後のコードを読んで修正してメンテナンスし続けるのならそうかもなw
402 名前:仕様書無しさん mailto:sage [2012/04/14(土) 22:54:21.47 ] >>395 有象無象のソルジャーというか土方というか、そういうのを束ねて開発する 方法論としてはアリだと思うがな。やらされる立場になったら負けということで。
403 名前:仕様書無しさん mailto:sage [2012/04/14(土) 23:03:55.99 ] やる立場になっても負けだろw
404 名前:仕様書無しさん mailto:sage [2012/04/15(日) 01:09:35.10 ] 男ならコードで語れや
405 名前:仕様書無しさん mailto:sage [2012/04/15(日) 15:19:30.14 ] if (VeryLongoLongFunctionName(var1,var2,var3,var4) > 3) みたいにクソ長い名称と比較するときは、定数を左辺に置いたほうが見やすい。
406 名前:仕様書無しさん mailto:sage [2012/04/15(日) 15:26:58.70 ] int value = VeryLongoLongFunctionName(var1,var2,var3,var4); if (value > 3) こうすればいいだけ
407 名前:仕様書無しさん mailto:sage [2012/04/15(日) 15:35:57.19 ] そもそも関数名すら読まないのかと疑いたくなる
408 名前:仕様書無しさん mailto:sage [2012/04/15(日) 15:46:23.75 ] 引数が多くて横に長くなる時にどう書いたら見やすいかでイラッつとする。 func( var1, var2, var3 ); funcがやたら長い名前だと何か変な感じになるしで困る。
409 名前:仕様書無しさん mailto:sage [2012/04/15(日) 16:19:41.22 ] func( val1, val2, val3, val4, val5, val6, val7, val8) { } って書けばいいだけ
410 名前:仕様書無しさん mailto:sage [2012/04/15(日) 17:30:55.79 ] Bazooka bazooka = new Bazooka("89mm"); bazooka.setDigree(60f); bazooka.setRoll(25f); bazooka.setPitch(0f); bazooka.setExpression(0.5f); bazooka.setPos(0f, 0f, -0.5f); bazooka.setColor(1.0f, 1.0f, 1.0f, 1.0f); bazooka.isMorningBazooka(false); bazooka.setTarget("Kycilia Zabi"); Result result = bazooka.shot();
411 名前:仕様書無しさん mailto:sage [2012/04/15(日) 19:29:26.29 ] >>406 いちいち変数に入れるなよイラッとする
412 名前:仕様書無しさん mailto:sage [2012/04/15(日) 19:33:24.86 ] >>411 デバッガ使わない (使えない) 人特有の症状だね>一時変数を嫌う
413 名前:仕様書無しさん mailto:sage [2012/04/15(日) 19:56:25.02 ] おまえがいってるのは一時変数じゃないだろ それはともかく、whileやifの条件ならどっちの分岐に進んだか、 ループを抜けたか抜けないかで判断できる。 それによほどしょぼいデバッガーじゃなけりゃ戻り値確認できるし。
414 名前:仕様書無しさん mailto:sage [2012/04/15(日) 20:06:06.00 ] >>409 こいつ馬鹿 >>410 何回も変数書いてバカっぽい。 どんだけタイピング好きなの?
415 名前:仕様書無しさん mailto:sage [2012/04/15(日) 20:25:38.67 ] このスレのほとんどはGoにすれば解決しそうだな。
416 名前:仕様書無しさん mailto:sage [2012/04/15(日) 20:33:30.55 ] メソッドチェインにするか
417 名前:仕様書無しさん mailto:sage [2012/04/15(日) 20:33:53.56 ] >>414 うん、それで? 続き言わないとお前が恥をかくよ。
418 名前:仕様書無しさん mailto:sage [2012/04/15(日) 20:39:41.62 ] >>414 は構造体に入れて渡すと言いだす
419 名前:仕様書無しさん mailto:sage [2012/04/15(日) 20:41:52.50 ] 構造体にいれたら 関数のインターフェース変わるじゃんw
420 名前:仕様書無しさん mailto:sage [2012/04/15(日) 20:49:56.05 ] カリー化しようよ
421 名前:仕様書無しさん mailto:sage [2012/04/15(日) 20:56:44.35 ] じゃあ俺チキンカリー
422 名前:仕様書無しさん mailto:sage [2012/04/15(日) 20:56:56.57 ] 毎回引数が変わるのにカリー化するのか? カリー化がわからない人へ。 class Foo { Foo(x, y, z); } ↓Foo(コンストラクタ)をカリー化すると class Foo { Foo(x, y) { Foo(x, y, 1) } Foo(x, y, z); } こうなります。これがカリー化ですw
423 名前:仕様書無しさん mailto:sage [2012/04/15(日) 20:59:25.22 ] おおー、よく使うけど呼び名知らなかったわ
424 名前:仕様書無しさん mailto:sage [2012/04/15(日) 21:00:41.71 ] デフォルト引数でいいやん
425 名前:仕様書無しさん mailto:sage [2012/04/15(日) 21:04:36.87 ] >>422 違うだろ。 これだよ。 void foo(x, y, z) ↓ カリー化 #define foo1(x, y) foo(x, y, 1) 関数fooの引数のいくつかを埋めた、 ”新しい関数を作る”こと
426 名前:仕様書無しさん mailto:sage [2012/04/15(日) 21:09:58.81 ] >>425 変わらんだろ
427 名前:仕様書無しさん mailto:sage [2012/04/15(日) 21:13:27.79 ] つかいま出てるのってカリー化モドキだよな F(1, 2, 3, 4, 5); F(1)(2)(3)(4, 5); 本来のカリー化なら呼び出し方を変えられるだけ 新しい関数を定義する必要はない 1つ関数を定義すれば自動で2通りの書き方ができる
428 名前:仕様書無しさん mailto:sage [2012/04/15(日) 21:37:46.36 ] >>427 ほう、それは便利だ! なにが?
429 名前:仕様書無しさん mailto:sage [2012/04/15(日) 21:47:58.06 ] F(1, 2, 3, 4, 5); F(1)(2)(3)(4, 5); 単に数学の概念上この2つが別である事がおかしいって話だよな プログラム的にはこれが出来るとアダプター作る手間が省けて格段に楽になるんだが
430 名前:仕様書無しさん mailto:sage [2012/04/15(日) 22:01:57.19 ] 実際にはアダプタ作るとか ラッパー関数作れば終わりなんだけどな。
431 名前:仕様書無しさん mailto:sage [2012/04/15(日) 22:02:21.06 ] 引数の数を変えるだけの場合。
432 名前:仕様書無しさん mailto:sage [2012/04/15(日) 22:48:31.36 ] 引数の多い関数が嫌だ。 引数が多いだけならともかく、多機能にして省略可能な引数を作るクズを絞め殺したい。
433 名前:仕様書無しさん mailto:sage [2012/04/16(月) 00:22:40.42 ] 「コーディングスタイル」以外の話はスレ違いですよ莫迦共。
434 名前:仕様書無しさん mailto:sage [2012/04/16(月) 00:53:37.95 ] ぬるほど
435 名前:仕様書無しさん mailto:sage [2012/04/18(水) 14:38:45.93 ] int GetSize()という関数を使うのに if (!GetSize()) { … }
436 名前:仕様書無しさん mailto:sage [2012/04/18(水) 15:37:32.74 ] >>435 ああ、これはイラッつとするな
437 名前:仕様書無しさん mailto:sage [2012/04/18(水) 19:50:50.31 ] >>435 Javaで、java.beansを使うわけでもなく、 それどころかCかC++なのにいちいちGet付けてんのがイラッとする。 Qtやらboostみたいにobject.Size();か、〜Size( object );でいいだろうに。
438 名前:仕様書無しさん mailto:sage [2012/04/18(水) 21:35:43.22 ] >>437 には同意 だが、 if (! foo.size()) { // fooが空でないときの処理 } の書き方は全く問題なし
439 名前:仕様書無しさん mailto:sage [2012/04/18(水) 21:50:25.96 ] え? >>438 コメントかコードのどちらかが間違ってるんじゃね?
440 名前:仕様書無しさん mailto:sage [2012/04/18(水) 23:13:07.07 ] >>439 そのsize()はboolean型で、オブジェクトが空のときにtrueを返すという仕様という罠。
441 名前:仕様書無しさん mailto:sage [2012/04/18(水) 23:15:14.67 ] >>435 とりあえず、Gが大文字なのがイラッつとする
442 名前:仕様書無しさん mailto:sage [2012/04/18(水) 23:26:48.71 ] それは言語によって推奨されとる命名規則が違うんでなんとも
443 名前:仕様書無しさん mailto:sage [2012/04/19(木) 07:03:01.65 ] Type.newと書ける言語でもないのに 関数名のキャメルケースがコンストラクターの キャメルケースと違うのがイラッとする const Example &object = Type(); const Example &object = Function();
444 名前:仕様書無しさん mailto:sage [2012/04/20(金) 05:38:44.65 ] どうでもいいが、 for (i = 0; i < point; i++) {...} は許せるが、 for (i = 0; point > i; i++) {...} はイラッとくる。 あと、K&Rスタイルじゃないコーディングもイラッと来るおっさんですが。
445 名前:仕様書無しさん mailto:sage [2012/04/20(金) 06:59:50.72 ] ラムダ式とプロパティの存在
446 名前:仕様書無しさん mailto:sage [2012/04/20(金) 18:04:11.69 ] void illatz(int n, int step) { printf("%d, ", n); if (n < 2) { printf("%d step\n", step); return; } ++step; n = n%2 ? 3*n+1 : n/2; illatz(n, step); }
447 名前:仕様書無しさん mailto:sage [2012/04/20(金) 19:59:13.79 ] 見やすく書く、 呼び出し構造を追いかけやすくする インデントを揃える こういう書き方ができない奴は プログラマに向いていない。 美意識が無いやつは消えろ。
448 名前:仕様書無しさん mailto:sage [2012/04/20(金) 20:04:12.06 ] hoge禁止 fooは許せるがhogeはイラッつとする俺だが、表立ってhogeを禁じられるのはそれはそれでイラッつとする
449 名前:仕様書無しさん mailto:sage [2012/04/20(金) 20:06:43.00 ] fooとかbarは西洋かぶれっぽくて嫌味が。
450 名前:仕様書無しさん mailto:sage [2012/04/20(金) 23:55:09.79 ] >>448 お前hageだな?w
451 名前:仕様書無しさん mailto:sage [2012/04/21(土) 00:16:12.53 ] は、は、は、はげちゃうわ!
452 名前:仕様書無しさん mailto:sage [2012/04/21(土) 11:07:27.55 ] まあまあ アイスでも食って落ち着こうぜ ttp://www.haagen-dazs.co.jp/
453 名前:仕様書無しさん mailto:sage [2012/04/21(土) 12:52:00.49 ] 俺は薄いだけだからセーフだな
454 名前:仕様書無しさん mailto:sage [2012/04/21(土) 17:15:03.61 ] ホリエモン 元ニート でググれ やばすぎwwwwwwwwwwwwwwwwwwwwwwwwww
455 名前:仕様書無しさん mailto:sage [2012/04/21(土) 18:57:29.69 ] a.set(b.getHoge()) こういう戻り値を直接引数に渡しているコード デバッグしずらいんだよね
456 名前:仕様書無しさん mailto:sage [2012/04/21(土) 19:43:40.18 ] どうすべきだと思う? いったん器に入れてから食う?
457 名前:仕様書無しさん mailto:sage [2012/04/21(土) 20:29:54.84 ] デバッガを変える
458 名前:仕様書無しさん mailto:sage [2012/04/21(土) 21:43:37.82 ] うーん、読みやすいと思うんだけどねー
459 名前:仕様書無しさん mailto:sage [2012/04/21(土) 22:53:11.51 ] デバッガ使わないやつはまったく使わないからな。 オレなら一時変数に1度いれるようにする。
460 名前:仕様書無しさん mailto:sage [2012/04/22(日) 06:52:26.52 ] 場合によるが大抵は一時変数にいれるな
461 名前:仕様書無しさん mailto:sage [2012/04/22(日) 18:58:57.81 ] 俺も一時変数に入れる
462 名前:仕様書無しさん mailto:sage [2012/04/22(日) 19:02:15.91 ] >>456 戻り値を表示できるデバッガを使うのが一番楽
463 名前:仕様書無しさん mailto:sage [2012/04/22(日) 19:29:33.48 ] int getHoge(){ return Fuga; } ってのがヘッダに書いてあってもデバッグし辛い時があるけど、諦めてる。
464 名前:仕様書無しさん mailto:sage [2012/04/22(日) 21:44:00.17 ] それはインライン展開があるからしょうがない。 でも行を分けてないとデバッグしにくいよね。使わないやつには判らんだろうが。
465 名前:仕様書無しさん mailto:sage [2012/04/22(日) 21:56:01.47 ] printfデバッグだって変数につっこまなきゃできないぞ
466 名前:仕様書無しさん mailto:sage [2012/04/23(月) 00:33:12.37 ] 一時変数にいれる一手間を加えると美味しいソースが出来るの? 同じ味が出せるなら手抜きした方がいいと思うんだけど。
467 名前:仕様書無しさん mailto:sage [2012/04/23(月) 00:38:58.96 ] > 一時変数にいれる一手間を加えると美味しいソースが出来るの? 簡単に味見ができる。
468 名前:仕様書無しさん mailto:sage [2012/04/23(月) 00:52:14.87 ] そんなに手間かなあ?
469 名前:仕様書無しさん mailto:sage [2012/04/23(月) 04:46:41.50 ] そんなに手間っていうより、無駄な手間って感じ。 関数名が正しければ一時変数にいれない方が文章として読みやすいし。 あと、処理系によつまては処理が早そうだし。 と書いたけど、俺も一時変数にいれた方がその後のコードが読みやすくなる場合は一時変数にいれてるな。 入れる入れないの判断基準が「デバッグ出力しやすいか」ってのと「読みやすいか」ってのとの違いか。
470 名前:仕様書無しさん mailto:sage [2012/04/23(月) 07:43:18.44 ] 副作用を消せば返ってくる値が同じなので変数に入れる必要すらなくて ただ関数の結果をピークすればいい。
471 名前:仕様書無しさん mailto:sage [2012/04/23(月) 08:01:12.26 ] >>464 コンパイラにまかせろよ ライブラリとして外部に譲渡すること考えたらキモチ悪いだろ
472 名前:仕様書無しさん mailto:sage [2012/04/23(月) 13:55:23.45 ] 一時変数に入れるのはいいが、temp だの value だの ret なんて名前だったり、const つけてなかったりしてるとイラッつとする。
473 名前:仕様書無しさん mailto:sage [2012/04/23(月) 22:00:40.40 ] >>472 そんな奴が一時変数の効能考えて使ってるとは思えないわw
474 名前:仕様書無しさん mailto:sage [2012/04/23(月) 22:32:09.16 ] 中途半端な変数使うぐらいなら観察用関数使った方がましだわ 名前考えるのマンドクセ template<class type> type &Check( type &value ) { return value; } template<class type> const type &Check( const type &value ) { return value; } FunctionB( Check( FunctionA() ) );
475 名前:仕様書無しさん mailto:sage [2012/04/23(月) 22:44:57.33 ] >>474 そうするくらいならFunctionAの結果を直接見るよね
476 名前:仕様書無しさん mailto:sage [2012/04/23(月) 23:11:32.50 ] 今どき戻り値が見れないデバッガとか何を使ってるの? 16bit環境?
477 名前:仕様書無しさん mailto:sage [2012/04/24(火) 01:00:11.79 ] パートナー
478 名前:仕様書無しさん mailto:sage [2012/04/24(火) 10:32:44.75 ] >>474 これはイラッとするわ
479 名前:仕様書無しさん mailto:sage [2012/04/27(金) 18:52:57.59 ] if(!strcmp(foo,bar)){
480 名前:仕様書無しさん mailto:sage [2012/04/27(金) 21:16:24.59 ] strcmpが真偽値を結果とするような関数じゃないから不自然だね。仕方ないね。
481 名前:仕様書無しさん mailto:sage [2012/04/28(土) 06:30:45.48 ] #define 麿 malloc #define おじゃる free
482 名前:仕様書無しさん mailto:sage [2012/04/28(土) 11:01:56.73 ] >>479 ふつーに使う
483 名前:仕様書無しさん mailto:sage [2012/04/28(土) 11:37:23.29 ] switch( mode ){ case eHoge: mode++; break; case eHoge+1: mode++; break; case eHoge+2: mode = eFuga; break; case eFuga: mode++; break; case eFuga+1: break; }
484 名前:仕様書無しさん mailto:sage [2012/04/28(土) 13:21:59.68 ] >>480 真偽値などという型がないCが不自然なのであって Cとしてはあれで正しい、といえなくもない。
485 名前:仕様書無しさん mailto:sage [2012/04/28(土) 13:36:00.81 ] strequal関数を作ればいいだけの話 どちらが大きいか比較して 真だった場合。 意味がわからないだろ。 if(strcmp(a,b)) とはそのように読む。 どうしてもstrcmpを使いたいなら==0とするのが正解。 0をSTRMATCHと定義し、==STRMATCHとするのがベター
486 名前:仕様書無しさん mailto:sage [2012/04/28(土) 14:40:19.32 ] >>484 不自然か?真偽値なんて、真偽値がオブジェクトだったり、 オーバーロードが必要と言う理由じゃなければ独立した型である必要ないだろ 単なる名前付けした定数で充分なぐらいじゃん
487 名前:仕様書無しさん mailto:sage [2012/04/28(土) 14:42:23.28 ] 真偽値という別の名前を与えている以上 別のものであると我々人間が解釈しているのですよ。 コンピュータに合わせない。 人間に合わせる。
488 名前:仕様書無しさん mailto:sage [2012/04/28(土) 14:48:31.46 ] 未だ真偽値という分け方自体が最善かすら揉めてるのにw
489 名前:仕様書無しさん mailto:sage [2012/04/28(土) 14:51:37.24 ] 真偽値というか、ifの文脈で明らかにおかしいだろ
490 名前:仕様書無しさん mailto:sage [2012/04/28(土) 15:07:33.70 ] 外国人にはこのように見えています もし(文字列比較(a,b)の否定) なら
491 名前:仕様書無しさん mailto:sage [2012/04/28(土) 15:17:02.25 ] コードかきなれてるやつで、自然言語に近づけたいと 思ってるヤツなんてほとんど居ないだろ 慣れて気になるのは合理的か、回りくどくないか(考える手間が増えないか) ぐらいだろ
492 名前:仕様書無しさん mailto:sage [2012/04/28(土) 15:21:04.96 ] じゃあなんで関数名、変数名、キーワードは 英語なんですか? 英語=自然言語ですよ。
493 名前:仕様書無しさん mailto:sage [2012/04/28(土) 15:24:41.47 ] >>492 名前だけだろ 文章の体をなしてない
494 名前:仕様書無しさん mailto:sage [2012/04/28(土) 15:24:54.62 ] if(!strcmp(foo,bar)){ これで、実効時間が一クロックでも違うのなら意味があると思うけど、 == 0 と変わらないのであれば、採用するメリットがない。
495 名前:仕様書無しさん mailto:sage [2012/04/28(土) 15:24:59.39 ] >>492 英語じゃなくてもいいけど
496 名前:仕様書無しさん mailto:sage [2012/04/28(土) 15:26:26.29 ] >>493 でも、名前は英語ですよね。 その名前から連想できるものは何でしょうか? そこは変わらなはずですが。 むしろ、自然言語から連想できるように キーワードを選んでいるわけだけど。
497 名前:仕様書無しさん mailto:sage [2012/04/28(土) 15:28:25.70 ] 例えばifという名前が、繰り返すという意味だったりしたら わけがわからないことになる。 そんな事するぐらいなら、ifもforもやめて、 A01、B02 とかいうキーワードの方がまだまし。 でもそうしないで、ifという単語を割り当てているというのは、 ifという単語の本来の意味が重要だってこと。
498 名前:仕様書無しさん mailto:sage [2012/04/28(土) 15:28:31.58 ] >>493 Javaなどでは、オブジェクト.動詞目的語 という命名規則が普通ですね。
499 名前:仕様書無しさん mailto:sage [2012/04/28(土) 15:50:55.83 ] >>496 日本語でも、イスラム語でもフランス語でもいいぞ。
500 名前:仕様書無しさん mailto:sage [2012/04/28(土) 15:53:58.39 ] >>496 構文に自然言語を求めてないと言ってるんだが。 大体、Unixのソースコードとか英語名称に準拠してるか? アルファベット使ってるだけで略語だらけじゃねぇか。 アルファベット使ってりゃ自然言語だというなら、そりゃ全部自然言語だろうよ。
501 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:00:09.18 ] 馬鹿って絶対に自分の非を認めないよね 故に馬鹿なのか
502 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:04:07.16 ] 英語で書いてある部分なんて機能が解るシンボルとしてしか見ないな 言語自体が英語らしいかどうかなんてどうでもいいや COBOL見たいなの見せられたら吐き気がするし
503 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:05:57.41 ] >>500 > 構文に自然言語を求めてないと言ってるんだが。 あなたわかってるじゃないですかw 自然言語を求めてないのは構文でしょう? 単語には自然言語を求めてるんですよ。
504 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:06:45.08 ] 略語も自然言語。自然言語の略語。
505 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:22:10.58 ] >>492 は、「アルファベット」を見ると「英語」と言ってしまう ローマ字未修得の小学生、あるいは戦中派に違いない。
506 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:25:09.14 ] >>505 え? 普通言語って英語を元にしてるでしょw
507 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:27:30.60 ] 俺の大得意な言語は 日本語を元にしてますよ。 なんてなーwwww
508 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:32:49.85 ] >>506 UKとUSAの人間が読めなくても英語なのか?
509 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:33:55.58 ] >508 if が読めないのですか?
510 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:34:11.97 ] string や compare が読めないのですか?
511 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:34:34.45 ] TSUNAMI, HENTAIは英語だけど Heigh Visionは日本語という不思議。
512 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:35:51.86 ] 英語が分かる人 「strcmpって何?」 「string compare の略だよ」 「なるほど!」
513 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:36:21.62 ] >>509 "if"だけじゃなぁ。interfaceの略かもしれんし、 イタリア語かもしれんし、フランス語かもしれんし。
514 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:36:57.36 ] >>511 英語わからないならムリしないほうがいいよw
515 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:38:06.09 ] >>509 ifとかdefaultとか予約語じゃない言語もいっぱいあるぞ 関数型系とかSmalltalkの派生とか
516 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:38:10.51 ] >>513 英語と考えれば辻褄が合うでしょw だからほとんどの言語=英語が元になっているわけです。
517 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:39:29.02 ] >>516 if( a == b ) これをよめるヤツはプログラマーぐらいだろ
518 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:40:07.42 ] >>515 予約語かどうかは本質じゃねーw プログラム言語はほとんど英単語が 元になってるってことだろ。 英単語そのものか、英単語の略語ばかりだ。 よってコーディングする時は 英語の意味を考えなさいということ。
519 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:41:12.04 ] >>517 ifが英語だからプログラマーは読めるよね。 gtaweg( a == b) これ、読めるかい?
520 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:41:29.02 ] >>518 cat と cdr はどういう意味?
521 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:42:12.07 ] >>519 言語仕様読めば解るんじゃね?
522 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:43:51.60 ] >>519 プログラマー外の英語圏の人間はすぐ解らんだろうと いう意味で書いたんだが
523 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:43:51.88 ] Lisp の car や cdr が、以下の略であることぐらい、Lisp をかじったことのある人なら知っているでしょう。 Contents of the Address part of Register number Contents of the Decrement part of Register number
524 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:44:53.93 ] >>522 そりゃそうだろ。 そんな話はしていない。 ほとんどのプログラム言語は 英語が元になってることに異論はないね?
525 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:45:31.86 ] >>523 やっぱりcatやcdrも英語の略なんだね。
526 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:48:37.26 ] >>524 COBOLレベルなら英語が元になってるとは言えるかもしれんが シンボルだけ英語使ってるものを英語が元になってると言われると 違和感が有るぞ
527 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:49:23.26 ] > シンボルだけ英語使ってる あ、認めたw シンボルだけじゃなくて 意味も英語の意味を使ってる。
528 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:51:22.35 ] 文法は英語じゃなくが 単語は英単語だし 意味も英単語だ。 なのだからその意味に当てはまらない使い方をしたらダメ。
529 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:56:57.83 ] >>528 > 意味も英語だけど int 変数 = 0; classs Type { public Type(){} } 英語の意味でどう読むんだ?
530 名前:仕様書無しさん mailto:sage [2012/04/28(土) 16:59:31.80 ] >>527 俺は構文が英語じゃないから、言語全体は自然言語に近い必要はないと いう意味でしかレスしてない。名前云々のレスといっしょにすんな。
531 名前:仕様書無しさん mailto:sage [2012/04/28(土) 17:04:57.39 ] >>529 変数は日本語ですが? int ・・・ integerの略。なるほど整数か! class ・・・種類 Type・・・型 public・・・公開 英語だと考えれば、辻づまがあう。
532 名前:仕様書無しさん mailto:sage [2012/04/28(土) 17:05:54.91 ] >>531 単語の意味じゃなく英文として読めよ
533 名前:仕様書無しさん mailto:sage [2012/04/28(土) 17:06:08.67 ] >>530 俺は単語が英語だから その英語の通りの使い方をしろと言ってる。
534 名前:仕様書無しさん mailto:sage [2012/04/28(土) 17:07:24.65 ] >>532 なぜ英文として読まないといけないの? 俺は最初から構文は英語じゃないが 単語が英語であり、 その意味のとおりに使えと言ってるだけですが?
535 名前:仕様書無しさん mailto:sage [2012/04/28(土) 17:13:37.49 ] >>534 俺は最初から構文は英語じゃないからコードが英文に準じる必要はないと言っている まぁ、>>500 で余計なことは書いたが。
536 名前:仕様書無しさん mailto:sage [2012/04/28(土) 17:15:42.11 ] なら単語が英単語になっている理由は?
537 名前:仕様書無しさん mailto:sage [2012/04/28(土) 17:15:57.31 ] 英単語の意味を無視していいなら、 英単語を使う理由はない。
538 名前:仕様書無しさん mailto:sage [2012/04/28(土) 17:19:33.03 ] 名前と構文をごっちゃにするなって ダンボールに英語のラベルはってあったら、 ダンボールが英語に準拠してんのかよ
539 名前:仕様書無しさん mailto:sage [2012/04/28(土) 17:21:25.05 ] そうですが何か
540 名前:仕様書無しさん mailto:sage [2012/04/28(土) 17:21:47.37 ] つられて英語と書いてしまったが そもそも、自然言語に準じる必要が無いといだけで 英語かどうかは重要じゃないだろ。
541 名前:仕様書無しさん mailto:sage [2012/04/28(土) 17:28:03.72 ] >>539 XSLTとXMLの仕様をごっちゃにしてそうな発言だな
542 名前:仕様書無しさん mailto:sage [2012/04/28(土) 17:30:35.83 ] 多分最近のaviにはH.264が入ってることが多いから >>539 にとってaviはH.264がなんだろうな
543 名前:仕様書無しさん mailto:sage [2012/04/28(土) 18:55:32.75 ] ダンボールの中身が英語に準拠しているかもしれないと期待することは出来るかな
544 名前:仕様書無しさん mailto:sage [2012/04/28(土) 20:41:52.10 ] プログラムは自然言語ではないが 自然言語に似せて書くのが上手い書き方だろ。 何故なら、コンピュータが読むものであると同時に、人間が読むものでもあるからだ。
545 名前:仕様書無しさん mailto:sage [2012/04/28(土) 21:33:26.78 ] >>544 「個人的見解」って頭につけといた方がいいですよ。
546 名前:仕様書無しさん mailto:sage [2012/04/28(土) 21:34:38.61 ] >>545 まずお前から実践なw
547 名前:仕様書無しさん mailto:sage [2012/04/28(土) 21:53:43.30 ] >>544 人間が読む場合と、コンピュータが読む場合があるところまではいい。 ただし、人間が読む場合は、人間らしい人間が読む場合と、コンパイラみたいな人間が読む場合と、宇宙人が読む場合があるんだよな… 「個人的見解だが」 すべての人間に読みやすいプログラムというものは存在しないと思う。 なので、読む人に合わせた書き方が求められる。 これは、もはやソースコードを介したコミュニケーションであって、そういう意味では、やはりプログラマは物書きだなーと思うし、コミュニケーション能力が求められる仕事だなと思う。
548 名前:仕様書無しさん mailto:sage [2012/04/28(土) 22:17:18.20 ] >>547 すべての人間ではなく、 大部分の人間といえばいいだけの話。
549 名前:仕様書無しさん mailto:sage [2012/04/28(土) 22:40:44.94 ] >>544 COBOLが読みやすいか? ならCOBOL使えばいい。 ひまわりでもかまわんぞ
550 名前:仕様書無しさん mailto:sage [2012/04/28(土) 22:51:04.29 ] >>549 www.aoky.net/articles/why_poignant_guide_to_ruby/chapter-3.html
551 名前:仕様書無しさん mailto:sage [2012/04/28(土) 22:56:54.08 ] >>550 すごいな。 たまたま英文風に読める文章を 持ってきて全てを語るなんてw
552 名前:仕様書無しさん mailto:sage [2012/04/28(土) 22:58:44.27 ] >>550 そのページが読みにくいのはなんでだ?w
553 名前:仕様書無しさん mailto:sage [2012/04/28(土) 23:04:43.00 ] >>550 は 自然言語とプログラム言語は白と黒のようにはっきり分かれておらず プログラマは皆、灰色の領域で仕事をしているのだと判らせてくれる。
554 名前:仕様書無しさん mailto:sage [2012/04/28(土) 23:05:57.12 ] >>550 >['toast', 'cheese', 'wine'].each { |food| print food.capitalize } 英文まねても読みづらいだけだな。
555 名前:仕様書無しさん mailto:sage [2012/04/28(土) 23:07:10.90 ] >>554 そもそも英語が読みやすい言語かっつうのもあるしな
556 名前:仕様書無しさん mailto:sage [2012/04/28(土) 23:11:55.82 ] しかし、単語は英単語であり、 その英単語の意味通りを使い方をしているのは どの言語も同じなのだ。
557 名前:仕様書無しさん mailto:sage [2012/04/28(土) 23:25:22.95 ] 何が問題か解ってないコミュ障が居るな
558 名前:仕様書無しさん mailto:sage [2012/04/28(土) 23:30:53.03 ] じゃあ、話を最初に戻そう if(!strcmp(foo,bar)){ 問題はこれ。 strcmpは文字 比較の略であり、 ifはもし。 つまり、「もし(文字比較)なら」 という意味になるので、これはイラッとするコーディングである。
559 名前:仕様書無しさん mailto:sage [2012/04/28(土) 23:33:13.51 ] この話に対して、プログラム言語は、 英語の文法と違うとか的外れのこといいだして、 そうじゃなくて、単語は英語であり 単語の意味通りの使い方をするべきという 話だよって教えてるだけ。 それを分からず、文法が〜文法が〜と 的外れのことを言い続けてる。
560 名前:仕様書無しさん mailto:sage [2012/04/28(土) 23:38:06.42 ] >>558 ! が Not ならいいの?
561 名前:仕様書無しさん mailto:sage [2012/04/28(土) 23:43:31.70 ] 違うね、ごめん。
562 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:00:23.13 ] >>559 英単語と名前の話が一番ずれてる
563 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:02:23.85 ] >>559 >つまり、「もし(文字比較)なら」 >という意味になるので、これはイラッとするコーディングである。 問題は、文としての書き方なのに何でお前は名前に拘ってんだ?
564 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:08:33.22 ] > 問題は、文としての書き方なのに どこ見てそう思いましたか?
565 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:09:46.10 ] >>564 「もし(文字比較)なら」
566 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:10:20.91 ] strcmpの戻り値が真偽値ではない、 真偽値ではないものを、もし(if)で使うなという 話ですよね?
567 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:11:05.12 ] >>564 文の話じゃねーよ。 真偽値を返さないものを ifで使うのが気持ち悪いという話だよ。
568 名前:567 mailto:sage [2012/04/29(日) 00:11:30.38 ] × >>564 ○ >>565
569 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:12:46.49 ] なぜ真偽値じゃないものをifで使うのが気持ち悪いかというと ifが、もし〜なら という意味だからでしょうね。
570 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:17:59.45 ] >>567 だからif文の中で真偽値を返さないものを返してる文の書き方がおかしいんでしょ
571 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:21:13.19 ] >>570 文がおかしい? じゃあ、どういう文ならおかしくないというの? ”文”ですよね?
572 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:28:03.95 ] >>571 真偽値を返す関数を使った文だったらよろしいんじゃないでしょうか
573 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:29:31.39 ] >>572 つまり、式を変えるってことですねw あれ?文の話じゃなかったのかいw
574 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:31:34.03 ] 直感と反するのが気持ち悪い 一緒だったらって判定に!使うな
575 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:32:25.05 ] strcmpは「一緒だったら」ではなく、 「比較したら」
576 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:37:31.36 ] >>573 文として分かり辛いから文の中の式を直すってのがおかしいか?
577 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:38:41.57 ] もし(おなじである(a, b))なら なら気にならない。
578 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:39:49.83 ] >>576 文はおかしくなかったから、文はそのままで 式を書きなおしたんだろw お前、文がなにかわかってるのか? if文の定義・・・if (条件式) 真文 仕様書見てもこんな感じでしか書いてないぞ。
579 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:40:38.23 ] >>577 つまり、英単語の意味と合っていないということか。
580 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:40:50.64 ] >>575 大元のif文はどう見ても一致してるかの判定 それ以外の意図で書いてたらなお悪い
581 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:40:53.63 ] もし(ひかくする(a, b))なら だとわかりにくい さらに もし(文ひか(a, b))なら だからもう死ね
582 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:43:04.40 ] >>578 仕様書には書いてないから実現は可能だが、プログラムには意図を込める事が出来る。 プロなら使わない手はない。
583 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:44:04.46 ] >>582 で、何が言いたいの?
584 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:44:39.33 ] >>583 より分かりやすく書けって話だよ。
585 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:45:43.69 ] >>580 > 大元のif文はどう見ても一致してるかの判定 もし(否定 比較する(a,b)) これを「aとbが一致した場合」と解釈するのは難しい。
586 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:47:20.56 ] もし( 比較する(a,b) == 差が0なら) こう書けばわかりやすい。
587 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:49:40.01 ] >>585 書き方のぜひはともかく文字列一致判定の定型文だろ
588 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:52:37.27 ] >>586 どんな顔してこんな当たり前の書き込みするのか興味深い
589 名前:仕様書無しさん mailto:sage [2012/04/29(日) 00:59:33.34 ] >>587 こんなのを定型文と言わなきゃいけない事自体がおかしい。
590 名前:仕様書無しさん mailto:sage [2012/04/29(日) 01:00:23.87 ] >>588 え? 当たり前のことを言ったような顔を しているだけですが・・・?
591 名前:仕様書無しさん mailto:sage [2012/04/29(日) 01:05:32.77 ] >>578 if文 = if statement CやC++だと、そもそも式も文も同じ意味なんだが
592 名前:仕様書無しさん mailto:sage [2012/04/29(日) 01:10:42.27 ] C/C++のif文は、値を返さないので式として使えませんよ? if式っていうのはこういうものです。(Scalaの例) val msg = if (true) "true dayo" else "false dayo"
593 名前:仕様書無しさん mailto:sage [2012/04/29(日) 01:12:18.69 ] >>591 文と式の違いも知らん奴が さっきから喚いていたんだなw
594 名前:仕様書無しさん [2012/04/29(日) 01:37:33.40 ] 日本語として正しいテキストのやり取りでこれだけ揉めてるんだから、 言語としての正しさは、意思疎通の効率化の一要素でしかないってのを 自ら証明してる罠
595 名前:仕様書無しさん mailto:sage [2012/04/29(日) 01:37:58.64 ] >>594 日本語でおk?
596 名前:仕様書無しさん mailto:sage [2012/04/29(日) 01:40:09.09 ] >>595 日本語の議論でもこれだけ揉めるのだから、やはりプログラムは奥深くて楽しい。
597 名前:仕様書無しさん mailto:sage [2012/04/29(日) 01:40:59.74 ] What's your point?”
598 名前:仕様書無しさん mailto:sage [2012/04/29(日) 01:48:55.76 ] 何か伸びてると思ったら、何の話してんの?
599 名前:仕様書無しさん mailto:sage [2012/04/29(日) 03:27:22.81 ] 毎年この時期は色々とアレな人が湧くなあ、というお話。
600 名前:仕様書無しさん mailto:sage [2012/04/29(日) 05:25:20.32 ] ↑ここまでイラッとするレススタイルの話 ↓ここからイラッとするコーディングスタイルの話
601 名前:仕様書無しさん mailto:sage [2012/04/29(日) 05:27:33.91 ] 終了
602 名前:仕様書無しさん mailto:sage [2012/04/29(日) 05:30:53.97 ] >>598 理系のボクにはよくわからないお話。
603 名前:仕様書無しさん mailto:sage [2012/04/29(日) 05:32:15.06 ] >>602 理系とか関係なく 単にあなたがお馬鹿であるだけ。
604 名前:仕様書無しさん mailto:sage [2012/04/29(日) 18:30:27.78 ] 三項演算ってのがあってだな・・・
605 名前:仕様書無しさん mailto:sage [2012/04/29(日) 18:31:41.69 ] それで?
606 名前:仕様書無しさん mailto:sage [2012/04/30(月) 11:28:44.34 ] ハンガリアン記法を使うなら使うで統一してればまだいいが、 ハンガリアンな変数名とそうでない変数名が混在しているソースコードはバカだと思う。
607 名前:仕様書無しさん mailto:sage [2012/04/30(月) 14:32:32.64 ] b p m_ g_ だけ付けてる。
608 名前:仕様書無しさん mailto:sage [2012/04/30(月) 14:57:12.58 ] それはハンガリアンではない
609 名前:仕様書無しさん mailto:sage [2012/04/30(月) 15:26:03.24 ] >>606 ハンガリアン記法で統一されていても、記法が実態と合っていないと、 もっとイラッつとする。不具合修正後にたまに見かけるんだが……。
610 名前:仕様書無しさん mailto:sage [2012/05/01(火) 04:35:45.89 ] システムハンガリアンをコーディング規約に盛り込む連中は漏れなく無能。
611 名前:仕様書無しさん mailto:sage [2012/05/01(火) 09:48:20.21 ] プログラムのお勉強的な意味でどうしてこんな事が必要だったのかを 若手に学習させるためにシステムハンガリアンは割りと良いんだよなw
612 名前:仕様書無しさん mailto:sage [2012/05/01(火) 13:26:21.50 ] システムハンガリアン使ってるヤツは、ハンガリアン使うときどうするんだ? 例えば、↓とかどう修飾してる? ptX; // ポイント単位のX軸 cmX; // センチメートル単位のX軸 dbY; // デシベル単位のY軸
613 名前:仕様書無しさん mailto:sage [2012/05/01(火) 13:35:03.26 ] fPtX nCmX dDbY
614 名前:仕様書無しさん mailto:sage [2012/05/01(火) 13:42:21.92 ] イラッとするな
615 名前:仕様書無しさん mailto:sage [2012/05/01(火) 14:30:32.62 ] 他人のコーディングスタイルは常にイラッつとするものなんだよ
616 名前:仕様書無しさん mailto:sage [2012/05/02(水) 21:39:30.85 ] なにがハンガリアンだよハムスターかよ! 俺はローマ字で変数を使うからな!
617 名前:仕様書無しさん mailto:sage [2012/05/02(水) 22:13:12.04 ] だったら日本語でかきゃいいのに 最近のコンパイラーは日本語使えるんだぞ #define 整数 int #define 無 void #define 本体 main #define 戻す return 整数 本体(無) { 整数 値 = 0; 戻す 値; }
618 名前:仕様書無しさん mailto:sage [2012/05/02(水) 23:35:31.92 ] キモイwww
619 名前:仕様書無しさん mailto:sage [2012/05/03(木) 00:05:17.09 ] そうか? 英語で命名しても認識する時は日本語だからそんなに気にならないけど。
620 名前:仕様書無しさん mailto:sage [2012/05/03(木) 03:58:47.27 ] なでしこ思い出した
621 名前:仕様書無しさん mailto:sage [2012/05/03(木) 04:01:24.82 ] ひまわりでやれ
622 名前:仕様書無しさん mailto:sage [2012/05/03(木) 04:29:44.89 ] >>617 マクロの謝った使用法の中でも最悪だなこれ。
623 名前:仕様書無しさん mailto:sage [2012/05/03(木) 05:00:42.74 ] 変数名に$aとか$bとかマジ勘弁
624 名前:仕様書無しさん mailto:sage [2012/05/03(木) 05:13:27.17 ] >>623 VMS「…(´・ω・`)」
625 名前:仕様書無しさん mailto:sage [2012/05/03(木) 10:37:35.39 ] >>623 でも $i は良いんでしょ?
626 名前:仕様書無しさん mailto:sage [2012/05/04(金) 13:03:50.07 ] $iiiまでは許してくれ。
627 名前:仕様書無しさん mailto:sage [2012/05/05(土) 04:07:53.59 ] $とか通るのかよ。アセンブラでおかしくなるだろ?
628 名前:仕様書無しさん mailto:sage [2012/05/05(土) 06:16:15.35 ] phpならきっと・・・
629 名前:仕様書無しさん mailto:sage [2012/05/05(土) 19:21:20.26 ] むしろPHPでは$つけわすれるのがエラーの筆頭だろ
630 名前:仕様書無しさん mailto:sage [2012/05/05(土) 23:03:56.89 ] Perlも?
631 名前:仕様書無しさん mailto:sage [2012/05/07(月) 03:22:45.46 ] Perlは頭に何付けるか考えなきゃいけないから 他の言語を直前までやってたときに新規でソースファイル起こしたときの最初の数分だけかな忘れるのは
632 名前:仕様書無しさん mailto:sage [2012/05/07(月) 03:52:46.25 ] #define ZERO 0 #define ONE 1 #define TWO 2 … #define ELEVEN 11 驚愕したそして 12以降は普通に使われていた 俺は泣いた
633 名前:仕様書無しさん mailto:sage [2012/05/07(月) 07:09:08.37 ] よくあるコード改善本の指摘に「できるだけマクロを使うな(コンパイラを働かせろ)」というのがあるけれど 実際どれくらいメリットがあるのだろう・・・?
634 名前:仕様書無しさん mailto:sage [2012/05/07(月) 19:42:52.59 ] 「マクロを使わない=コンパイラを働かせる」 の意味がわかんないんで教えて
635 名前:仕様書無しさん mailto:sage [2012/05/07(月) 20:36:38.67 ] Cの本読めば最初の章に出てくるだろ マクロの部分を処理するのは、コンパイラではなくプリプロセッサ (気を利かせることができて賢い)コンパイラを使え = (単純で馬鹿な)プリプロセッサを使うな
636 名前:仕様書無しさん mailto:sage [2012/05/07(月) 21:30:39.56 ] てか、マクロを多用するコードの方がコンパイラの仕事が増えるような気が。
637 名前:仕様書無しさん mailto:sage [2012/05/07(月) 21:34:21.83 ] 一緒だと思う。
638 名前:仕様書無しさん mailto:sage [2012/05/07(月) 22:28:35.51 ] マクロ展開した後のソースがどんだけデカくなるのか見たことないのかよ! コンパイラさん凄い頑張ってんぞ!
639 名前:仕様書無しさん mailto:sage [2012/05/07(月) 23:53:37.14 ] >>633 知らない方がいいよ。それを知ったとき、おまえは地獄にいる。
640 名前:仕様書無しさん mailto:sage [2012/05/07(月) 23:56:57.94 ] >>636 ようは、コンパイラをプログラマの道具として使えってことだよ。 コンパイラが分かる形にしておくと、 コンパイルした時にミスを色々教えてくれる。 静的型付け言語ならではの、コンパイラを使った 快適プログラミングテクニックが生かせる。
641 名前:仕様書無しさん mailto:sage [2012/05/08(火) 10:40:28.54 ] プリプロセッサを働かせずにコンパイラを働かせろということだと思うが、 コードの肥大を防ぐのが目的なのかなんなのか
642 名前:仕様書無しさん mailto:sage [2012/05/08(火) 10:47:16.38 ] マクロは基本的に定数定義とか、移植性の向上のために使ってるな。
643 名前:仕様書無しさん mailto:sage [2012/05/08(火) 12:20:14.89 ] マクロ禁止って暗にCをディスってるような気がする。 C++かC#陣営の策略に違いない。
644 名前:仕様書無しさん mailto:sage [2012/05/08(火) 16:18:08.66 ] コメントは40カラム目から
645 名前:仕様書無しさん mailto:sage [2012/05/08(火) 17:30:22.51 ] >>644 うわ、それ強制されたことあるわ
646 名前:仕様書無しさん mailto:sage [2012/05/09(水) 07:53:56.36 ] switchには必ずdefaultをつけるべし ifには必ずelseをつけるべし
647 名前:仕様書無しさん mailto:sage [2012/05/09(水) 08:32:49.88 ] それ嫌いだわぁ else書いといて中身無しとか せめてプログラミング作法くらいは皆読んで欲しいところだ
648 名前:仕様書無しさん mailto:sage [2012/05/09(水) 11:01:52.47 ] switch () { default: ; } これはあり。というか、俺はいつもそうやってる。 defaultの考慮漏れはしていないし、defaultではやることないよという表明。 > ifには必ずelseをつけるべし これはあまり見たこと無いな。 「if〜else if〜には必ずelseをつけるべし」なら、見たことあるし、俺も実践してる。 switchのdefaultと同じ理由。
649 名前:仕様書無しさん mailto:sage [2012/05/09(水) 11:27:41.36 ] たまに頭が回らん時とか、if文の条件が書きづらい時とか if( !(条件) ){ 処理 } ってしないで if( 条件 ){}else{ 処理 } って書くのも他人から見たらイラッつとさせてるんだろうなと思った。
650 名前:仕様書無しさん mailto:sage [2012/05/09(水) 21:39:26.50 ] >>633 1.オーバーロード可能になる 2.using宣言、もしくは名前空間の別名で短い名前が使える この2点だけでも結構楽になる。
651 名前:仕様書無しさん mailto:sage [2012/05/09(水) 23:27:06.14 ] リポジトリからソースを落とすとThumbs.dbがついて来た。 システムに必要なファイルだろうから消すなだと。
652 名前:仕様書無しさん mailto:sage [2012/05/10(木) 22:36:52.26 ] >>649 何もやることないよ というより 書き忘れたのかと思ってしまう。
653 名前:仕様書無しさん mailto:sage [2012/05/11(金) 00:07:09.59 ] >>648 > defaultの考慮漏れはしていないし、defaultではやることないよという表明。 オレだったら、それはコメントに記述するなあ
654 名前:仕様書無しさん mailto:sage [2012/05/11(金) 00:34:49.93 ] そういえば以前の上司がどうしても『defaultは最後に書け』と言ってゆずらなかったな。
655 名前:仕様書無しさん mailto:sage [2012/05/11(金) 00:56:41.06 ] デフォルトに出会った時点で分岐終了するウンココンパイラなかったっけ
656 名前:仕様書無しさん mailto:sage [2012/05/11(金) 01:16:38.05 ] 名付けて、運コンパイラ
657 名前:仕様書無しさん mailto:sage [2012/05/11(金) 14:08:06.49 ] >>653 defaultが無いとwarning出す静的解析ツールとかありがちなんで、俺はコードで書く。
658 名前:仕様書無しさん mailto:sage [2012/05/11(金) 17:24:17.65 ] >>653 俺はdefaultに assert(false) を入れとくなあ。 ミスの検出にも役立つし。
659 名前:仕様書無しさん mailto:sage [2012/05/11(金) 17:28:42.09 ] そこに assert(false); // 来ないはず とか書いてあるソースは見た事ある。 来ないはずの所に来るバグがあるって事なんだろうな、と思った。
660 名前:仕様書無しさん mailto:sage [2012/05/11(金) 17:54:19.52 ] >>658 いや、来ないのでは無くて、来ることもあるが処理は無しよ、って意味なんだけど。 来ないはずならエラー処理入れるわ。
661 名前:仕様書無しさん mailto:sage [2012/05/11(金) 21:13:10.20 ] いいこと考えた assert(true); // 入れとけばいいんじゃねw
662 名前:仕様書無しさん mailto:sage [2012/05/12(土) 00:02:23.15 ] 定義増えた場合の取りこぼし対策でASSERTいれるのはアリ
663 名前:仕様書無しさん mailto:sage [2012/05/12(土) 04:08:02.61 ] でふぉるとさんはどんな条件にも引っ掛からなかったダメな子を許容してくれるお姉さんキャラ たまに「絶対に書いておけ」と言う参考書がある為に //ここに来る事は無い と言う書き残しをして居る時があるが nullやDBNull判定をすり抜けて来た0や空白さんがたまに来る 初期値はシステムで統一しろ
664 名前:仕様書無しさん mailto:sage [2012/05/12(土) 04:28:51.61 ] ifにelseは必要ない。 なぜなら、条件を満たしているか?という質問をするならば みたいしていない場合が存在するのは明らかだから。 switchに関しては、case一個だけ書くことなんてまずない Aの場合、Bの場合、Cの場合、じゃあそれ以外はどうなるんだ? ということになる。 取りうる値がA、B、Cの三つしかないというのであれば、 Aの場合、Bの場合、それ以外(default)。でいいはず。 defaultがないということは、なにか意味があるということなので それを明記するのが良い。
665 名前:仕様書無しさん mailto:sage [2012/05/12(土) 04:31:07.25 ] >>659 assertionはdefaultだけで使うものではない。 何のためにassertionを使っているかを考えれば分かる。
666 名前:仕様書無しさん mailto:sage [2012/05/12(土) 04:52:54.88 ] >>664 >ifにelseは必要ない。 お前は何を言っているんだ
667 名前:仕様書無しさん mailto:sage [2012/05/12(土) 05:50:36.01 ] bool値を返す関数で bool func(){ if(exp){ return true; }else{ return false; } }
668 名前:仕様書無しさん mailto:sage [2012/05/12(土) 05:52:39.62 ] 途中で書き込んでしまった。。 bool値を返す関数で bool func(){ if(exp){ return true; }else{ return false; } } って書いてるのがイラッとする。
669 名前:仕様書無しさん mailto:sage [2012/05/12(土) 06:49:59.39 ] >>666 あれじゃないか○○であるの条件のelseは明示的に書かれていないだけで○○ではないのif文 つまり読みやすいとは別として理解しやすいと言う部分、何がしたいかをはっきりさせたい場合はifを2回書いた方がいい つまりelseは要らない
670 名前:仕様書無しさん mailto:sage [2012/05/12(土) 06:55:40.08 ] >>669 「それ以外」の条件をいちいち列挙するの?面倒くせえ
671 名前:仕様書無しさん mailto:sage [2012/05/12(土) 08:26:14.32 ] 面倒くさいだけじゃ済まないぞ わざわざ別に書いてる位だから、本当は別の条件があるのに記述漏れがあんじゃねーかって疑念が湧くし、 ifに入る条件がより限定されるような修正する際に、 else使うなら一箇所の修正だけで済むものを、使わない場合はelse相当のif文も修正が必要になる どう考えてもバグの誘因になる 言語仕様でelseが無いとか、switchのdefaultが無いならともかく、 言語仕様としてあって、更にそれを使うのに適した場面なら、それを使う方が良いと思う まぁ、全部にelseやdefaultを入れろって縛りはどうかと思うけど
672 名前:仕様書無しさん mailto:sage [2012/05/12(土) 09:42:39.16 ] >>668 どう書けばいいのでしょう・・・ ご教授していただけると嬉しいです
673 名前:仕様書無しさん mailto:sage [2012/05/12(土) 10:23:26.26 ] return (bool)exp; だろ?
674 名前:仕様書無しさん mailto:sage [2012/05/12(土) 10:29:07.54 ] else書くなって言ってるんだろ
675 名前:仕様書無しさん mailto:sage [2012/05/12(土) 13:21:10.78 ] gotoは基本的に使用しないこと ただしエラー処理や多重ループから抜ける場合などは使用した方が見やすくなる ・・・ったく、いつまでクヌースの呪縛に捕らわれてんの? 全面禁止だろ、いまどき
676 名前:仕様書無しさん mailto:sage [2012/05/12(土) 14:00:43.31 ] >>675 全面禁止ってことは、 breakもcontinueもreturnもダメってこと? これらはgotoと同じ事出来るんだけど。
677 名前:仕様書無しさん mailto:sage [2012/05/12(土) 14:25:20.15 ] いや、だからだよ 今の言語はブロック制御に則ったジャンプ命令があるのに いつまでALGOL時代の「goto」という命令に捕らわれてるんだって意味
678 名前:仕様書無しさん mailto:sage [2012/05/12(土) 14:34:49.81 ] >>675 いつまで構造化プログラミングの呪縛に縛られてるの?
679 名前:仕様書無しさん mailto:sage [2012/05/12(土) 15:23:16.21 ] >>678 アウフヘーベンするならともかく、goto使うところに戻るんじゃただの退化じゃん。
680 名前:仕様書無しさん mailto:sage [2012/05/12(土) 15:47:39.09 ] >>677 それらで出来ないことだって有るだろ。
681 名前:仕様書無しさん mailto:sage [2012/05/12(土) 16:08:22.41 ] >>679 今更gotoがどうとかどっちでもいいじゃん
682 名前:仕様書無しさん mailto:sage [2012/05/12(土) 16:55:46.12 ] >>673 return (exp) ? true : false; かな でも、おれ、三項演算子好きじゃない こまった・・・
683 名前:仕様書無しさん mailto:sage [2012/05/12(土) 17:30:18.41 ] 三項演算子を好んで使うやつなんか存在するのか?
684 名前:仕様書無しさん mailto:sage [2012/05/12(土) 18:02:26.13 ] bool func(){ bool result = false if(exp){ result = true; } return result; }
685 名前:仕様書無しさん mailto:sage [2012/05/12(土) 18:08:45.16 ] return exp;
686 名前:仕様書無しさん mailto:sage [2012/05/12(土) 18:13:32.23 ] >>683 エレキ屋あがりが「オブジェクトファイルを開いてみろ!if-elseと比べてこんなにシンプルだぞ!」と しきりに勧めてくるのだが・・・・・実際どうなんだろうと思う
687 名前:仕様書無しさん mailto:sage [2012/05/12(土) 18:38:40.32 ] 最近カンスト付きの加減算で好んで使ってたりしてる。 無理に使えとは言わないw num = ((num+hoge) > max) ? max : (num+hoge);
688 名前:仕様書無しさん mailto:sage [2012/05/12(土) 23:08:11.15 ] ifが戻り値を返したいって時は 三項演算子使うだろ。 var a; if(exp1) { a = 1; } else if(exp2) { a = 2; } else { a = 3 } var a = (exp1) ? 1 : (exp2) ? 2 : 3; どっちが見やすいかなんて一目瞭然だと思うが?
689 名前:仕様書無しさん mailto:sage [2012/05/12(土) 23:15:57.08 ] >>688 複数の判定がいるならswichかテーブル使ってしまうなぁ
690 名前:仕様書無しさん mailto:sage [2012/05/12(土) 23:19:05.66 ] 三項演算子を使って一行で書ける時はよく使う。 >>688 はイラッ
691 名前:仕様書無しさん mailto:sage [2012/05/12(土) 23:21:21.33 ] >>689 switchだって戻り値返せないだろ? var a; switch(exp) { case cond1 : a = 1; break; case cond2 : a = 2; break; default : a = 3; break; } var a = (exp == cond1) ? 1 : (exp == cond2) ? 2 : 3; 値を返すならこっちのほうがシンプル
692 名前:仕様書無しさん mailto:sage [2012/05/12(土) 23:23:03.00 ] 処理を分岐させたいなら if、switch 条件に応じて値を返したいなら 三項演算子
693 名前:仕様書無しさん mailto:sage [2012/05/12(土) 23:42:10.01 ] 一番のネックは三項演算子をやたらに憎む奴らが多い事なんだよな まあ、IFの変わりに使うひとが大量に居たせいだと恨んでるけとw
694 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:05:26.98 ] 三項演算子くらいラムダ式に比べたらまだまだまだまだ可愛い。
695 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:07:43.98 ] >>693 関数型言語では三項演算子(風)の記述が主流 三項演算子を嫌うような老害は このあと消える。
696 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:09:47.61 ] 老害って言葉好きだね。いつまでケツが青いままのつもり?
697 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:14:04.30 ] >>676 一緒じゃねぇよ全然ちげぇよ。 ダイクストラが提起した問題は、gotoそのものや、ジャンプじゃない。 処理ブロック(forやifといった分岐反復のまとまり)のネストを無視して、 処理ブロックから、処理ブロックに飛べる事が問題なんだ。 なんでgotoがあるのにbreakやcontinueがあるか解ってんのか?
698 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:15:36.69 ] >>688 3講演子の条件式をカッコでくくってんのがイラっとする
699 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:18:57.46 ] >>698 カッコがないと見難い
700 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:20:09.10 ] >>697 ダイクストラが提起した問題は、gotoそのものや、ジャンプじゃない。 処理ブロック(forやifといった分岐反復のまとまり)のネストを無視して、 処理ブロックから、処理ブロックに飛べる事が問題なんだ。 だから、処理ブロックから、処理ブロックに飛ぶようなことをしなければ gotoを使ってもいい
701 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:22:12.48 ] x = 10 + ( n ? n / 100 : 0 ); こういうことしたいとき、条件にかっこつけやがると x = 10 + ( ( n ) ? n / 100 : 0 ); こんな感じでカッコが二重になんのが非常に見づらい
702 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:22:42.49 ] >>700 そうだよ
703 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:24:24.94 ] >>700 だからCにもgotoが残ってる ネストを飛ぶとき警告だすぐらい仕様にいれても よかったとはおもうが
704 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:24:46.55 ] 当たり前だろw 条件式が変数一つの時に カッコつけるなよw (exp)という書いてある時のexpってのは 変数の意味じゃないだろ。
705 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:25:39.55 ] >>675 結局お前、否定されたぞw goto全面禁止とかありえないってさ。
706 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:29:38.06 ] >>703 警告出すのは、ネストの中に入る時だろ? ネストから出るときは、returnなどと一緒なので問題ない。
707 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:30:44.82 ] >>706 ネストからネストに飛ぶときの話
708 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:31:40.42 ] IClass a = (state) ? new ClassA() : new ClassB(); みたいに「確実に何か代入されるけど条件によって違う」場合に使うんじゃないかなぁ
709 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:32:39.01 ] >>704 式だろうと見づれぇよ x = 10 + ( ( n > 0 ) ? n / 100 : 0 ); こっちの方が明らかにすっきりするわ x = 10 + ( n > 0 ? n / 100 : 0 );
710 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:37:03.95 ] >>708 大抵変数作るのがめんどい時だろ。演算子なんだから。 function( 5 > n ? 1 : 9 ); とか ( max > n ? alpha : beta ).Execute(); みたいな場合。
711 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:37:47.22 ] x = 10 + n > 0 ? n / 100 : 0 ; 見難い
712 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:38:15.20 ] >>707 > ネストからネストに飛ぶときの話 ”ネストから” ってのは必須条件?
713 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:40:26.30 ] x = (n > 0) ? n / 100 + 10 : 10;
714 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:42:26.39 ] >>710 それはifでやれよ…
715 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:45:29.39 ] >>712 ネストを1段上げる、ネストを1段下げるなら goto使わんでも出来るし問題にならんだろ
716 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:47:09.13 ] >>713 そんな書き方すんならifつかえよ
717 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:49:00.52 ] >>716 「ここで確実にxが変わる」ってわかるじゃないか 「if使え」っていうことはわかんないのか。困ったな
718 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:51:14.52 ] >>717 カッコつけてブロックでインデントするぐらいならif使えといってんの 見づらいだろ
719 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:53:09.54 ] x = ((10 + n > 0) ? n / 100 : 0); みづらい・・・ カッコが好きならいっそ全部くくりゃいいのに x = ((10 + n > 0) ? (n / 100) : (0));
720 名前:仕様書無しさん mailto:sage [2012/05/13(日) 00:58:03.94 ] >>718 ifだと if (n > 0) { int x = } else { int x = } って書けないじゃん 先にint xって書いても節でxx = って書くかもしれない もちろんコンパイラがワーニング出すけど
721 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:00:41.19 ] >>714 面倒だろ。特にメンバー関数なんかは、引数2回書くのがだるい。 かといって、オブジェクトをifでポインターに入れて、 そのあとメンバー関数呼び出すのも面倒い。 ( max > n ? alpha : beta ).Execute( arg_first, arg_second, arg_third );
722 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:03:46.98 ] 他人に見せるか他人のを読むかという前提で 「おれがめんどくさい」っていわれたら もう何も言うことはない
723 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:04:16.78 ] >>715 なんの話してるの? gotoで警告出す時の条件の話でしょ。 使わない時の話はしてないよ。
724 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:04:32.84 ] >>720 んな事はどうでもよくて、カッコつけて見づらい書き方するんなら 三項演算子つかうの止めろと言ってるんだよ
725 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:06:01.68 ] 条件式や値のコードが極端に長くないなら、 処理を分岐させたいなら if、switch 条件に応じて値を返したいなら 三項演算子 この2つで決めればいいだけだろ。
726 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:07:20.76 ] >>724 カッコつけて見やすくする書き方なら 問題ないでしょw
727 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:07:59.44 ] >>724 変な書き方してたら「何か変なことしてるな」ってわかるじゃん 1行でさらっと流したら絶対見落とすぜ
728 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:08:48.84 ] >>723 gotoつかってネスト上げたり下げたりするのは、 他の構文と同じだから、警告だすなら ネストからネストに飛ぶ時だけでいいでしょって話。
729 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:10:41.61 ] >>727 x = n > 0 ? n / 100 + 10 : 10; こうだったら文句いわんよ
730 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:12:30.19 ] 条件に括弧つけるのはif文の代わりって意味なんじゃないの? 俺ならbool値にも括弧つけるよ (flag)? って
731 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:14:08.44 ] 三項式はメンバ変数のコンストラクタ渡しとかで使う
732 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:14:12.54 ] >>728 だから、”ネストから”ってのは要らないよね? 単に「ネストに入るときだけ」に警告でいいよね? って話。
733 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:16:39.41 ] >>729 x = nantoka > 0 && nantoka < 100 ? nantoka / 100 + defvalue : defvalue; こんな感じですか? カッコつけたほうがいいよ。
734 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:18:39.26 ] x = nantoka > 0 && nantoka < 100 ? nantoka / 100 + defvalue : nantoka >=100 && nantoka < 200 nantoka / 100 + defvalue2 : defvalue; こんな感じですか? カッコつけたほうがいいよ。
735 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:19:08.41 ] 訂正 x = nantoka > 0 && nantoka < 100 ? nantoka / 100 + defvalue : nantoka >=100 && nantoka < 200 ? nantoka / 100 + defvalue2 : defvalue; こんな感じですか? カッコつけたほうがいいよ。
736 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:20:35.76 ] x = (((10 > a) ? a / 4 : 0)>((5 > b) ? b : 0) ? (( c == d) ? 4 : 2 ) : (( e || f ) : 3 : 1 );
737 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:20:38.32 ] x = (0 < nantoka && nantoka < 100) ? nantoka / 100 + defvalue : (100 <= nantoka && nantoka < 200) ? nantoka / 100 + defvalue2 : defvalue; こんな感じですか?
738 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:21:41.88 ] やっぱりカッコ多すぎると分かり辛いな
739 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:22:24.89 ] >>732 ネストに入るだけなら問題ないって
740 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:24:58.07 ] >>735 nantoka > 0 && nantoka < 100 ? nantoka / 100 + defvalue : nantoka >=100 && nantoka < 200 ? nantoka / 100 + defvalue2 : defvalue; ?で切ればいいだけだからすぐ解るじゃん カッコあると余計迷う
741 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:26:16.70 ] >>736 x = ( (10 > a) ? a / 4 : 0 ) > ( (5 > b) ? b : 0 ) ? ( (c == d) ? 4 : 2 ) : ( (e || f ) ? 3 : 1 );
742 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:26:50.03 ] >>737 最初と条件違うじゃねぇか。間違えるならカッコつけんなよ。
743 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:29:49.62 ] x = 10 > a ? a / 4 : 0 > 5 > b ? b : 0 ? c == d ? 4 : 2 : e || f ? 3 : 1;
744 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:30:20.32 ] >>740 見難い
745 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:35:12.76 ] 三項演算って言語によって動作が違うから困る
746 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:35:19.87 ] >>741 どの部分が条件文なのかが見やすいね。
747 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:41:15.20 ] 長い三項演算子を一行で書く奴が馬鹿ということでw
748 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:49:00.22 ] >>741 x = ( 10 > a ? a / 4 : 0 ) > ( 5 > b ? b : 0 ) ? ( c == d ? 4 : 2 ) : ( e || f ? 3 : 1 );
749 名前:仕様書無しさん mailto:sage [2012/05/13(日) 01:51:18.27 ] ?より左が全部?より右の条件だって知らない人おおいの?
750 名前:仕様書無しさん mailto:sage [2012/05/13(日) 02:09:52.04 ] >>747 長かったら何行に分けようと莫迦だろう。 あと、副作用のある式が含まれてる場合も。
751 名前:仕様書無しさん mailto:sage [2012/05/13(日) 16:23:11.54 ] >>750 なんで馬鹿じゃなく莫迦と書いた?
752 名前:仕様書無しさん mailto:sage [2012/05/13(日) 16:31:51.39 ] >>750 話しするたびに、無駄に疲れさせるタイプだとみた。 こういうタイプは浅い理解しか出来ないクセに 他人には1を聞いて10を知れみたいな理解を求める人が多い。
753 名前:仕様書無しさん mailto:sage [2012/05/13(日) 16:48:25.33 ] >>751 別段意味はないよ。 強いていえば、救い様のないレベルであることを 強調したい気持ちが伝わるといいなー、程度。 そこ大事なトコだった?
754 名前:仕様書無しさん mailto:sage [2012/05/13(日) 17:10:39.27 ] >>753 表現の仕方がイラッとする。 コーディングも同じようにイライラさせてると推測する。 そういう意味で大事なトコ。
755 名前:仕様書無しさん mailto:sage [2012/05/13(日) 18:20:24.05 ] >>740 commit前にformatter通すというルールがあるところだと、こういう、 改行で複雑な式の区切りを示すってやりかたはできないなぁ。 自然と、長い複雑な式は使わないようになってくる。
756 名前:仕様書無しさん mailto:sage [2012/05/13(日) 19:17:09.64 ] 1行の文字数制限とかアホだよなーと思う。 右のほう見に行かなきゃ見えない部分は、どうせ後から読む奴には重要じゃない情報しか無いから。 全体の流れの把握を助けるために、敢えて長くしてるんだってばよ。 もちろん>>740 のようなコトをやってない前提だけど。
757 名前:仕様書無しさん mailto:sage [2012/05/13(日) 19:37:53.74 ] エディタのフォントサイズを10にしてる 文字はみにくいが、全体が見渡せる。
758 名前:757 mailto:sage [2012/05/13(日) 19:48:00.58 ] フォントサイズを小さくしてるからカッコがあった方がパッと見わかりやすい
759 名前:仕様書無しさん mailto:sage [2012/05/13(日) 20:38:36.97 ] >>755 そもそも長い三項目演算子書かなきゃいい 現実はせいぜいこんなもんだろ z = n + ( 0 < x ? y / x : 0 );
760 名前:仕様書無しさん mailto:sage [2012/05/13(日) 21:35:42.19 ] 「三項演算子の中にベタ書きで処理を入れるな」と
761 名前:仕様書無しさん mailto:sage [2012/05/13(日) 22:14:41.06 ] 長い行のときだけスペース入れずに書いてあるのはかなりイラッとする 複数行にするよりスペース省いてでも無理やり一行で書いたほうが見やすいと思ってるのか
762 名前:仕様書無しさん mailto:sage [2012/05/14(月) 18:17:39.06 ] 括弧でくくると見やすくなるの法則って、何法則だっけ?
763 名前:仕様書無しさん mailto:sage [2012/05/14(月) 18:20:08.27 ] プレグナンツの法則
764 名前:仕様書無しさん mailto:sage [2012/05/14(月) 19:04:53.78 ] C言語のくせに、インデックス指定が1から始まるのは 嫌がらせとしか思えない。
765 名前:仕様書無しさん mailto:sage [2012/05/14(月) 23:58:57.22 ] 場合によるだろう month[0] == January, month[1] == February, month[2] == March ……よりも month[1] == January, month[2] == February, month[3] == March ……のほうが直感的だ
766 名前:仕様書無しさん mailto:sage [2012/05/15(火) 00:46:28.70 ] そういう問題じゃねぇ 下手したらバグの温床になる 0版にはゴミは入るし、 配列の要素数とループカウンターの 上限があわねぇし
767 名前:仕様書無しさん mailto:sage [2012/05/15(火) 01:19:55.22 ] その理屈だと日付も0日からはじめるべきじゃね? day[0] == 1, day[1] == 2
768 名前:仕様書無しさん mailto:sage [2012/05/15(火) 02:46:24.41 ] そんなもん配列にいれんな じゃダメ?
769 名前:仕様書無しさん mailto:sage [2012/05/15(火) 03:04:10.81 ] 日付も0からはじめろ
770 名前:仕様書無しさん mailto:sage [2012/05/15(火) 04:01:20.32 ] 噂の9月0日か… 確か1年を30日が12回ってゲームあったな プログラマにとっては楽そうだなと思った
771 名前:仕様書無しさん mailto:sage [2012/05/15(火) 10:41:01.70 ] >>770 FF11のことかw
772 名前:仕様書無しさん mailto:sage [2012/05/15(火) 12:42:31.47 ] カレンダーの仕様がおかしいから変えちまえ!ってことか潔いな
773 名前:仕様書無しさん mailto:sage [2012/05/15(火) 13:05:26.93 ] Luaの配列のインデックスが1からで結局綺麗に書くの諦めた覚えがある。
774 名前:仕様書無しさん mailto:sage [2012/05/15(火) 18:23:08.80 ] 上に行ったら下から出てくる。 左に行ったら右から出てくる。 こんな世界もプログラマにやさしい。
775 名前:仕様書無しさん mailto:sage [2012/05/15(火) 18:54:18.17 ] > 左に行ったら右から出てくる。 これはいいんじゃね?
776 名前:仕様書無しさん mailto:sage [2012/05/15(火) 20:17:29.03 ] 0はnullやfasleと混同しやすいから、バグを生む
777 名前:仕様書無しさん mailto:sage [2012/05/15(火) 23:56:12.94 ] fasle ?
778 名前:仕様書無しさん mailto:sage [2012/05/16(水) 00:12:07.19 ] #define fasle false 問題は解決だ
779 名前:仕様書無しさん mailto:sage [2012/05/16(水) 00:37:47.33 ] >>778 みたいな定義があった上で そこら中でfalseとfasleが混在してたら イラッ☆つとくるじゃ済まねーぜ
780 名前:仕様書無しさん mailto:sage [2012/05/16(水) 23:30:24.88 ] 1ヶ月に28日有る月は何ヶ月有る?
781 名前:仕様書無しさん mailto:sage [2012/05/16(水) 23:52:23.69 ] 12ヶ月
782 名前:仕様書無しさん mailto:sage [2012/05/16(水) 23:52:58.77 ] 訂正、1年あたり12ヶ月
783 名前:仕様書無しさん mailto:sage [2012/05/17(木) 01:08:31.49 ] 無限
784 名前:仕様書無しさん mailto:sage [2012/05/17(木) 09:15:07.96 ] コーディングスタイルの問題というのかわからないけど、 10年前の改修履歴が残ってるのを見るとイラッつとする
785 名前:仕様書無しさん mailto:sage [2012/05/17(木) 17:28:54.79 ] 「コメント禁止。ソース内ではなくExcelファイルに対応するコメントをまとめること。」 という内部規約のプロジェクトのソースを貰った。 案の定ソースとコメントがずれまくっててシャレにならん・・・
786 名前:仕様書無しさん mailto:sage [2012/05/17(木) 17:47:12.96 ] コメント禁止の方はそれほど問題じゃ無いな 俺、コメントなんかほぼ書かないし
787 名前:仕様書名無しさん mailto:sage [2012/05/17(木) 20:35:40.97 ] 関数作るのに申請が必要。 関数名は申請番号をつける。
788 名前:仕様書無しさん mailto:sage [2012/05/17(木) 22:46:50.74 ] >>784 けれど、その履歴が熟成された30年物だったら……?
789 名前:仕様書無しさん mailto:sage [2012/05/18(金) 00:27:51.60 ] 行数を出来る限り短くするのが俺のポリシー なので極力変数は切らない。 分岐は参考演算子のネスト。 俺流コーディングスタイル。
790 名前:仕様書無しさん mailto:sage [2012/05/18(金) 02:14:19.65 ] if(ture or fasle){ contineu; }esle{ fasle retrun; }
791 名前:仕様書無しさん mailto:sage [2012/05/18(金) 03:05:53.38 ] >>790 はぁ? これでリターンする言語なんてあんの?
792 名前:仕様書無しさん mailto:sage [2012/05/18(金) 03:08:30.98 ] ああああ そゆことか。 こりゃ確かにイラつくわw
793 名前:仕様書無しさん mailto:sage [2012/05/18(金) 07:46:00.94 ] >>657 それはコーディングスタイルの話じゃないよね
794 名前:仕様書無しさん mailto:sage [2012/05/18(金) 08:04:32.31 ] /* この関数なんだか挙動がおかしいからとりあえずコメントアウト 中の人が悪さしているかも fn(); */
795 名前:仕様書無しさん mailto:sage [2012/05/18(金) 21:32:33.68 ] >>791 C言語 int true = 1; int false = 1;
796 名前:仕様書無しさん mailto:sage [2012/05/18(金) 22:58:22.00 ] >>790 間違い探し?
797 名前:仕様書無しさん mailto:sage [2012/05/19(土) 20:24:54.71 ] baseClassとかでいい物を、clazzと書く
798 名前:仕様書無しさん mailto:sage [2012/05/19(土) 20:51:41.00 ] コボラの書いたコードで 1ファンクションに3万ステップあった。
799 名前:仕様書無しさん mailto:sage [2012/05/19(土) 22:09:26.69 ] それはもはやコーディングスタイルの問題ではなく そいつのプログラミングスキルの問題だな
800 名前:仕様書無しさん [2012/05/22(火) 22:47:53.70 ] >>684 それ自分はよくやる。戻り値を変数に居れて最後にリターンしたいから。その際に変数名で悩みたくない。
801 名前:仕様書無しさん mailto:sage [2012/05/23(水) 06:05:53.66 ] >>800 いやこれの注目点はif文の条件の出所じゃね クラス変数としても使うなら引数として用意して欲しい
802 名前:仕様書無しさん mailto:sage [2012/05/23(水) 06:44:26.47 ] >>800 処理の見通しが悪くなるから俺はイヤだな 関数の前半で値が確定してるにもかかわらず 最後でreturnされたら、影響が後半で発生してないか いちいち考えなきゃならんのがメンドイ
803 名前:仕様書無しさん [2012/05/23(水) 09:33:43.27 ] え?>>684 て>>685 で答えが出てるんじゃないの?
804 名前:仕様書無しさん mailto:sage [2012/05/23(水) 10:39:15.55 ] >>684 は解釈の仕方がいくつかあるなw 自分的には finally 使わないで書く事多いからよくやる。
805 名前:仕様書無しさん mailto:sage [2012/05/23(水) 19:23:20.20 ] >>803 分岐とreturnの間に別の処理があるつもりで 反応してるやつも多いんだろ
806 名前:仕様書無しさん mailto:sage [2012/05/23(水) 22:13:17.23 ] >>805 まさかそのままだったのかwww 当然ながら処理が省略されてるもんだと思ってたw
807 名前:仕様書無しさん mailto:sage [2012/05/23(水) 23:25:54.83 ] >>806 確かにコレがそのままなら、>>685 で終わりw
808 名前:仕様書無しさん mailto:sage [2012/05/24(木) 09:12:00.04 ] 分岐とreturnの間に戻り値に影響しない処理が入ってたらそれこそイラッとする
809 名前:仕様書無しさん mailto:sage [2012/05/25(金) 09:29:11.35 ] 引数をアンスコ+大文字にする奴が居てイライラする int func(int _Hoge, int _Hage) みたいな感じ
810 名前:仕様書無しさん mailto:sage [2012/05/25(金) 09:35:20.83 ] >>809 C/C++なら、「それは非常識だ」と罵っていい。
811 名前:仕様書無しさん mailto:sage [2012/05/25(金) 19:09:41.26 ] public: ↓ private: この順番、どうよ?
812 名前:仕様書無しさん mailto:sage [2012/05/25(金) 19:38:14.00 ] というか無駄にprivate:があるのがイラッとする privateメンバーがあるなら、classのデフォルトアクセスレベル。 全てpublicならstructのデフォルトアクセスレベルでいい。
813 名前:仕様書無しさん mailto:sage [2012/05/25(金) 21:14:25.63 ] >>811 classを使いたい奴が第一に欲する情報は、公開されているメンバに関するもの それが先頭にまとめられていれば見やすい よってそのスタイルは何ら問題ない
814 名前:仕様書無しさん mailto:sage [2012/05/25(金) 21:51:40.56 ] >>813 言いたいのはメンバ関数だと思うが、それはさておき クラスの素性を知るには、そのクラス特有の基本的管理データ、つまりprivate変数を見るべきじゃないのか?
815 名前:仕様書無しさん mailto:sage [2012/05/25(金) 21:59:23.64 ] 漢のなかの漢な規約では 構造体は一切使わず、全てクラスを使う 潔いから、というのがある
816 名前:仕様書無しさん mailto:sage [2012/05/25(金) 22:36:31.36 ] >>814 普通はprivate変数を見なくても分かるように設計します。 クラスを編集するときの話は別な。
817 名前:仕様書無しさん mailto:sage [2012/05/25(金) 22:59:17.56 ] コーディングスタイルの話じゃないけど、javaの記憶クラスのデフォルトが publicでもprivateでもない中途半端なのがイラッつとする。
818 名前:仕様書無しさん mailto:sage [2012/05/25(金) 23:08:03.36 ] >817 しかも、明示的に"package"等と書けないのがイラッつきを加速させる
819 名前:仕様書無しさん mailto:sage [2012/05/26(土) 00:33:39.55 ] >>813 pimpl使えば気にならんだろ class XxX { public: ;こう始まるほうがウザイわ
820 名前:仕様書無しさん mailto:sage [2012/05/26(土) 00:34:37.90 ] >>814 privateのメンバって、実装上の理由でたまたま持ってるだけだったりするから クラスの素性を知るには、公開されているI/Fをまず調査する。
821 名前:仕様書無しさん mailto:sage [2012/05/26(土) 00:35:16.85 ] >>817 原則publicよりinternalスコープ使えって事だよ いわせんな恥ずかしい
822 名前:仕様書無しさん mailto:sage [2012/05/26(土) 03:39:46.06 ] >>110 うちマジで、 > 入口一つに出口一つ になりそうで、逸脱するときは手続きとれって事になりそうなんだけど、 まぁ俺今品証で直接は関係ないんだけど、文句でないのが不思議だ。 レガシーコードの中には間違いなくあると思うんだけどな。 みんなソース見せてくれないんで知らないけどw
823 名前:仕様書無しさん mailto:sage [2012/05/26(土) 04:32:07.43 ] perl書くときに、どうせ人に見せる事もないので、 C言語のように、main文がほしいと思って #!/usr/bin/perl -w use … &main; sub main{ } と書いてますが、イラッつとしますか?
824 名前:仕様書無しさん mailto:sage [2012/05/26(土) 19:45:38.20 ] 他人に見せないのなら気にすることはない
825 名前:仕様書無しさん mailto:sage [2012/05/26(土) 20:32:38.77 ] >>823 最初からそう書くことは少ないけど、段階的にそうなることはあるなw ベタで書く→サブルーチンを分ける→途中の修正で、面倒くさいからとグローバル変数を直接参照する →収拾がつかなくなってきたところでmainを分離して、出てきたエラーを一気に修正する
826 名前:仕様書無しさん mailto:sage [2012/05/26(土) 21:27:34.77 ] オブジェクト指向ですね
827 名前:仕様書無しさん mailto:sage [2012/05/26(土) 21:55:23.91 ] 違うから
828 名前:仕様書無しさん mailto:sage [2012/05/26(土) 22:30:59.78 ] >>823 -w は今時使わない & は今時使わない お前のコードは古い。
829 名前:仕様書無しさん mailto:sage [2012/05/26(土) 23:05:10.42 ] 即ちイラッつとするコーディングスタイルである
830 名前:仕様書無しさん mailto:sage [2012/05/27(日) 10:52:44.39 ] 軽口叩いてるコメントって書くのはいいけど読まされるとイラッと来るからやめて欲しい
831 名前:仕様書無しさん mailto:sage [2012/05/27(日) 11:13:42.55 ] まともな神経してたら、書くのも違和感を覚えるだろう。
832 名前:仕様書無しさん mailto:sage [2012/05/27(日) 12:26:47.70 ] 変数名や関数名にROMAJIを使わないでください
833 名前:仕様書無しさん mailto:sage [2012/05/27(日) 16:58:11.32 ] samuraiとかninjaみたいに、英語にしたくてもアッチの国でローマ字で通っちゃってる言葉の場合はどうすればいいだろう。
834 名前:仕様書無しさん mailto:sage [2012/05/27(日) 17:07:07.97 ] >>833 それは立派な英語だろ
835 名前:仕様書無しさん mailto:sage [2012/05/27(日) 21:23:27.48 ] 配偶者特別控除なんて変に英訳されたらたまらん。
836 名前:仕様書無しさん mailto:sage [2012/05/27(日) 21:54:28.02 ] それはコード内で識別子に使わずに文字列データとして扱うべし
837 名前:仕様書無しさん mailto:sage [2012/05/27(日) 23:21:47.22 ] HaiguusyaSpecialKoujo
838 名前:仕様書無しさん mailto:sage [2012/05/27(日) 23:36:18.74 ] 某社の自治体向けパッケージではそのまま「配偶者特別控除」だな 個人的には漢字識別子名は邪道だと思うが、視認性がずば抜けてるのは認めざるをえない
839 名前:仕様書無しさん mailto:sage [2012/05/28(月) 00:23:45.53 ] // オブジェクト作成に必要なコードをこの下に挿入します。
840 名前:仕様書無しさん mailto:sage [2012/05/28(月) 01:17:07.48 ] if(1==a) というスタイルで書かれたソースをメンテしたときに、 for(i=0;10>i;++i) i[dst]=i[src]; というコードを追加してやった。
841 名前:仕様書無しさん mailto:sage [2012/05/28(月) 02:08:59.50 ] >>840 普通に意味分かんない。 dst[i] = src[i] か?
842 名前:仕様書無しさん mailto:sage [2012/05/28(月) 06:21:33.73 ] a[b]でもb[a]でも参照するアドレスが同じ言語があるらしい そう皆さんもよくしってるあれです
843 名前:仕様書無しさん mailto:sage [2012/05/28(月) 07:01:57.72 ] 意味がわからずただ反抗するバカっているよな
844 名前:仕様書無しさん mailto:sage [2012/05/28(月) 07:02:58.73 ] 意味がわからずただ反抗するバカっているよな
845 名前:仕様書無しさん mailto:sage [2012/05/28(月) 14:10:25.95 ] >>809 _大文字や__はCなら予約語だな。 #ifndef __HOGE_H__ とかもイラッとする
846 名前:仕様書無しさん mailto:sage [2012/05/28(月) 14:33:29.24 ] >>841 Cすらわからん奴がここにいるとは、信じられん
847 名前:仕様書無しさん mailto:sage [2012/05/28(月) 14:45:44.74 ] わかりやすく書け、ってちょっとイラッつとしたw
848 名前:仕様書無しさん mailto:sage [2012/05/28(月) 16:14:24.26 ] そういうネタだろう
849 名前:仕様書無しさん mailto:sage [2012/05/28(月) 17:40:17.47 ] >>832 ローマ字でもあってればまだいい。 一見英語なんだけどつづり間違いってのがあって どんだけ直したかったかw
850 名前:仕様書無しさん mailto:sage [2012/05/28(月) 20:22:44.61 ] ここでもまたUwaRiteか
851 名前:仕様書無しさん mailto:sage [2012/05/28(月) 20:38:56.59 ] この板の伝説の逸品のひとつだな
852 名前:仕様書無しさん mailto:sage [2012/05/28(月) 21:38:10.07 ] >>840 if(1==a) for(i=0;10>i;++i) はありだな。定数が左に来ないと 比較演算子が画面右に寄って見づらい
853 名前:仕様書無しさん mailto:sage [2012/05/28(月) 21:50:05.01 ] 結局>>840 はどういう意味なんでしょうか? Cはやったことが無いのでまったく意味がわかりません 誰か教えてください。
854 名前:仕様書無しさん mailto:sage [2012/05/28(月) 22:00:25.08 ] Cの配列はポインタみたいなものだっけ もう五年くらい触ってないから忘れた
855 名前:仕様書無しさん mailto:sage [2012/05/28(月) 22:03:06.42 ] >>852 10>iはちょっといやじゃね? 数学の書き方からの借用でi<10が世界標準なきがする
856 名前:仕様書無しさん mailto:sage [2012/05/28(月) 23:18:07.63 ] >>853 >>855
857 名前:仕様書無しさん mailto:sage [2012/05/28(月) 23:53:36.86 ] >>853 通常、a(変数)==1(定数)って書く条件式を逆に記述してるから、他も入れ替えて記述したった!って事よ。
858 名前:仕様書無しさん mailto:sage [2012/05/29(火) 03:05:01.58 ] バカじゃないなら=を書き忘れた時の対策になる書き方の癖を付ける前に =を書き忘れない癖を付けるもんなw
859 名前:仕様書無しさん mailto:sage [2012/05/29(火) 03:08:17.86 ] フェイルセーフ
860 名前:仕様書無しさん mailto:sage [2012/05/29(火) 04:51:14.73 ] 癖の問題じゃねえよどう考えても
861 名前:仕様書無しさん mailto:sage [2012/05/29(火) 05:48:59.62 ] int arr[]={ 1 ,2 ,3 ,4 ,5 }; という最高にメンテしやすい表記編み出したんだけど使っていい?
862 名前:仕様書無しさん mailto:sage [2012/05/29(火) 06:32:50.37 ] >>857 左に変数書くのは常識でも何でもないのに身勝手極まりない話だよ 寧ろ左に定数置く方が多数派だろうに。 if( S_OK == Xxxx() ) オプソや、MS、Oracleなんかのサンプルコードじゃ大概 こんな風に左定数。
863 名前:仕様書無しさん mailto:sage [2012/05/29(火) 06:34:03.20 ] >>857 >i[dst]=i[src]; この部分は動くんですか?
864 名前:仕様書無しさん mailto:sage [2012/05/29(火) 06:44:33.06 ] >>863 *( i + dst ) = *( i + src );
865 名前:仕様書無しさん mailto:sage [2012/05/29(火) 08:14:25.89 ] 言語実装上の間抜けな穴と認識している 動作が同一だからといって文法に基づく意味が同じとはいえない
866 名前:仕様書無しさん mailto:sage [2012/05/29(火) 12:40:39.34 ] >>858 一つの言語しか使えない土方はそうかもしれんが、 たいていのプログラマは複数の言語を使うわけよ 等号が = な言語で仕事しているときに、ちょっとデバグでC++のソースを触ったりすると、 間違えることもあるのだよ
867 名前:仕様書無しさん mailto:sage [2012/05/29(火) 13:06:33.50 ] まともなプログラマなら「運が良ければエラーになる」ようなものに頼らない。
868 名前:仕様書無しさん mailto:sage [2012/05/29(火) 14:57:58.26 ] 逆にSQLとか書いてると==でエラー吐かれてずっと悩む時があるもんな…
869 名前:仕様書無しさん mailto:sage [2012/05/29(火) 16:41:24.05 ] ねーよ
870 名前:仕様書無しさん [2012/05/29(火) 18:19:43.91 ] >>863 自分で試さない奴がいちばんイラッつとする。
871 名前:仕様書無しさん [2012/05/29(火) 19:43:14.85 ] int a = 0 ; int b = 0 ; scanf("%d %d" , &a , &b ) ; a ^= b ^= a ^= b ; printf(" a = %d \nb= %d\n" ,a , b ) ; みたいな感じで、一行スワップ書いたら怒られた
872 名前:仕様書無しさん mailto:sage [2012/05/29(火) 19:53:53.57 ] 怒られたのはたぶん scanf() なんて使ってるから
873 名前:仕様書無しさん [2012/05/29(火) 20:11:27.21 ] scanfって一度の使ったことない
874 名前:仕様書無しさん [2012/05/29(火) 20:38:37.38 ] >>872 >>873 いや、実際にscanf使ったわけじゃないから。
875 名前:仕様書無しさん mailto:sage [2012/05/29(火) 21:54:21.53 ] >>872 何でだよ scanfのパターンマッチが理解出来てねぇだろお前
876 名前:仕様書無しさん mailto:sage [2012/05/29(火) 22:07:31.87 ] aとbが同じ値のときのこと考えてないから怒られたらんじゃね?
877 名前:仕様書無しさん [2012/05/29(火) 23:15:03.81 ] >>871 自己満のトリッキーコード書く奴は怒られて当然 どうしてもそれがやりたきゃせめてマクロ化だろ
878 名前:仕様書無しさん mailto:sage [2012/05/29(火) 23:20:00.07 ] >>871 はそれ書いて何がしたかったの? 格好つけたかったのか?
879 名前:仕様書無しさん mailto:sage [2012/05/29(火) 23:27:30.27 ] 入力にscanfを使っても何も感じない馬鹿が1名いるな 特有の臭さがあるんでこいつのレスはすぐ分かる
880 名前:仕様書無しさん mailto:sage [2012/05/30(水) 01:19:50.06 ] やっぱsscanf_sくらいは使って欲しいよな!
881 名前:仕様書無しさん mailto:sage [2012/05/30(水) 04:12:19.10 ] sscanfなんざ使うよりscanfの方が安全だし、 文字の取りこぼしも少ない 実際scanfを使うことは少ないが、 一時ファイルなんかを対象にfscanfを 使うことは多い
882 名前:仕様書無しさん mailto:sage [2012/05/30(水) 06:17:59.87 ] まあたまにやりたくなるよな 地獄のミサワ 「ふ〜ん、このトリッキーコード、3年位前に俺も思いついたわ〜」とか
883 名前:仕様書無しさん mailto:sage [2012/05/30(水) 07:01:00.94 ] sprintf(buf,…); int len=strlen(buf);
884 名前:仕様書無しさん mailto:sage [2012/05/30(水) 10:43:58.62 ] >>881 ひょっとしてギャg(ry
885 名前:仕様書無しさん mailto:sage [2012/05/30(水) 10:44:55.03 ] >>866 ない。
886 名前:仕様書無しさん mailto:sage [2012/05/30(水) 10:45:33.57 ] >>862 ひょっとしてギャg(ry
887 名前:仕様書無しさん mailto:sage [2012/05/30(水) 10:47:55.32 ] >>861 前職場の同僚にいたなあ>先カンマ 今のC/C++だと後カンマで書けと言わんばかりの仕様なんだが
888 名前:仕様書無しさん mailto:sage [2012/05/30(水) 15:59:23.52 ] アホみたいにステップ数を稼ごうとするのはコボラー時代からの悪習
889 名前:仕様書無しさん mailto:sage [2012/05/30(水) 17:46:05.44 ] 前に見たC++のコードで while(1) { int Hoge = Hage(); if (Hogeの判定) { goto Label; } break; } : : Lablel: : ってのがあったんだけど、エラー処理にgoto使っているせいで変数宣言に いちいちエラーが出るのを回避するためににやっていたみたい。 よくまあ思いつくなぁwwwと思ったんだが、ちょっとイラッつとした。
890 名前:889 mailto:sage [2012/05/30(水) 17:48:27.06 ] × Lablel ○ Label
891 名前:仕様書無しさん mailto:sage [2012/05/30(水) 18:20:27.23 ] >>889 longjumpだっけ? 関数越えのgoto それしないだけマシだと思う。
892 名前:仕様書無しさん mailto:sage [2012/05/30(水) 19:34:40.78 ] >>886 は?scanfの使い方も知らん素人が マ板なんか来るなよ
893 名前:仕様書無しさん mailto:sage [2012/05/30(水) 20:00:39.11 ] >>892 背伸びしてレスしても恥かくだけだよ fscanfとsscanfは稀に使うことはあるが、scanfを使うことはまずない
894 名前:仕様書無しさん mailto:sage [2012/05/30(水) 20:03:28.25 ] >>893 fscanfの話してたんだけど つかレス番まちがえた >>884 だったな紛らわしい
895 名前:仕様書無しさん mailto:sage [2012/05/30(水) 20:05:56.45 ] try/finallyやまともな一行入力ライブラリが 標準でついてない糞言語にイラッと来る
896 名前:仕様書無しさん mailto:sage [2012/05/30(水) 20:21:25.16 ] >>887 長いSQL書いてたときは間カンマ(カンマで1行とる)にしてたなぁ。 あとSQLだと、 WHERE 1=1 AND a=hoge AND b=hage ... なんてのも。
897 名前:仕様書無しさん mailto:sage [2012/05/30(水) 20:21:26.50 ] >>886 事実ですが msdn.microsoft.com/ja-jp/library/cc305629.aspx
898 名前:仕様書無しさん mailto:sage [2012/05/30(水) 20:23:08.56 ] WHERE 1 = 1 AND a = hoge AND b = hage
899 名前:仕様書無しさん mailto:sage [2012/05/30(水) 21:03:52.60 ] >>897 これは? msdn.microsoft.com/en-us/library/windows/desktop/ms724426%28v=vs.85%29.aspx
900 名前:仕様書無しさん mailto:sage [2012/05/30(水) 21:06:58.12 ] 全体として少数派
901 名前:仕様書無しさん mailto:sage [2012/05/30(水) 21:08:52.98 ] てっきりコピペしてそのまま使わせないためにそうしてるものかと思っていた時期が私にも
902 名前:仕様書無しさん mailto:sage [2012/05/30(水) 21:49:22.51 ] >>897 そもそもネストが深すぎだろw
903 名前:仕様書無しさん mailto:sage [2012/05/30(水) 21:59:51.00 ] サンプルなんて盲信するなよ
904 名前:仕様書無しさん mailto:sage [2012/05/30(水) 22:40:23.90 ] どこぞの教科書やサンプル通りに右に定数書くヤツは 条件分岐で何を一番に見るか考えてない
905 名前:仕様書無しさん mailto:sage [2012/05/30(水) 23:30:29.43 ] >>904 $ tar xfJ linux-3.4.tar.xz $ cd linux-3.4/ $ find . -name '*.c' | xargs pcregrep '==\s*[A-Z0-9_]+' | wc -l 127939 $ find . -name '*.c' | xargs pcregrep '[A-Z0-9_]+\s*==' | wc -l 6971 フム・・・・ 定数が右ばかりにあるLinuxは危険だ。 今すぐインターネットから切断した方がいい。
906 名前:仕様書無しさん mailto:sage [2012/05/30(水) 23:34:56.89 ] 定数というより式であるモノを持って来てドヤ顔 しかも何が問題か解ってないという
907 名前:仕様書無しさん mailto:sage [2012/05/31(木) 00:03:00.58 ] そもそも「定数を左に置く」なんてC/C++のバッドノウハウであって、 警告レベルを上げたり静的解析ツールかませば一発で解決すること まぁ、C/C++はともかくとして、それをC#やJava等の他言語で実践している奴にはマジでイラッとくる
908 名前:仕様書無しさん mailto:sage [2012/05/31(木) 00:10:14.91 ] なんてこった読みやすくて素晴らしいGNUスタイルは定数を右に置くのか しかし、定数だけGNUスタイルに合わせるのは問題だな 改行もインデントも至高のGNUスタイルにあわせなきゃっ!
909 名前:仕様書無しさん mailto:sage [2012/05/31(木) 00:12:53.26 ] 未だ定数を左に置くのはエラー出すためだけだと思ってるヤツが居るんだな()
910 名前:仕様書無しさん mailto:sage [2012/05/31(木) 00:17:41.38 ] >>909 他に何があるっていうんだい?
911 名前:仕様書無しさん mailto:sage [2012/05/31(木) 00:20:34.98 ] 定数を右に書くヤツは数個前のレスすら読めないそうだ
912 名前:仕様書無しさん mailto:sage [2012/05/31(木) 00:27:53.74 ] while( GetMessage( &message, 0, 0 ) > 0 ) 読みづらいっつうの