- 1 名前:仕様書無しさん [2007/08/14(火) 23:48:45 ]
- この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。 プログラマを悩ませるソースコード。 をつらつらと綴っていって頂戴。 ちなみにここは質問スレじゃないので 技術的な質問がしたいならム板 pc11.2ch.net/tech/ に逝って。 前スレ この会社辞めようと思ったソースコード#17 pc11.2ch.net/test/read.cgi/prog/1183700531/
- 486 名前:仕様書無しさん [2007/09/23(日) 17:07:07 ]
- >>485
だよね。 それを無視して「コメントは少ない方がいい!」ってほえてるのって馬鹿過ぎだよね。 いつからJavaの話になったんだか。
- 487 名前:仕様書無しさん mailto:sage [2007/09/23(日) 17:07:19 ]
- >>479
- 488 名前:仕様書無しさん mailto:sage [2007/09/23(日) 17:08:08 ]
- >>484
だからさ・・・ 「プロジェクトの規約として別な方法が記載されていたらそっちを優先すべき」 って言ってるでしょ。 そりゃクライアントがそういう風に指定したらそっちを使うのが当たり前っしょ。 わざわざ指定されてるのに別な書き方してたら訴えられるそ。 おまえはどんなプロジェクトだろうと自己流コードをかいてりゃいいさ
- 489 名前:仕様書無しさん mailto:sage [2007/09/23(日) 17:08:38 ]
- >>482
sunのガイドラインがどうこう言う前に、コボルは旧コードをコメントアウトして残すのを辞めれ。
- 490 名前:仕様書無しさん mailto:sage [2007/09/23(日) 17:08:44 ]
- MSのハンガリアンマンセーに従ってた奴乙
- 491 名前:仕様書無しさん [2007/09/23(日) 17:09:44 ]
- >>488
> だからさ・・・ > 「プロジェクトの規約として別な方法が記載されていたらそっちを優先すべき」 うん。 だから言っている内容を変更したわけだよね? それって後付けだよね? だとしたら、最初に言った「コメントは少ない方がいい」って間違えたんだよね?
- 492 名前:仕様書無しさん mailto:sage [2007/09/23(日) 17:10:15 ]
- >>486
いや、>>485は君と対立してた俺なんだけど・・・ Javaの話してたんじゃないの? そういうことならすまんかったわ。 あくまで俺のはJava限定の話ね。
- 493 名前:仕様書無しさん mailto:sage [2007/09/23(日) 17:11:12 ]
- 自分がコメントあったほうが読みやすいから、そうしてる
規約でダメなら渡すときにコメント全削除してやるからいいよ
- 494 名前:仕様書無しさん mailto:sage [2007/09/23(日) 17:11:20 ]
- >>469
- 495 名前:仕様書無しさん [2007/09/23(日) 17:11:50 ]
- >>492
そうか。 Java限定なんて前提は初めてだけど、君が前提を間違えていたと言う事ね。 なら仕方ない。 もっともJava限定でも当初の「コメントは少ない方が良い」って間違えているけどね。 プロジェクト規約の方が優先度高いんだから。 ま、今は理解したらしいけど、少なくとも最初は間違えて書いたのは事実だよ。 気をつけてねw
- 496 名前:仕様書無しさん [2007/09/23(日) 17:12:43 ]
- >>493
天才児あらわるw >>494 その前からJava前提で書いているよ。 そんな話どこにもなかったのにね。
- 497 名前:仕様書無しさん mailto:sage [2007/09/23(日) 17:14:35 ]
- >>495
プロジェクトの規約に従うのは前提条件でしょ? 後付けで、 「プロジェクトとしてまったく異なる規約が存在しているとしたら?」 と言われても困るわ そりゃ、どんな間違った書き方でも仕様でも、客が指定してきたら従うよ。 その点については君と同意。 ただし、特に指定されてないならSun準拠にしとけば間違いないでしょ。 ちなみに俺もいちいちほかの人の書いたものを指摘はしないけどね。 お金くれるなら別だけど。
- 498 名前:仕様書無しさん mailto:sage [2007/09/23(日) 17:16:33 ]
- >>497
煩いバカだな。
- 499 名前:発端 mailto:sage [2007/09/23(日) 17:27:12 ]
- >>438 >>453 >>459 です。
私の書いたことが原因でスレが荒れてしまい申し訳ないです。 みなさんそれぞれの意見が聞けたことで大変勉強になりました。 このスレは好きなスレの一つなので、 上記の件については終わりということでお願いしますm(__)m
- 500 名前:仕様書無しさん mailto:sage [2007/09/23(日) 17:30:40 ]
- 流れていたときにリアルタイムで読んでなかったのでタイミングを逃したけど。
>>461 >誰でもコード読めるわけじゃないしね。 >「このブロックでは、○○の処理をしています」って書いてある事で >とりあえず数十行が簡単に読み飛ばせるなら、その方が効率がいいのは自明。 ○○を名前にしたメソッドに切り出す。 というのが定石で、Sunのなんたらってのも、そういうコーディングが前提かと。 まあ、我々はネイティブではないので メソッド名でわかるコードを書くというのは現実的には敷居が高いが、 Javadoc をちゃんと書けばそれほど無茶な話でもないと思われ。
- 501 名前:仕様書無しさん mailto:sage [2007/09/23(日) 17:31:25 ]
- 悪いコメントの例 言語はC
int wrk_COUNTER1; /* カウンタ1 */ 具体的な文言はともかくこのレベルのコメントが実在した。 どんな言語だろうとコレはさすがに....ていうか変数名からしてヤバい。 しかもコレグローバル変数なんだぜ! ほかにも /*ファイルを開く */ /* 変数をインクリメント */ 納品するソースを練習台にするなよorz
- 502 名前:仕様書無しさん mailto:sage [2007/09/23(日) 17:45:08 ]
- ステートメントレベルコメントの問題は
・コードとコメントを同期させて管理していくのが手間 ・コメントを付ける基準の統一が難しく、個々のコーダー任せになる かな。 前者は関数レベルでも同じじゃないかと思うかもしれないけど、 関数レベルというのは設計段階で fix されているべきもので (少なくとも理屈では) そこが頻繁に更新されるというのは、コメント以前に別の問題がある。
- 503 名前:仕様書無しさん mailto:sage [2007/09/23(日) 18:48:23 ]
- コードの方をわけ分からなくすれば解決だぜ!
// ストリームを開く。 public T0000 F0000() { ...; }
- 504 名前:仕様書無しさん mailto:sage [2007/09/23(日) 19:25:43 ]
- >>503
天才
- 505 名前:仕様書無しさん mailto:sage [2007/09/23(日) 19:28:41 ]
- >>503
本気であるので困る // 検索結果を取得する public D001_0012 F001_0012(I001_001 arg0) { } 当然、Excelの管理台帳(笑)で管理される
- 506 名前:仕様書無しさん mailto:sage [2007/09/23(日) 19:30:52 ]
- これはひどい・・・
- 507 名前:仕様書無しさん mailto:sage [2007/09/23(日) 19:37:47 ]
- ちなみにサーバーサイドJavaだったんだが、表示するJSPも G001_002U.jspとかだぜ。
あわせてG001_002U.jsがそれぞれセットになっているからカオスすぐる で、Gなんだが良く解らないから聞いてみたんだ。 「画面のGだろ、そんなことも解らないのか?」と怒られた(´・ω・`)
- 508 名前:507 mailto:sage [2007/09/23(日) 19:43:19 ]
- 思い出せばもっと色々あったぞ。
・変数は全て文字列(当然DBも) ・親会社のバグだらけの怪しいフレームワーク強制 で、オチだったんだが、中国へのオフショア(笑)で夜逃げされた。
- 509 名前:仕様書無しさん mailto:sage [2007/09/23(日) 19:44:07 ]
- なんというコボル脳…。
- 510 名前:仕様書無しさん mailto:sage [2007/09/23(日) 19:44:49 ]
- 画面のGとか凄すぎるフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
- 511 名前:仕様書無しさん mailto:sage [2007/09/23(日) 19:51:09 ]
- printf("HelloWorld!!フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ\n");
- 512 名前:507 mailto:sage [2007/09/23(日) 19:51:11 ]
- もっと晒すぜ、ヒャホー
データ構造定義(笑)はこんな感じ データ構造定義ID D001_0012 項目ID 長さ (中略) 備考 D001_0012_001 18 (中略) 商品ID(9桁)
- 513 名前:仕様書無しさん mailto:sage [2007/09/23(日) 19:53:02 ]
- まぁアレだろ。Fだろ。
- 514 名前:仕様書無しさん mailto:sage [2007/09/23(日) 19:55:53 ]
- Gって言ったらゴキブ
ぅゎぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
- 515 名前:仕様書無しさん mailto:sage [2007/09/23(日) 19:56:44 ]
- >>513
残念。 N系
- 516 名前:仕様書無しさん mailto:sage [2007/09/23(日) 19:57:23 ]
- 誤: printf("HelloWorld!!フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ\n");
正: printf("HelloWorld!!\n");フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
- 517 名前:仕様書無しさん mailto:sage [2007/09/23(日) 19:58:23 ]
- 寿司食いたいフフフフフフフ
- 518 名前:仕様書無しさん mailto:sage [2007/09/23(日) 20:04:09 ]
- printf(buf);
buf内に%sが入って死亡・・・・・・
- 519 名前:仕様書無しさん mailto:sage [2007/09/23(日) 20:13:51 ]
- 祭りに乗り遅れた・・・
- 520 名前:仕様書無しさん mailto:sage [2007/09/23(日) 20:18:52 ]
- // ずっと俺のターン
while (1) printf'("フ");
- 521 名前:仕様書無しさん mailto:sage [2007/09/23(日) 20:34:35 ]
- ガリでも食ってろフフフフフフフ
- 522 名前:仕様書無しさん mailto:sage [2007/09/24(月) 02:20:45 ]
- G001_001???ってのは、
画面IDをそのまま名前にしてるんなら保守はしやすいのかもしれん。 もちろん画面IDがきっちり管理できてるのが前提だけど。
- 523 名前:仕様書無しさん mailto:sage [2007/09/24(月) 02:33:26 ]
- >>522
おまえは設計するなよ!約束だぞ!
- 524 名前:仕様書無しさん mailto:sage [2007/09/24(月) 02:40:18 ]
- ID項目それぞれに対する説明の文書なりpdfがあるんじゃないの
それなら分かる
- 525 名前:仕様書無しさん mailto:sage [2007/09/24(月) 06:57:17 ]
- >>524
わかりやすい命名になってればその文書自体不要になるか、 大幅に簡略化できる。 なまじ素直な性格だと、 「業界の先輩たちが長いことやってることだから、なにかよいことがあるんだろう」 って思っちゃうんだよなあ… 昔々、ディレクトリというものが無く、 データ領域につける名前に大文字と数字6文字とか8文字とかしか 使えなかった時代の習慣を引きずってるだけなんだが。
- 526 名前:仕様書無しさん mailto:sage [2007/09/24(月) 07:19:10 ]
- コボルのコメントってどう書くんだっけ。さすがに38年も書いてないと忘れた。
- 527 名前:仕様書無しさん mailto:sage [2007/09/24(月) 07:42:33 ]
- *
- 528 名前:仕様書無しさん mailto:sage [2007/09/24(月) 09:31:28 ]
- きたねえ穴だな
- 529 名前:仕様書無しさん mailto:sage [2007/09/24(月) 11:29:14 ]
- >>522
氏ね せめて、ItemList_02.jsp とかある程度はまとめた上での連番にするべきだろ
- 530 名前:仕様書無しさん mailto:sage [2007/09/24(月) 11:31:49 ]
- >526
行番号の直後の桁にアスタリスク
- 531 名前:仕様書無しさん mailto:sae [2007/09/24(月) 11:57:25 ]
- >>530
きたねえ穴だな
- 532 名前:仕様書無しさん [2007/09/24(月) 12:07:51 ]
- >>530
きたねえ穴だな // じつは入れたいと思っている気持ちの裏返しの発言
- 533 名前:仕様書無しさん mailto:sage [2007/09/24(月) 12:48:06 ]
- // キーボードの状態を取得する
bool getKeyboardStatus() { //キーボードの状態がおかしい if (status_ == RESPONSE_ERROR) { // 投げる throwKeyboard(); } return status_; } みたいな名前と処理が一致しない関数が 山ほどあって気が抜けない (´Д`;)
- 534 名前:仕様書無しさん mailto:sage [2007/09/24(月) 12:49:29 ]
- >>533の返り値は気にしないで・・・。
- 535 名前:仕様書無しさん [2007/09/24(月) 13:17:56 ]
- while (1)
{ int nRet; nRet = 仕事(); if (nRet == ERROR) { int nMood = Get今の気持ち(); if (nMood == BUTIKIRE) { throwMouse(); throwKeyboard(); beatNeighbor(); quitJob(); break(); } } }
- 536 名前:仕様書無しさん mailto:sage [2007/09/24(月) 13:47:47 ]
- while(辞めない) {
while (1) { int nRet; nRet = 仕事(); if (nRet == ERROR) { int nMood = Get今の気持ち(); if (nMood == BUTIKIRE) { throwMouse(); throwKeyboard(); beatNeighbor(); quitJob(); break(); } } } }
- 537 名前:仕様書無しさん [2007/09/24(月) 14:02:06 ]
- >>536
\ ∩─ー、 \/ ● 、_ `ヽ / \( ● ● |つ | X_入__ノ ミ 俺は釣られないクマ ・・・ 、 (_/ ノ \___ノ゙ / 丶' ⌒ヽ::: / ヽ / /::: / /へ ヘ/ /::: / \ ヾミ /|::: (__/| \___ノ/:::
- 538 名前:526 mailto:sage [2007/09/24(月) 17:28:31 ]
- >>530 ありがとです。
- 539 名前:仕様書無しさん mailto:sage [2007/09/24(月) 17:30:27 ]
- プログラミングが上達するコツ
pc11.2ch.net/test/read.cgi/tech/1190555031/
- 540 名前:仕様書無しさん mailto:sage [2007/09/24(月) 19:11:26 ]
- int mind;
mind = kokoro() while (1) { mind -= 1; if (mind < 0) { takeMedicine(); goHospital(); if (mind < 0) { quitJob; break(); } } }
- 541 名前:仕様書無しさん [2007/09/24(月) 20:42:13 ]
- >>540
これバグってるだろww 仕事してないのになんで mind-=1 なんだよ。 仕事しろ仕事w
- 542 名前:仕様書無しさん [2007/09/24(月) 20:50:48 ]
- >>540
Jobインターフェースが実装されてません。 java.neet.helloworkパッケージからインポートして実装してください
- 543 名前:仕様書無しさん mailto:sage [2007/09/24(月) 21:02:35 ]
- NoSuchMethod : kokoro()
- 544 名前:仕様書無しさん mailto:sage [2007/09/24(月) 21:14:18 ]
- 今システムテストしてるソース群みてびっくりしたよ、
ぜんぜんエラーハンドリングしてないの 最近の奴らは戻り値とか関係なしか?
- 545 名前:仕様書無しさん mailto:sage [2007/09/24(月) 21:21:29 ]
- 俺は自分がデバッグする時楽するために
必ず戻り値のチェック入れてる
- 546 名前:仕様書無しさん mailto:sage [2007/09/24(月) 21:21:51 ]
- レスをスルー
例外もスルー
- 547 名前:仕様書無しさん mailto:sage [2007/09/24(月) 21:54:30 ]
- 「この子画面処理中に異常が発生したらどうすべきか」全く書いてないから実装してあげませんw
- 548 名前:仕様書無しさん mailto:sage [2007/09/24(月) 22:34:12 ]
- レスをスロー
例外もスロー
- 549 名前:仕様書無しさん mailto:sage [2007/09/24(月) 23:26:52 ]
- まぁ、なんでもかんでもCatchすりゃいいって考えるのは厨だね。
本来どっかでバグがあってこけることでそのバグを見つけるかもしれないってのに Catchして適当な処理したら、何年たっても見つからない可能性がある。
- 550 名前:仕様書無しさん mailto:sage [2007/09/24(月) 23:27:57 ]
- catch 厨
- 551 名前:仕様書無しさん [2007/09/25(火) 00:14:56 ]
- >>549
戻り値を監視しながら処理を進めるのが普通だと思ってたが 転職先ではエラー処理は書かないのが基本だった… 郷に入れ歯
- 552 名前:仕様書無しさん mailto:sage [2007/09/25(火) 00:21:51 ]
- C系だとアサーションは入れるけど
結局リリース時には素通りだったりするよね
- 553 名前:仕様書無しさん mailto:sage [2007/09/25(火) 00:22:00 ]
- >>551
お前が正しい。
- 554 名前:仕様書無しさん mailto:sage [2007/09/25(火) 01:44:59 ]
- >>552
だったりと言うかリリースならアサーションはスルーされて当然じゃ?
- 555 名前:仕様書無しさん mailto:sage [2007/09/25(火) 01:46:41 ]
- >>554
開発・テスト時に異常にならなければそれでOKじゃね?とエラー処理入れないままなパターン。
- 556 名前:仕様書無しさん mailto:sage [2007/09/25(火) 02:02:11 ]
- たまに実行時エラーにアサーション入れたりする奴がいるから困る。
つか、リリースモードでリリースする、 っていう確約が何も無いのにアサーション入れたりする奴がいるけど、 全くもって正気かどうか疑いたくなる。
- 557 名前:仕様書無しさん [2007/09/25(火) 02:37:16 ]
- >>556
リリース版で最終テストしてリリースするっていうのは、 ものすごく基本的な話なんじゃないのか? 世の中には、 『デバック版でしか動かないからそのままリリース』 という輩も居るらしいが…
- 558 名前:仕様書無しさん mailto:sage [2007/09/25(火) 04:05:27 ]
- msvcrtd.dll(デバッグ版Cランタイム)は再配布禁止…らしいな。
- 559 名前:仕様書無しさん mailto:sage [2007/09/25(火) 11:05:02 ]
- FILE1 とか RET2 とか…ソレは何のファイルなのか、どんな戻り値なのか。
辞めようとまでは思わないけどさ。
- 560 名前:仕様書無しさん [2007/09/25(火) 14:13:53 ]
- ABAPで例外を拾おうとあくせくした日々が懐かしい。
そもそもまともに例外を拾う気の無いツールでそんなことするのは無駄だった。
- 561 名前:仕様書無しさん mailto:sage [2007/09/25(火) 17:23:02 ]
- スレ無いから聞いてみるけど、"QAC"ってどうなの?
そこそこ使えるようだが俺的には hoge==TRUE を問題として検出しないツールはあまり信用できない。 (ほかにも=と==の間違い疑惑を指摘しなかったりとか) で、うちの会社アホみたいにこのツールの出力結果を信奉している。 相当投資したみたいだから盲信したくなるのはわからないこともないがね。
- 562 名前:仕様書無しさん [2007/09/25(火) 17:36:06 ]
- TRUE==hogeを俺は認めないぞ
可読性が著しく低下する。 そんなソースは書いたことがないぞ。
- 563 名前:仕様書無しさん mailto:sage [2007/09/25(火) 18:11:03 ]
- TRUE==hogeってことは…TRUE値と、他の真の値を区別したい場合だよな、きっと?
- 564 名前:仕様書無しさん mailto:sage [2007/09/25(火) 18:28:11 ]
- もしも真実がホゲだったなら...どうする!?
- 565 名前:仕様書無しさん mailto:sage [2007/09/25(火) 19:03:55 ]
- QACを参考に修正したことなど一度も無いな。
開発内テストが終わった後にかけるので意味が無い。 というかこれユーザインタフェースが終わってる。 使いづらいったらありゃしない。
- 566 名前:仕様書無しさん mailto:sage [2007/09/25(火) 21:14:29 ]
- ・副作用がある
・定数として評価できる
- 567 名前:仕様書無しさん mailto:sage [2007/09/25(火) 21:45:14 ]
- 「hoge==TRUE」よか「=と==の間違い疑惑」のほうが重要じゃね?
後者に引っかからなくていいから前者に引っかかって欲しいの? 変数同士になっても有効なのは後者じゃ? ま、どっちでもええか
- 568 名前:仕様書無しさん mailto:sage [2007/09/25(火) 22:23:30 ]
- >>561
たぶん検出のための設定があると思うぞ。
- 569 名前:仕様書無しさん mailto:sage [2007/09/25(火) 22:40:20 ]
- bool check(hoge){
bool TRUE; if (hoge >= 0 && hoge <= 100){ TRUE = true; } else { TRUE = false; } return TRUE; }
- 570 名前:仕様書無しさん mailto:sage [2007/09/25(火) 22:41:03 ]
- うわすっげえむずむずするコード
- 571 名前:仕様書無しさん mailto:sage [2007/09/25(火) 22:46:42 ]
- >>569
きもちわりぃw 定数左派の人って範囲チェックのときはどうかくの? ( 0 < hoge && 100 > hoge )ってなるのかな? ==の時だけ定数左?
- 572 名前:仕様書無しさん mailto:sage [2007/09/25(火) 22:56:49 ]
- >>571のいる会社は大変だな
- 573 名前:仕様書無しさん mailto:sage [2007/09/25(火) 22:59:25 ]
- for文書くときもやっぱ
for(int i=0;10>i;i++) みたいに書くんだろうか?
- 574 名前:仕様書無しさん mailto:sage [2007/09/25(火) 23:13:54 ]
- >>573
そういう人もいるよ。
- 575 名前:仕様書無しさん mailto:sage [2007/09/25(火) 23:13:57 ]
- gccで動かしててC99仕様で書いてる。
QACにかけるとエラーだらけ。。
- 576 名前:仕様書無しさん mailto:sage [2007/09/25(火) 23:19:08 ]
- C99はできる子。
- 577 名前:仕様書無しさん mailto:sage [2007/09/25(火) 23:28:36 ]
- >>572
周りに定数左派がいないもんで、ちょいと疑問に思っただけなんだ。
- 578 名前:仕様書無しさん mailto:sage [2007/09/26(水) 01:08:52 ]
- 気分で左右を入れ替える俺は駄目人間だぜ
- 579 名前:仕様書無しさん mailto:sage [2007/09/26(水) 01:20:07 ]
- 統一感が無いのはいかんな
- 580 名前:仕様書無しさん mailto:sage [2007/09/26(水) 05:33:49 ]
- i++ でも ++i でもいいときに
++i を使う人ってどれくらいいるかな
- 581 名前:仕様書無しさん mailto:sage [2007/09/26(水) 07:40:44 ]
- そもそも++i 自体使わなければならない場面はゼロに近いし・・・
わんらいなー気取りで可読性を低くしているのに気付かないだけ
- 582 名前:仕様書無しさん mailto:sage [2007/09/26(水) 08:31:40 ]
- 「間」なんかは数学では ( 0<x<100 ) とか書くでしょ。だからcでも ( 0<x && x<100 ) って書く。
- 583 名前:仕様書無しさん mailto:sage [2007/09/26(水) 08:35:28 ]
- iteratorを進めるときは使うなぁ、++i。
- 584 名前:仕様書無しさん mailto:sage [2007/09/26(水) 09:32:02 ]
- 普通の組み込み型等なら後置、イテレータだったりオーバーロードされテルものだったら前置
- 585 名前:仕様書無しさん mailto:sage [2007/09/26(水) 10:13:58 ]
- これはイテレータとか、区別するのも性能劣化も嫌だから、
どちらでも良いときは常に前置。
- 586 名前:仕様書無しさん mailto:sage [2007/09/26(水) 10:19:44 ]
- 同じく無駄な性能劣化は嫌だし、区別するのも面倒だから前置
最近の賢いコンパイラなら後置でも最適化で一時オブジェクトつくらずにやってくれるかもしれんが
|

|