- 1 名前:仕様書無しさん [2006/12/26(火) 16:18:46 ]
- この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。 プログラマを悩ませるソースコード。 をつらつらと綴っていって頂戴。 ちなみにここは質問スレじゃないので 技術的な質問がしたいならム板に逝って。 前スレ この会社辞めようと思ったソースコード#14 pc8.2ch.net/test/read.cgi/prog/1158190165/
- 602 名前:仕様書無しさん mailto:sage [2007/02/06(火) 10:43:11 ]
- >>601
一行目: 正論 二行目: 人が融通がきかないのではなく、 属している組織自体の考え方が融通がきかない のではないかと思われる
- 603 名前:仕様書無しさん mailto:sage [2007/02/06(火) 10:50:22 ]
- 個人的には、上は有り得ない。
- 604 名前:仕様書無しさん mailto:sage [2007/02/06(火) 10:51:49 ]
- leadersGamesなどに代入した値を、再びgamesWonからみる理由が分からない。
- 605 名前:仕様書無しさん mailto:sage [2007/02/06(火) 10:59:04 ]
- >>603
決定表をIF文の羅列に落とすことはあるが、 上の例は、上手く出来ていない。 わざと上手く出来ていないので、仕方ない。
- 606 名前:仕様書無しさん mailto:sage [2007/02/06(火) 11:34:02 ]
- if( ( game[0] == 7 ) ||
( game[0] == 6 && game[1] < 5 ) ) { return "Player1 wins the set " + games[0] + " - " games[1]; } if( ( game[1] == 7 ) || ( game[1] == 6 && game[0] < 5 ) ) { return "Player2 wins the set " + games[1] + " - " games[0]; } if( games[0] > games[1] ) { return "Player1 leads " + games[0] + " - " + games[1]; } if( games[0] < games[1] ) { return "Player2 leads " + games[1] + " - " + games[0]; } return "Set is tied at " + games[0] + "games"; 上の方式でif列挙にするとしたらこうだよな。 あとは数値の定数化。 ついでにgamesWon関数で数値の範囲例外処理行わないとNG。 引数のPlayerが4とか来た場合とか、 呼ばれすぎて勝利数が両方8とかになったらどうするつもりかと小一時間(ry
- 607 名前:仕様書無しさん mailto:sage [2007/02/06(火) 12:20:01 ]
- >>602
598も今の会社をやめればまともになる = 悪いのは全て会社の体質というのがこのスレの主旨 ということですかね?
- 608 名前:仕様書無しさん [2007/02/06(火) 12:28:44 ]
- >>601のほうが記事の意図に合わせようとして
逆に融通が利いてない気がするが 両方とも×という答えのほうがいいと思う 俺も正直上も下もどっちもどっちだと思う。 game[0]とか意味がわからん
- 609 名前:仕様書無しさん mailto:sage [2007/02/06(火) 12:49:25 ]
- >>608のおかげで、会社をやめたくなるようなコードが生成される理由を
垣間見れた気がする
- 610 名前:仕様書無しさん mailto:sage [2007/02/06(火) 14:32:56 ]
- >>609
「意味がわからん」って、業務知識の無さを誇られても困るよね・・・ テニスではセット内での得点のことをゲームといいます、とか コメントに書けってか?
- 611 名前:仕様書無しさん mailto:sage [2007/02/06(火) 14:38:57 ]
- >>610
ずれてる、ずれてるw
- 612 名前:仕様書無しさん mailto:sage [2007/02/06(火) 15:25:16 ]
- >>611
あながちズレてないんじゃない?
- 613 名前:仕様書無しさん mailto:sage [2007/02/06(火) 15:29:37 ]
- 609ではないが、テニスがわからないとメンテできないプログラムというのはどうか。
業務で使うソースにはもっとコメントを書いて欲しいところだね。
- 614 名前:仕様書無しさん mailto:sage [2007/02/06(火) 15:37:58 ]
- 609や613は、例えば携帯電話のモックアップを見せられて、
「モックAとモックBのどちらのデザインがいいですか?」 と聞かれて 「どちらのモックアップも通話機能が搭載されてないからゴミです」 とか答えるんですか?
- 615 名前:仕様書無しさん [2007/02/06(火) 16:04:02 ]
- デザインと通話機能は全く関係ないんだから
そんなこと答えるわけないだろw
- 616 名前:仕様書無しさん mailto:sage [2007/02/06(火) 16:09:50 ]
- 俺的には下だと思うんだが、同僚にいわせると上らしい。納得いかない。
気分悪いからもう帰る。
- 617 名前:仕様書無しさん mailto:sage [2007/02/06(火) 16:16:38 ]
- >>613
作る人、メンテする人が業務知識を持ってることは前提じゃないか? テニスに関係したものならテニスに関係した知識を持っておくのが当然でしょ。 普段できない子扱いされてない?大丈夫?イ`
- 618 名前:仕様書無しさん mailto:sage [2007/02/06(火) 16:30:33 ]
- なんかズレまくってるようだけど、
595のやつって要は論理演算ちゃんとわかってますか? ってことでしょ サンプルコードが悪いけど、 少ない分岐に場合わけできるのにそれをしないでダラダラIF文書いても 冗長になって汚くなるよってことがいいたいんじゃないの?
- 619 名前:仕様書無しさん [2007/02/06(火) 17:41:41 ]
- 上のほうが、直感的にわかりやすいんじゃね
下は若干頭をひねる必要があるが どっちがクリーンかっていってもなー 下がせめて3行くらいにまとまってれば下がいいと思うかも知れんが。 まあこれ作った人も、最初はもっときれいになると思ってたんだと思うが
- 620 名前:仕様書無しさん mailto:sage [2007/02/06(火) 17:46:07 ]
- オレならこんな感じかな
テニスの事は良く知らんから、間違ってるかも if ( gamesWon[0] == gamesWon[1] ) { return "Set is tied at " + gamesWon[0] + "games"; } String leader = null; int[] point = null; if ( gamesWon[0] > gamesWon[1] ) { leader = "Player1"; point[0] = gamesWon[0]; point[1] = gamesWon[1]; } else { leader = "Player2"; point[0] = gamesWon[1]; point[1] = gamesWon[0]; } if ( point[0] == 7 ) { return leader + " wins the set 7 - " + point[1]; } return leader + " leads " + point[0] + " - " + point[1];
- 621 名前:620 mailto:sage [2007/02/06(火) 17:48:00 ]
- ×int[] point = null;
○int[] point = new int[2];
- 622 名前:仕様書無しさん mailto:sage [2007/02/06(火) 17:52:49 ]
- ネタにしても酷いな。
- 623 名前:620 mailto:sage [2007/02/06(火) 18:07:04 ]
- うわあ変数名間違ってる
gamesWon じゃなくて全部 games ね あと、 if ( point[0] == 7 ) { ? } は if ( point[0] == 7 || (point[0] == 6 && point[1] < 5) ) { return leader + " wins the set " + point[0] + " - " + point[1]; } て事で 見直すと >>606 と大差無いな
- 624 名前:仕様書無しさん mailto:sage [2007/02/06(火) 18:52:57 ]
- ヤレヤレ
お前らほんっっとバカ!!!
- 625 名前:仕様書無しさん mailto:sage [2007/02/06(火) 20:00:36 ]
- 盛り上がってんなー
無意味に
- 626 名前:仕様書無しさん [2007/02/06(火) 20:31:36 ]
- 誰か任天堂でテニス作ったやつはいないのか???
- 627 名前:仕様書無しさん mailto:sage [2007/02/06(火) 20:35:08 ]
- 俺的にはpoint[0]だのpoint[1]で終わってると思う
配列使ってる時点で、point[2]とかの存在も想像できるから pointの意味がまったく意味不明となってしまう すなわち元記事のやつらにえらそうなこと言われる筋合いは無いということだ
- 628 名前:仕様書無しさん mailto:sage [2007/02/06(火) 20:48:52 ]
- >>610
テニスが業務知識かよ って、業務と全然関係ないんですけど 的外れもいいところ
- 629 名前:仕様書無しさん mailto:sage [2007/02/06(火) 20:52:38 ]
- >>628
対象のメタテクストは要求されて然るべき。 例文のプログラムの対象はテニス。 現状で、お前の業務がテニスで無いだけ。
- 630 名前:仕様書無しさん mailto:sage [2007/02/06(火) 20:54:31 ]
- String setScoreMessage = null;
エエー
- 631 名前:仕様書無しさん mailto:sage [2007/02/06(火) 20:56:11 ]
- あはは
- 632 名前:仕様書無しさん mailto:sage [2007/02/06(火) 20:56:33 ]
- 結論。
どっちもどっち。
- 633 名前:仕様書無しさん mailto:sage [2007/02/06(火) 20:57:11 ]
- >>628
>テニスが業務知識かよ >って、業務と全然関係ないんですけど えー。要件も読めないんですかー。 コーディングスタイル以前の話だな・・・ 元の記事より引用 > ここで、同じ処理を行う2つの短いコードを見てみたい。これは、テニスのセットカウントを数えるコードだ[注3]。
- 634 名前:仕様書無しさん mailto:sage [2007/02/06(火) 21:03:00 ]
- 趣味:お琴とテニス
おとことペニス
- 635 名前:仕様書無しさん mailto:sage [2007/02/06(火) 21:03:15 ]
- >>630
String setScoreMessage = ""; が良いと言うこと?
- 636 名前:仕様書無しさん mailto:sage [2007/02/06(火) 21:03:59 ]
- テニスごときで一生懸命になるなよアホか
- 637 名前:仕様書無しさん mailto:sage [2007/02/06(火) 21:07:16 ]
- ステップ数論争のときも思ったけど、
おかしな人がいるね。
- 638 名前:仕様書無しさん [2007/02/06(火) 21:13:19 ]
- long a,b;
・・・ a = (long)b;
- 639 名前:仕様書無しさん mailto:sage [2007/02/06(火) 21:34:06 ]
- ここの連中みてたら、昨日までこの会社やめたいって思ってたコードが
ましにみえてきた
- 640 名前:仕様書無しさん mailto:sage [2007/02/06(火) 21:51:37 ]
- やめたいって思ってたコードを詳しく
- 641 名前:仕様書無しさん mailto:sage [2007/02/06(火) 22:41:44 ]
- 上の方がいい点は引数に意味ある名前ついてるとこだな。
というわけでどっちもウンコ。 まあ英語が普通に読めるなら下は問題ないのかもしれんが。 VBAの変数が日本語なのと大差ない感じだと思うがね。
- 642 名前:595 mailto:sage [2007/02/07(水) 01:48:27 ]
- おー、仕事にゆとりある人けっこう多いのね。
「どちらとも言えない」って、力みすぎな気がする。 >>595でも言ったけど、いちおうコード書いてご飯食べてる人対象ってことで。
- 643 名前:仕様書無しさん mailto:sage [2007/02/07(水) 02:12:33 ]
- どっちのコードもまずgameWon()メソッドがおかしいし
引数がそのまま配列のインデックスとして扱われるなんて・・・
- 644 名前:仕様書無しさん mailto:sage [2007/02/07(水) 02:28:12 ]
- >>643
playerだからさほど気にならなかった。 言われてみれば、入力値チェックくらい欲しいかも。
- 645 名前:仕様書無しさん mailto:sage [2007/02/07(水) 02:33:15 ]
- >>643
なんでおかしいの?テニスではプレイヤー(ダブルスではチーム)は絶対に2つしかないから スコアをintの配列で扱ってもなんら問題は無いと思うけども。。。。 で、どっちがいいかって言うとコメントなしで考えるなら上のソースのほうが読んで 仕様が理解しやすい。 んでも拡張性で考えると、どっちもどっちな気がする。 たとえば、>>595のソースは7ゲーム先取したほうが勝ちっていう仕様だけど 実際のテニスみたいにタイブレークが永遠に続くようにって仕様変更される ことを考えるとどっちも修正は容易じゃないきがするね。 勝利判定のメソッドをもうひとつ挟み込めば結構すっきりするし拡張性も あがるんじゃないかとなんとなく思った。
- 646 名前:仕様書無しさん mailto:sage [2007/02/07(水) 02:38:42 ]
- >>644
チェックしてどうすんの?w 1か2以外がきたら明らかなバグだからException投げてもらわないと困るだろw チェックしても結局Exception投げるしかないんだからチェックの意味なす
- 647 名前:606 mailto:sage [2007/02/07(水) 10:22:11 ]
- >>623
いんや、根本が違う。 漏れのは上方式。 おまいさんのは下方式。 >>645 そのへんの指摘は606で書いてる。 勝利条件を6以上かつ差が2以上あいたとき、 にしておけばタイブレークは問題ないと思われ。
- 648 名前:606 mailto:sage [2007/02/07(水) 10:24:12 ]
- 補足すると606でああいう勝利条件判定にしたのは
オリジナルの勝利条件判定との差異を入れたくなかったから。 バカ要求仕様(コメント無し勝利条件おかしいエラーチェック無し)どおりに作ったうえで ソースコードの見易さを比較するのが今回の話のキモだからな。
- 649 名前:仕様書無しさん mailto:sage [2007/02/07(水) 12:04:24 ]
- > 実際のテニスみたいにタイブレークが永遠に続くようにって仕様変更される
タイブレークがどんだけ続いても、最終的には7-6か6-7のはずだが…
- 650 名前:仕様書無しさん mailto:sage [2007/02/07(水) 13:56:11 ]
- おぉ。こんな単純であるはずの問題にも
仕様の解釈誤りの問題が。
- 651 名前:仕様書無しさん mailto:sage [2007/02/07(水) 14:23:32 ]
- C#2.0にて
List<ArrayList>
- 652 名前:仕様書無しさん mailto:sage [2007/02/07(水) 19:21:21 ]
- 引き継いだVCプログラムで、グリッドに列を追加して欲しいって
要望があったので修正しようとコード見たら列番号が 全部マジックナンバーで指定してある・・・ しかたなしに'4'とか'5'で検索してみたら m_flg = 4;とかm_flg = 5;らしきコードがコメントも無く・・・ 見なきゃ良かったorz
- 653 名前:仕様書無しさん mailto:sage [2007/02/09(金) 12:54:29 ]
- >>650
たとえ問題が単純でも、ついでに頭まで単純だとこういうことになる。
- 654 名前:仕様書無しさん mailto:sage [2007/02/09(金) 19:01:56 ]
- ここの連中、馬鹿ばっかりだもんな
- 655 名前:仕様書無しさん mailto:sage [2007/02/14(水) 17:29:37 ]
- 馬鹿なほうが生きていくのが楽だとか聞いた事がある。
>>654はどうなの?
- 656 名前:仕様書無しさん mailto:sage [2007/02/14(水) 21:13:00 ]
- 馬鹿ばっかりで困ってます
- 657 名前:仕様書無しさん mailto:sage [2007/02/23(金) 14:29:55 ]
- 左のパーツと右のパーツの動きが同じ仕様のある製品。
プロジェクトの途中から加わりソースを眺めていると ほぼ同じような構成の、左右2つ分のファイルの組が沢山あった
- 658 名前:仕様書無しさん mailto:sage [2007/02/24(土) 15:24:54 ]
- うちの会社のバカのコードをここに無造作に張ると、たいてい30は罵倒のレスが付く。
場合によっては荒れる。
- 659 名前:仕様書無しさん mailto:sage [2007/02/24(土) 16:07:54 ]
- よし貼れ
- 660 名前:仕様書無しさん mailto:sage [2007/02/24(土) 16:27:54 ]
- ワクワクテカテカ
- 661 名前:仕様書無しさん mailto:sage [2007/02/24(土) 17:04:39 ]
- ごめん、いまちょっと俺にひらめきがない。
- 662 名前:仕様書無しさん mailto:sage [2007/02/24(土) 17:35:03 ]
- (・∀・)カエレ!
- 663 名前:仕様書無しさん mailto:sage [2007/02/24(土) 23:35:12 ]
- 不発ワロスw
- 664 名前:仕様書無しさん mailto:sage [2007/02/25(日) 04:37:34 ]
- >>22
- 665 名前:仕様書無しさん mailto:sage [2007/02/25(日) 20:22:21 ]
- この流れで思い出したのは
学生 「あれあれ?怒らせていいんですか?使いますよ。イオナズン。」 面接官「いいですよ。使って下さい。イオナズンとやらを。それで満足したら帰って下さい。」 学生 「運がよかったな。今日はMPが足りないみたいだ。」 面接官「帰れよ。」
- 666 名前:仕様書無しさん mailto:sage [2007/02/26(月) 15:43:02 ]
- これは嫌だ。
182 名前:仕様書無しさん[sage] 投稿日:2007/02/23(金) 17:08:35 何を考えたか、クラスごとに(VSの)プロジェクトを分割したプロジェクト。 クラスといっても全ては画面。互いに参照設定して開発をするらしい。 なんか、バカが頭を使うとろくなことにならんなとしみじみ思った。
- 667 名前:仕様書無しさん mailto:sage [2007/02/26(月) 20:14:01 ]
- >>666
VBで開発してた頃は、跳び先ごとにactivex.exeにしたりしてたけど?
- 668 名前:仕様書無しさん mailto:sage [2007/02/26(月) 20:52:30 ]
- オーメン!
- 669 名前:仕様書無しさん mailto:sage [2007/02/26(月) 23:39:16 ]
- iCount As Long 'Integer
- 670 名前:仕様書無しさん mailto:sage [2007/02/27(火) 00:28:01 ]
- >669
この程度見飽きたわ!! (TT)
- 671 名前:仕様書無しさん mailto:sage [2007/02/27(火) 16:04:57 ]
- 中身はIntegerの範囲しかはいらないけど、ループ変数だから処理速度の関係で
あえてLongにしてるんじゃないの?
- 672 名前:仕様書無しさん mailto:sage [2007/02/27(火) 16:07:18 ]
- >>669
かっこいいスペルだな!
- 673 名前:仕様書無しさん mailto:sage [2007/02/27(火) 16:07:18 ]
- lCount As Long 'Integer
って書けっつーこと?
- 674 名前:仕様書無しさん mailto:sage [2007/02/27(火) 17:22:47 ]
- >>673
そういう話だとしたら、、、 くっだらねえな。
- 675 名前:仕様書無しさん mailto:sage [2007/02/27(火) 17:25:38 ]
- なんだ、「私はカウントする者」という自己主張なのかと思った。
- 676 名前:仕様書無しさん mailto:sage [2007/02/27(火) 17:37:41 ]
- 1."iCount As Long 'Integer"って書いた人は、ハンガリアン記法が間違ってる
2.>>669がVBの最適化を知らなかった 3.両方 3ってこと?
- 677 名前:仕様書無しさん mailto:sage [2007/02/27(火) 17:38:56 ]
- >>675はワロス
- 678 名前:仕様書無しさん mailto:sage [2007/02/27(火) 20:25:48 ]
- >>676
始めはこれ iCount As Integer ↓ 後で桁数が足りないことに気づいたが、 変数名を置換するのが面倒で型のみを変更した。 iCount As Long 'Integer 答えは4.手抜き
- 679 名前:仕様書無しさん mailto:sage [2007/02/27(火) 21:05:07 ]
- 君はこの地獄に生きる我々にその程度のネタを開陳してどうしたかったのだ?
- 680 名前:仕様書無しさん mailto:sage [2007/02/27(火) 21:36:30 ]
- 開チン?
- 681 名前:仕様書無しさん mailto:sage [2007/02/27(火) 21:44:26 ]
- 半刈り案なんか強要される莫迦な職場は辞めたくなるな。
- 682 名前:仕様書無しさん mailto:sage [2007/02/28(水) 00:50:48 ]
- ラベルに限って日本語変数名はいがいと便利だと思うようになってきたり…
- 683 名前:仕様書無しさん mailto:sage [2007/02/28(水) 02:21:10 ]
- ラベルにコメントをつけるんだ。
1度坂道を転がり落ちたら下まですぐだぞ!
- 684 名前:仕様書無しさん mailto:sage [2007/02/28(水) 02:29:11 ]
- CP/M使ってたころならともかく
もう識別子に日本語使えるようになってもいいんぢゃね?
- 685 名前:仕様書無しさん mailto:sage [2007/02/28(水) 02:35:17 ]
- 書きにくい
- 686 名前:仕様書無しさん mailto:sage [2007/02/28(水) 02:37:09 ]
- >678
ぶっちゃけその程度は このスレ的には「ふーん。よくあるね。で?」ってなレベル
- 687 名前:仕様書無しさん mailto:sage [2007/02/28(水) 07:26:48 ]
- >>684
最近のJavaでは、使えるらしいが、 幸い使った事も使われてるのをみた事も無いな。
- 688 名前:仕様書無しさん mailto:sage [2007/02/28(水) 12:07:55 ]
- 昔Lispで試したことがあるが
関数とグローバル変数が日本語だと物凄く読み易くなることが分かった 入力が面倒なのが難点(ローマ字で打っておいてまとめて置換w)
- 689 名前:仕様書無しさん mailto:sage [2007/02/28(水) 20:44:15 ]
- 俺のコメントが669のものだと勘違いしている奴多すぎw
- 690 名前:仕様書無しさん mailto:sage [2007/02/28(水) 21:11:09 ]
- まぁ、君はそれほどつまらんオチをつけたということだよ。
誇っていい。
- 691 名前:仕様書無しさん mailto:sage [2007/02/28(水) 22:55:42 ]
- >687
まさにそれが横溢しているプロジェクトにいた で、日本語クラス名変数名メソッド名使ってないと思ったら、一転、謎識別子のオンパレード…… (GYMKYK0500132A.javaとか。汎用機のCOBOLバリバリなシステムをリプレースしたもんだからって……なぁ) どうにか半年強で抜けてきた……
- 692 名前:仕様書無しさん mailto:sage [2007/03/01(木) 12:00:15 ]
- ソースコードじゃないが、ダイアログで
△更新が完了しました OK →キャンセル 一体何がキャンセルされるのかと…。 何も起こらないけど。
- 693 名前:仕様書無しさん mailto:sage [2007/03/01(木) 12:12:10 ]
- ループってIntegerよりLong使ったほうが速くなるもんなの?
- 694 名前:仕様書無しさん mailto:sage [2007/03/01(木) 19:38:46 ]
- 32bit環境ならlongのが早い
- 695 名前:仕様書無しさん mailto:sage [2007/03/01(木) 21:41:26 ]
- 今、調べて知ったんだがVB6の整数型って16bit環境みたいな名前なんだな
今までもこれからも使うことない知識だろうが
- 696 名前:仕様書無しさん mailto:sage [2007/03/01(木) 21:56:57 ]
- 旧資産の超拡張でしかないからな
- 697 名前:仕様書無しさん mailto:sage [2007/03/01(木) 23:30:41 ]
- >>684
VC++2005なら。
- 698 名前:仕様書無しさん mailto:sage [2007/03/02(金) 14:41:19 ]
- VBって最適化とかないの?
- 699 名前:仕様書無しさん mailto:sage [2007/03/02(金) 14:57:16 ]
- VBを選択しないことが最適化
- 700 名前:仕様書無しさん mailto:sage [2007/03/02(金) 15:51:37 ]
- 奇才現る
- 701 名前:仕様書無しさん mailto:sage [2007/03/02(金) 16:15:55 ]
- >>698-699
VBの開発は、まずこういう奴らを黙らせることから始まる。
- 702 名前:仕様書無しさん mailto:sage [2007/03/02(金) 16:38:00 ]
- やっぱ、拳と拳の語り合いですか
|

|