[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ ] Update time : 12/22 04:06 / Filesize : 243 KB / Number-of Response : 1002 [このスレッドの書き込みを削除する ] [+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧 ] [類似スレッド一覧 ] ↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました
gotoを恐れず使う兵共がfinallyや多重breakを語るスレ
1 名前:デフォルトの名無しさん [2005/08/11(木) 11:18:15 ] 前スレ pc8.2ch.net/test/read.cgi/tech/1021364372/
367 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:19:53 ] while (condition) while (condition) if (something_wrong) goto A_FAILURE; else something; while (condition) while (condition) if (something_wrong) goto B_FAILURE; else something; return 0; B_FAILURE: something; A_FAILURE: something; return -1;
368 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:23:45 ] 大域脱出のときだけgoto使うよ派が書くとこうなる? result = 0; while (condition) while (condition) if (something_wrong) result = A_FAILURE; goto END_OF_A; else something; END_OF_A: if (result == 0) while (condition) while (condition) if (something_wrong) result = B_FAILURE; goto END_OF_B; else something; END_OF_B: switch (result) case B_FAILURE: something; case A_FAILURE: something; return -1; default: return 0;
369 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:32:13 ] またコイツか・・・いいかげんウザ
370 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:43:16 ] コミュニケーション能力より技術力の方が大切だと思うので こういう議論で野次馬からウザいと思われるかどうかは気にしませんw
371 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:56:38 ] >>363 ああそんなのもあったっけ。 doではじめるとwhileに書き換えられたことがあった。 それはともかく、 前処理に失敗したら主処理を飛び越して後処理ってするとき、 処理する前に判断しないとだめだろ。 それに、break忘れのリスクもあるが、戻り値の初期化忘れっていうミスを防ぐ効果もある。 どちらかというと正常か異常かを錯誤するほうが重大なミスだから whileよりdoがよいということはないと思う。 あと、エラーなら抜けるっていうまったく同じ目的のためのブロックだから、 前処理も主処理も同じ構文使ったほうがわかりやすいしミスしにくい。 とにかく頭使わずにミスなく書くのが目的だから。
372 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:00:40 ] >>371 >とにかく頭使わずにミスなく書くのが目的だから。 そか。俺は頭使わずにミスなく読めるコードを書くのが目的だから gotoで書く方が読み易い場面ではgotoを使うんだぜ
373 名前:デフォルトの名無しさん [2008/02/11(月) 19:11:03 ] 大域脱出の場合、pythonなら、breakでの脱出とfor文の判断での終了かが はっきり分けられてるから簡単だよ。 UWSCってマクロならbreak 2っていう、2重ループ脱出命令がある。 結局自分で工夫しないといけない言語と、想定された言語があるんだよね。 そもそも、breakは内部はjmpつまりgotoなんだから受け側をswitchみたいに 自動で分けてくれてれば余計なif文でスペック落としたり、 スペックあげるためにアセンブラ使ったりしなくてすむのにな。 結局、どの言語でも共通の設計でいけるように最小限の文法にしてしまったから使いにくいんだよな。 >>372 それはいいけど>>285 みたいなことされても困るんだよ。 あれは関数内でどうせリソースが有効かどうか判断する必要あるだろ。 if hoge { free(hoge); hoge = NULL } とかな だったらとび先は FAILED_INIT_HOGE_INPUT: FAILED_INIT_HOGE_AUDIO: FAILED_INIT_HOGE_GRAPHICS: とか全部いらなくて FAILED: 一つで足りるんだよ。 飛び先が一つなのは分かりやすいだろ。 そもそも、gotoが分かりにくくなる理由は、飛び元と飛び先に同じラベル名が出てきてどっちからどっちに飛んでるかいちいち確認が必要だからだよ。
374 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:17:57 ] >>364 少なくともGNUはインタプリタと呼んでいるようだ。 gcc.gnu.org/onlinedocs/gcj/Invoking-gij.html >gij is a Java bytecode interpreter included with libgcj.
375 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:18:04 ] >そもそも、gotoが分かりにくくなる理由は、飛び元と飛び先に同じラベル名が出てきてどっちからどっちに飛んでるかいちいち確認が必要だからだよ。 これは凄い
376 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:20:54 ] >>361 こんなコード書くやつがいたら、殴ってしまうかもしれない。ペシペシ
377 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:22:58 ] このスレってFizzBuzzすらパスしない奴がごろごろいそう・・・
378 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:25:23 ] 中身のないコードで空虚な議論 お前らヒマだな
379 名前:デフォルトの名無しさん [2008/02/11(月) 19:27:03 ] >>263 をちょっと書き換え if (A_init() != 0) goto A_FAILED; if (B_init() != 0) 80+0; B_FAILED: if (C_init() != 0) goto C_FAILED; if (D_init() != 0) goto B_FAILED; こっそりこういういたずらをしていく人がいるんだ。世の中には。 そういうやつと一緒に仕事しなかった人は幸せもん。 携帯開発の軍曹の話は有名らしいが、 あの戦場を生み出すのがこういうことをする人間なんだ。 本当に単なるミスであの地獄が生まれるとか思ってないよな? ああいうのをやるやつっていうのは、 周りを引きずりおろすことで自分を立派に見せてのし上がろうとする暴力主義のやつら。特に福岡県出身のやつら。
380 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:30:26 ] goto肯定論者の俺でもこのスレのgoto厨には賛成できない
381 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:31:09 ] 流れを読まずに横レス。 GOTO 使わず関数使えというのは、太古の昔、非構造化プログラミングから 構造化プログラミングへのパラダイムシフトが現在進行形だった時代の いわば「スローガン」だと思います。 時代は移り、今は構造化プログラミングが当たり前の時代です。 そのような現在のプログラマが、私たちの先祖が使っていた GOTO 730 と 関数内部での goto FAILED; を同列に論じてしまうことに 私はいささかの疑問を感じるのです。
382 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:33:42 ] > 周りを引きずりおろすことで自分を立派に見せてのし上がろうとする暴力主義のやつら。特に福岡県出身のやつら。 なんだそのビ妙〜な私怨はw
383 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:35:12 ] こっそりって。コミットログすら書かないのか携帯の開発は。
384 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:38:12 ] >>381 小さい関数ならいいが、ブクブク太った巨大関数の中でホイホイと飛ばれると 読むほうは疲れるんだよ。多重breakとか限定された状況ならまだ許せるけどな。 特に考えもせずにgoto多様する馬鹿にかぎって巨大な神関数をつくりたがる。
385 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:38:40 ] >>379 そういうやつと仕事したことないけど、そのコードだとコンパイラ警告 でるんじゃないか?B_FAILEDの行が意味を成していないとか何とか。 擬似コードにつっこむのもあれだが。
386 名前:デフォルトの名無しさん [2008/02/11(月) 19:39:47 ] >>381 飛び先が一箇所ならいいと思うよ。 >>379 みたいないたずらされても、ループするか飛ばすかのどっちかしかないから。 goto FAILED;とかは関数につき1回だし普通は最後に飛ぶだけだし問題になることはないからね。 >>383 証拠が残せるようなシステム使ってないから。 >>382 福岡はそういう地域なんだよ。 完成品チェックって横槍いれて完成してたら強奪。奪ったらパソコン初期化して証拠隠滅。 毎度毎度そればっかり。 完成してたら強奪→正社員 奪われるばっかりの人→派遣社員 いや、別に比喩してるわけじゃなくてね。 社員同士でもそうなんだよ。
387 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:41:27 ] それはgoto以前の問題だし因果関係が明らかに逆。 適切に関数分割できない馬鹿だから 巨大関数の中をgotoで飛び回るコードになる。 そういう馬鹿に言うべきは「処理のまとまりごとに関数に分けろ」であって そいつに「gotoを使うな」と言ったところで 今度は巨大なネストをフラグで引き回すコードを書くだけ。
388 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:42:12 ] >>385 B_FAILED の後ろがセミコロンからコロンになっているのに注意。 君はだまされる方だな。
389 名前:デフォルトの名無しさん [2008/02/11(月) 19:45:08 ] 馬鹿?
390 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:52:16 ] >>388 きづかなかった・・・w もしかしてあなたは、そういういたずらをチョコチョコやっているのではな いかと、疑いたくなってきたなw
391 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:52:52 ] 朱に交われば、なんとやら・・w
392 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:55:23 ] >>387 でもこのスレで出てきてるコード読むと、 神関数つくりそうな勢いのコードが目につくんだけど。
393 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:56:28 ] 昔一緒に仕事したひとで、 「1関数にreturnは1つしか書かない」 という信念を曲げない人がいた。 その人の書いた関数は、最後にラベルがたくさんあってgotoの山盛りだった・・・ ってあれ?デスマーチスレじゃないのか、ここ。
394 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:02:25 ] >>393 そいつってオレジャネ?
395 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:12:00 ] まさかの運命の再会
396 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:29:31 ] でもさ、数行の排他を必要とする関数で lock(); if (arg == NULL) { unlock(); return E_PARAM; } ... unlock(); よりも下のほうが好みだなぁ。lock()とunlock()内を関数に分離するのも馬鹿馬鹿しい ほどの小ささだと lock(); if (arg == NULL) { result = E_PARAM; goto END_FUNC;; } ... END_FUNC: unlock(); return result;
397 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:38:38 ] 一方、俺はfinallyを使った。
398 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:45:37 ] >>397 Cなんだよ、バーヤバーヤ
399 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 21:48:02 ] 某スレより 569 名前:デフォルトの名無しさん [sage]: 2008/02/09(土) 16:46:29 >>566 try finallyは例外を捕まえるための機構であって、ファンクション トレースのための機構ではない。 デストラクタでロギングするほうがよっぽどスマート。try finally に依存したロギングよりも。そしてアスペクト指向のほうが デストラクタロギングよりももっとスマートだといっているのだよ。
400 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 21:53:30 ] finallyって例外つかまえるための機構? 例外以外にもreturnとかでも呼ばれるんじゃないの?
401 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 21:57:43 ] C++厨かよ
402 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 21:59:16 ] gotoはダメだって言っているやつって、 ループ内break、continue、関数の途中のreturnとかもダメだと思ってるの?
403 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:01:34 ] >>402 少なくともこのスレではそんな主張をしているレスは見あたらないね。 で、それがどうしたの?
404 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:02:58 ] そもそもgotoはダメだという主張自体が見当たらないのだが。 できるだけ避けろ、とか、濫用するな、ってのはあるようだがな。
405 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:10:13 ] >402は脳内敵をプロファイリング中でーす
406 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:14:51 ] gotoを書く奴はスパゲティコードを書くという前時代の妄想で脳内敵を作り上げているのはどっちだか
407 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:15:56 ] 重要なのはgotoを使うか使わないかじゃなくて ちゃんとコードレビューしろよってことだ
408 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:21:14 ] >>400 > 例外以外にもreturnとかでも呼ばれるんじゃないの? 正確には、フレームが巻き戻されるのをトラップする機能。 それを利用して、例外のハンドリング(catch)や、後始末の処理(finally)の機構が 実装されている、という表現が正確。
409 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:24:36 ] その「できるだけ」とはどこまでなのかという議論をしていたんじゃ?
410 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:24:46 ] >>407 修正箇所だけのコードレビューとかなら確かにうまくいくけどさ、 何万行のソースコードをレビューで全部網羅するって、 全然うまくいったことがないな。みんなどうしてるのだろ。 ペアプロとかのがよさそうだけど、やったことないや。
411 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:28:34 ] ルール:gotoを使っている関数はコードレビューの対象とする
412 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:31:56 ] >>411 ごめん、俺「関数のreturnは必ず一箇所でやる」ポリシーもってるから、 全部レビュー対象となる^^
413 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:33:39 ] >>412 ^^と書いているが俺が去年やってたプロジェクトだと笑い事じゃなくて実際そうなる。
414 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:36:42 ] 具体的に言うと、gotoを使っている関数は フローチャートおよび詳細な動作説明をドキュメントとして準備してコードレビュー。 もちろんそういうドキュメントを用意してレビュー会で説明するのは実装者。 承認となった場合もドキュメントは保管。 なので濫用する奴なんか自然といなくなる。 誰も濫用しないから何万行のレビューなんてのも実際は発生しない。 無問題。
415 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:41:30 ] goto使ってる関数だけって、、、 あほらし。
416 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:45:08 ] if と if and only if の区別も付かない奴か。
417 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:49:57 ] >>414 それだけだとgoto濫用防止だけだけど、ホカにはどんなルールをきめてるん?
418 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:52:23 ] >>414 それとさ、組み込み系だとファンクショントレース機能があるICEとか 結構効果なのだけどさ、それも全開発者に配布?
419 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:52:57 ] 結構効果なのだけどさ→結構高価なのだけどさ
420 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:55:55 ] >>417 あれこれ言ったら個人特定されるでしょ 単純なのは、一関数が一定の行数を超えたらとか for文で()の中に書く内容が「普通じゃない」とか ちなみに>>412 の理由だけでgotoを使った場合はレビューで却下だよ。
421 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:58:23 ] >>420 世の中にドレダケぷろじぇくとまねーじゃが存在しているのか考えれば、 あなたがやっていることと同じようなことをやっている人は無数にいるから、 特定なんてされないと思うぞw
422 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:59:17 ] >>421 じゃあ先に君の関わったプロジェクトで採用されていたルールを教えてくれ
423 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:59:32 ] >>420 「普通じゃない」とかの基準で、資料作成させられて説明させられる プログラマかわいそすwww もうちょいまともな基準作ったほうがイインジャナイ?
424 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:00:47 ] んーとね。いちいち説明しないとわからんかな。 何が「普通」かは実際には定義されているの。ここでは書かないけど。 簡単に言えばループ変数の初期化、終了条件、増分を普通に書くのが普通
425 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:01:39 ] >>423 説明するのが手間になるようなコードを書くほうが悪いと思うが。
426 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:01:56 ] >>424 「なにが普通か」の基準をきめるための努力は世の中に一杯あって、 基準めいたものもあるんじゃない?
427 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:02:46 ] >>425 え〜だって、俺様基準で「普通じゃないから」っていわれて、「フローチャート」 まで用意させられるのだぜw
428 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:06:57 ] >>427 フローチャートはgotoの場合じゃないの? forの場合には何かトリッキーな式を書いた場合に そのトリッキーな式がなぜ必要なのかを説明する ドキュメント+プレゼンとかそんな感じだと思うが。
429 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:07:59 ] >>427 俺様標準じゃなくて、一応条件が示されてるらしいぞ。 まあ俺には関係ない話だからどうでもいいと言えばどうでもいいが。
430 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:08:47 ] gotoに拘る人間に100k行以上の開発蓄積のある人間はいない。
431 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:10:11 ] 1m行ならわからんでもないがさすがに100k行くらいは新人以外誰でも書いてるだろ
432 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:10:18 ] 好意のは時代を超えて無内容さが変わらないものだな
433 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:10:29 ] >>430 goto厨のコードを読めば、それは明らかだな。
434 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:12:43 ] >>431 1本の開発で一人100k行、の間違いじゃねーの?
435 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:13:56 ] そかも
436 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:16:18 ] goto使ったら詳細資料を用意しなければならないって、 使いたいとこでも使えないじゃねぇか。開発効率悪そう。
437 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:18:36 ] >>436 goto使うだけの理由があればそれを書けばいいんじゃないの? 処理の流れをちゃんと把握できていればフローチャートだって 簡単に書けるし。 それとも実装ドキュメントの類いを一切書かない人?
438 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:19:10 ] >>429 いやさ、その根拠が多くの開発者が納得いくものであればいいが、 「goto使ったら、フローチャート描かせて、説明させる。」っていってる ようなやつが、まともな基準を示せるとは到底思えないのよね。
439 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:20:17 ] フローチャート書ける程度のショボイ処理ならgotoいらないだろ
440 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:22:47 ] >>436 わかって使っている人にとってはその通り。 ただし、こういうレビューの目的の半分は、 将来そのコードの面倒を見る他社のために実装資料を残すこと。 それが、大人のマナー
441 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:24:07 ] >>437 だからさ、goto使うだけでフローチャート書けっていってるのは、 基準が曖昧すぎるといってるのよ。別にgotoが適切な場合もあるし、 そうでない場合もある。whileが適切でない場合もあるし、そうで ない場合もある。 そんなこといってたら、すべてのプログラムにたいして全部 フローチャート書けという事になるわけで。
442 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:24:44 ] フローチャート(笑)
443 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:26:59 ] 他社とは限らないな。自社の別チームでも何でも。 要するに、今の実装チームが未来永劫メンテするわけじゃないということ
444 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:29:30 ] >>443 せめてさ、世の中に「メンテナンス性が高いプログラム」を判別しようとする 努力があって、そのための基準が研究されている事実くらい勉強した上で そういうこといったほうがいいんじゃない? goto使ったらコードレビューだ!とかじゃなくてさ。
445 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:30:09 ] 可読性の定量化なぞ不可能さ。 管理面でどうしても何かしたいならば。 goto使用許可を出せる権限を 誰かに付与すればイイんじゃね?
446 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:34:14 ] >>441 gotoは他の構文要素と比較して、適切に使われない場合が多いという 共通認識があるからこそ、このスレも成立していると思うんだが。 適切なgotoもそうでないgotoもあり、適切なwhileもそうでないwhileもある。 だから全部やるか何もやらないかどちらかにしろ・・・では物は作れない。 現実的な判断として、かけるコストを回収できる効果があるかどうか。 というのが常識として書いていたが、考えてみればここはマ板でなく ム板だから学生や研究者も当然いるのか。
447 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:38:10 ] >>446 いや、あなたがいままで言ったような判断基準より、ましな判定基準を 提供するツールはあるし(商用、フリーかかわらず)、そのことすら 知らないまま、ぷろじぇくとまねぇじゃぁをやるのは周囲を不幸にするよ、 といってるだけだけど。
448 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:38:10 ] >>444 浅学にして知らなかった。ポインタを示してもらえるかな。 研究者ではないので、俺はそういう勉強は足りないと自分でも思う。
449 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:40:22 ] ところで、俺はそういうプロジェクトに開発者として関わっていたのだが どこからプロジェクトマネージャという誤解が発生しているのかな
450 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:40:51 ] コードレビューするのは結構なことだが、 くだらない決まり作って、くだらない作業させるようなプロジェクトは、 メンバのモチベーションも低いだろ。
451 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:50:07 ] >>448 とりあえず「複雑度」でぐぐってこいw
452 名前:デフォルトの名無しさん [2008/02/11(月) 23:51:32 ] 人の意見に文句だけいって自分は何も提供しない人って周囲のモチベーションさげるよねw 他の人、自分のかかわってたプロジェクトではどうだったのさ。 最低限そのくらい言ったら?
453 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:55:58 ] >>452 お前は、ナニサマナンダ
454 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:01:22 ] >>451 情報感謝。そういえば、そういうのも何か使ったことはあった。 ただ、そのプロジェクトだと単にビルド時に出していただけで、 それがどう使われていたのか知らない。値が高くても低くても特に何もなかった。 その値に適当な閾値を決めてレビューとかやればいいのか? 実際にプロジェクトでどういう運用がされていて、効果がどうだったのかとか、 そういう感想もあれば是非
455 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:05:25 ] これ以上ないくらいスレ違いだな
456 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:07:52 ] >>454 閾値はあるていどキビシ目にきめたほうがいいが、実際にレビューするか どうかは、閾値が異常な値を示しているコードがバグを良く出すとか、 新規作成のものであるかとかいう事情を加味して考慮したほうがいい。 安定して動作しているモジュールを閾値より外れているから、といって リファクタリングしたところで新たな不具合を生み出すだけ。 目的を見失わないようにしながら、やればいい。 しかし複雑度の計測もマダマダであって、あくまで一つの参考にしか ならないが。
457 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:45:08 ] こないだ、goto文が使われているコードを 昔作ったものから持ってった。 キー入力の評価だから これ以上重たくしたくもない・・・というところ。 select 文二重+if文の底から出るのに breakを掛けるのは・・・
458 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:48:03 ] 世の中のプロジェクトは、まだまだ、リーダーとかマネージャとか上司とかの 「コーディング規約」(訳:俺の理解できない しんきのう は使うな) が支配的なのな。
459 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:53:03 ] 分野によるが、多人数が関る(新人やアホが混じりやすい)プロジェクトでは必須 MISRA-Cとか
460 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:59:27 ] MISRA-Cってどの程度使われてるのかね それはさておき、MISRA-Cを適用するような分野に 新人やアホが混じってるというのはガクブルだな
461 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:18:15 ] MISRA-Cは、新人やアホがまじらないための基準という意味では まぁ有効だが、そういうやつがいない現場にとっては、無駄な 足かせにしかなっていないという矛盾がある。そして、そういうやつ が混じらないようにする努力というのは経営陣の仕事であって、現場の 規約を固めるのはあまり意味がない。 ミスを防ぐための基準が、よけいに複雑なコードを生み出して、 逆にミスを生み出してしまうような矛盾が今のMISRA-Cにはある。
462 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:56:39 ] そういうやつがいない現場の数のほうが少ない
463 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 07:33:58 ] 結局、まじめに処理構造を見直すのがマンドクセからgoto使うんでしょ。 gotoマンセ君は多人数での開発経験がないんじゃねーの?
464 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 08:11:19 ] C覚えて2-3年程度のアマチュアが「goto、ヤベーw」とはしゃいでるだけ。
465 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 11:30:23 ] >>463 gotoを使ったほうが可読性が高い場合に遭遇したことが無いね?
466 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 12:30:26 ] 基本文献はクヌースのStructured Programming with go to Statementsですかね。 あと、このへんで、 ttp://www.cmagazine.jp/src/kinjite/c/coding.html#index32 gotoと同じくらいダメとされている手を、gotoを避けるためだけに 使ってないか? というのは良い指標かと思う。
467 名前:463じゃないが mailto:sage [2008/02/12(火) 17:17:23 ] >>465 もちろんあるけど、しっかり考えれば考えるほど少なくなっていくよ。
[ 続きを読む ] / [ 携帯版 ]
前100
次100
最新50
▲ [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ [+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧 ] ( ´∀`)<243KB
read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products. 担当:undef