この会社辞めようと思ったソースコード#15at PROG
この会社辞めようと思ったソースコード#15 - 暇つぶし2ch595:仕様書無しさん
07/02/06 00:44:46
じゃあ、アンケート

URLリンク(www.atmarkit.co.jp)

仕事で上下どっちに近いコードを書いている?

上 1

596:仕様書無しさん
07/02/06 01:17:38
>>595
下1

597:仕様書無しさん
07/02/06 01:38:33
>>595
目くそ鼻くそで選ぶ気になれねえ

598:仕様書無しさん
07/02/06 02:08:44
下の方が多少いいんだろうけど、コメントない時点でうんこだわ。

599:仕様書無しさん
07/02/06 02:21:08
五十歩百歩。
だけど綺麗なコードを提示しろと言われると
面倒で面倒で

600:仕様書無しさん
07/02/06 03:35:35
下っぽく書こうとして気づいたら上になってる 1

601:仕様書無しさん
07/02/06 08:55:11
コメントはここでは問題ないんじゃ
そういう融通のきかない人がいる会社もどうなんですかね

602:仕様書無しさん
07/02/06 10:43:11
>>601
一行目:
 正論
二行目:
 人が融通がきかないのではなく、
 属している組織自体の考え方が融通がきかない
 のではないかと思われる

603:仕様書無しさん
07/02/06 10:50:22
個人的には、上は有り得ない。

604:仕様書無しさん
07/02/06 10:51:49
leadersGamesなどに代入した値を、再びgamesWonからみる理由が分からない。

605:仕様書無しさん
07/02/06 10:59:04
>>603
決定表をIF文の羅列に落とすことはあるが、
上の例は、上手く出来ていない。
わざと上手く出来ていないので、仕方ない。

606:仕様書無しさん
07/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:仕様書無しさん
07/02/06 12:20:01
>>602
598も今の会社をやめればまともになる

悪いのは全て会社の体質というのがこのスレの主旨

ということですかね?

608:仕様書無しさん
07/02/06 12:28:44
>>601のほうが記事の意図に合わせようとして
逆に融通が利いてない気がするが
両方とも×という答えのほうがいいと思う
俺も正直上も下もどっちもどっちだと思う。
game[0]とか意味がわからん

609:仕様書無しさん
07/02/06 12:49:25
>>608のおかげで、会社をやめたくなるようなコードが生成される理由を
垣間見れた気がする

610:仕様書無しさん
07/02/06 14:32:56
>>609
「意味がわからん」って、業務知識の無さを誇られても困るよね・・・
テニスではセット内での得点のことをゲームといいます、とか
コメントに書けってか?

611:仕様書無しさん
07/02/06 14:38:57
>>610
ずれてる、ずれてるw

612:仕様書無しさん
07/02/06 15:25:16
>>611
あながちズレてないんじゃない?

613:仕様書無しさん
07/02/06 15:29:37
609ではないが、テニスがわからないとメンテできないプログラムというのはどうか。
業務で使うソースにはもっとコメントを書いて欲しいところだね。

614:仕様書無しさん
07/02/06 15:37:58
609や613は、例えば携帯電話のモックアップを見せられて、
「モックAとモックBのどちらのデザインがいいですか?」
と聞かれて
「どちらのモックアップも通話機能が搭載されてないからゴミです」
とか答えるんですか?

615:仕様書無しさん
07/02/06 16:04:02
デザインと通話機能は全く関係ないんだから
そんなこと答えるわけないだろw

616:仕様書無しさん
07/02/06 16:09:50
俺的には下だと思うんだが、同僚にいわせると上らしい。納得いかない。
気分悪いからもう帰る。

617:仕様書無しさん
07/02/06 16:16:38
>>613
作る人、メンテする人が業務知識を持ってることは前提じゃないか?
テニスに関係したものならテニスに関係した知識を持っておくのが当然でしょ。

普段できない子扱いされてない?大丈夫?イ㌔

618:仕様書無しさん
07/02/06 16:30:33
なんかズレまくってるようだけど、
595のやつって要は論理演算ちゃんとわかってますか?
ってことでしょ
サンプルコードが悪いけど、
少ない分岐に場合わけできるのにそれをしないでダラダラIF文書いても
冗長になって汚くなるよってことがいいたいんじゃないの?

619:仕様書無しさん
07/02/06 17:41:41
上のほうが、直感的にわかりやすいんじゃね
下は若干頭をひねる必要があるが
どっちがクリーンかっていってもなー
下がせめて3行くらいにまとまってれば下がいいと思うかも知れんが。

まあこれ作った人も、最初はもっときれいになると思ってたんだと思うが

620:仕様書無しさん
07/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
07/02/06 17:48:00
×int[] point = null;
○int[] point = new int[2];

622:仕様書無しさん
07/02/06 17:52:49
ネタにしても酷いな。

623:620
07/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:仕様書無しさん
07/02/06 18:52:57
ヤレヤレ
お前らほんっっとバカ!!!

625:仕様書無しさん
07/02/06 20:00:36
盛り上がってんなー
無意味に

626:仕様書無しさん
07/02/06 20:31:36
誰か任天堂でテニス作ったやつはいないのか???


627:仕様書無しさん
07/02/06 20:35:08
俺的にはpoint[0]だのpoint[1]で終わってると思う
配列使ってる時点で、point[2]とかの存在も想像できるから
pointの意味がまったく意味不明となってしまう
すなわち元記事のやつらにえらそうなこと言われる筋合いは無いということだ


628:仕様書無しさん
07/02/06 20:48:52
>>610
テニスが業務知識かよ
って、業務と全然関係ないんですけど
的外れもいいところ

629:仕様書無しさん
07/02/06 20:52:38
>>628
対象のメタテクストは要求されて然るべき。
例文のプログラムの対象はテニス。
現状で、お前の業務がテニスで無いだけ。

630:仕様書無しさん
07/02/06 20:54:31
String setScoreMessage = null;
エエー

631:仕様書無しさん
07/02/06 20:56:11
あはは

632:仕様書無しさん
07/02/06 20:56:33
結論。
どっちもどっち。

633:仕様書無しさん
07/02/06 20:57:11
>>628
>テニスが業務知識かよ
>って、業務と全然関係ないんですけど
えー。要件も読めないんですかー。
コーディングスタイル以前の話だな・・・

元の記事より引用
> ここで、同じ処理を行う2つの短いコードを見てみたい。これは、テニスのセットカウントを数えるコードだ[注3]。

634:仕様書無しさん
07/02/06 21:03:00
趣味:お琴とテニス
おとことペニス

635:仕様書無しさん
07/02/06 21:03:15
>>630
String setScoreMessage = "";
が良いと言うこと?


636:仕様書無しさん
07/02/06 21:03:59
テニスごときで一生懸命になるなよアホか

637:仕様書無しさん
07/02/06 21:07:16
ステップ数論争のときも思ったけど、
おかしな人がいるね。

638:仕様書無しさん
07/02/06 21:13:19
long a,b;

・・・

a = (long)b;

639:仕様書無しさん
07/02/06 21:34:06
ここの連中みてたら、昨日までこの会社やめたいって思ってたコードが
ましにみえてきた

640:仕様書無しさん
07/02/06 21:51:37
やめたいって思ってたコードを詳しく

641:仕様書無しさん
07/02/06 22:41:44
上の方がいい点は引数に意味ある名前ついてるとこだな。
というわけでどっちもウンコ。
まあ英語が普通に読めるなら下は問題ないのかもしれんが。

VBAの変数が日本語なのと大差ない感じだと思うがね。

642:595
07/02/07 01:48:27
おー、仕事にゆとりある人けっこう多いのね。

「どちらとも言えない」って、力みすぎな気がする。
>>595でも言ったけど、いちおうコード書いてご飯食べてる人対象ってことで。

643:仕様書無しさん
07/02/07 02:12:33
どっちのコードもまずgameWon()メソッドがおかしいし
引数がそのまま配列のインデックスとして扱われるなんて・・・

644:仕様書無しさん
07/02/07 02:28:12
>>643
playerだからさほど気にならなかった。
言われてみれば、入力値チェックくらい欲しいかも。

645:仕様書無しさん
07/02/07 02:33:15
>>643
なんでおかしいの?テニスではプレイヤー(ダブルスではチーム)は絶対に2つしかないから
スコアをintの配列で扱ってもなんら問題は無いと思うけども。。。。

で、どっちがいいかって言うとコメントなしで考えるなら上のソースのほうが読んで
仕様が理解しやすい。
んでも拡張性で考えると、どっちもどっちな気がする。
たとえば、>>595のソースは7ゲーム先取したほうが勝ちっていう仕様だけど
実際のテニスみたいにタイブレークが永遠に続くようにって仕様変更される
ことを考えるとどっちも修正は容易じゃないきがするね。

勝利判定のメソッドをもうひとつ挟み込めば結構すっきりするし拡張性も
あがるんじゃないかとなんとなく思った。

646:仕様書無しさん
07/02/07 02:38:42
>>644
チェックしてどうすんの?w
1か2以外がきたら明らかなバグだからException投げてもらわないと困るだろw
チェックしても結局Exception投げるしかないんだからチェックの意味なす

647:606
07/02/07 10:22:11
>>623
いんや、根本が違う。
漏れのは上方式。
おまいさんのは下方式。

>>645
そのへんの指摘は606で書いてる。
勝利条件を6以上かつ差が2以上あいたとき、
にしておけばタイブレークは問題ないと思われ。

648:606
07/02/07 10:24:12
補足すると606でああいう勝利条件判定にしたのは
オリジナルの勝利条件判定との差異を入れたくなかったから。

バカ要求仕様(コメント無し勝利条件おかしいエラーチェック無し)どおりに作ったうえで
ソースコードの見易さを比較するのが今回の話のキモだからな。

649:仕様書無しさん
07/02/07 12:04:24
> 実際のテニスみたいにタイブレークが永遠に続くようにって仕様変更される
タイブレークがどんだけ続いても、最終的には7-6か6-7のはずだが…

650:仕様書無しさん
07/02/07 13:56:11
おぉ。こんな単純であるはずの問題にも
仕様の解釈誤りの問題が。

651:仕様書無しさん
07/02/07 14:23:32
C#2.0にて
List<ArrayList>

652:仕様書無しさん
07/02/07 19:21:21
引き継いだVCプログラムで、グリッドに列を追加して欲しいって
要望があったので修正しようとコード見たら列番号が
全部マジックナンバーで指定してある・・・
しかたなしに'4'とか'5'で検索してみたら
m_flg = 4;とかm_flg = 5;らしきコードがコメントも無く・・・

見なきゃ良かったorz


653:仕様書無しさん
07/02/09 12:54:29
>>650
たとえ問題が単純でも、ついでに頭まで単純だとこういうことになる。

654:仕様書無しさん
07/02/09 19:01:56
ここの連中、馬鹿ばっかりだもんな

655:仕様書無しさん
07/02/14 17:29:37
馬鹿なほうが生きていくのが楽だとか聞いた事がある。
>>654はどうなの?

656:仕様書無しさん
07/02/14 21:13:00
馬鹿ばっかりで困ってます

657:仕様書無しさん
07/02/23 14:29:55
左のパーツと右のパーツの動きが同じ仕様のある製品。
プロジェクトの途中から加わりソースを眺めていると
ほぼ同じような構成の、左右2つ分のファイルの組が沢山あった

658:仕様書無しさん
07/02/24 15:24:54
うちの会社のバカのコードをここに無造作に張ると、たいてい30は罵倒のレスが付く。
場合によっては荒れる。

659:仕様書無しさん
07/02/24 16:07:54
よし貼れ

660:仕様書無しさん
07/02/24 16:27:54
ワクワクテカテカ

661:仕様書無しさん
07/02/24 17:04:39
ごめん、いまちょっと俺にひらめきがない。

662:仕様書無しさん
07/02/24 17:35:03
(・∀・)カエレ!

663:仕様書無しさん
07/02/24 23:35:12
不発ワロスw

664:仕様書無しさん
07/02/25 04:37:34
>>22

665:仕様書無しさん
07/02/25 20:22:21
この流れで思い出したのは
学生 「あれあれ?怒らせていいんですか?使いますよ。イオナズン。」
面接官「いいですよ。使って下さい。イオナズンとやらを。それで満足したら帰って下さい。」
学生 「運がよかったな。今日はMPが足りないみたいだ。」
面接官「帰れよ。」

666:仕様書無しさん
07/02/26 15:43:02
これは嫌だ。
182 名前:仕様書無しさん[sage] 投稿日:2007/02/23(金) 17:08:35
何を考えたか、クラスごとに(VSの)プロジェクトを分割したプロジェクト。
クラスといっても全ては画面。互いに参照設定して開発をするらしい。

なんか、バカが頭を使うとろくなことにならんなとしみじみ思った。

667:仕様書無しさん
07/02/26 20:14:01
>>666
VBで開発してた頃は、跳び先ごとにactivex.exeにしたりしてたけど?

668:仕様書無しさん
07/02/26 20:52:30
オーメン!

669:仕様書無しさん
07/02/26 23:39:16
iCount As Long 'Integer


670:仕様書無しさん
07/02/27 00:28:01
>669
この程度見飽きたわ!! (TT)

671:仕様書無しさん
07/02/27 16:04:57
中身はIntegerの範囲しかはいらないけど、ループ変数だから処理速度の関係で
あえてLongにしてるんじゃないの?

672:仕様書無しさん
07/02/27 16:07:18
>>669
かっこいいスペルだな!

673:仕様書無しさん
07/02/27 16:07:18
lCount As Long 'Integer

って書けっつーこと?

674:仕様書無しさん
07/02/27 17:22:47
>>673
そういう話だとしたら、、、

  くっだらねえな。

675:仕様書無しさん
07/02/27 17:25:38
なんだ、「私はカウントする者」という自己主張なのかと思った。

676:仕様書無しさん
07/02/27 17:37:41
1."iCount As Long 'Integer"って書いた人は、ハンガリアン記法が間違ってる
2.>>669がVBの最適化を知らなかった
3.両方

3ってこと?

677:仕様書無しさん
07/02/27 17:38:56
>>675はワロス

678:仕様書無しさん
07/02/27 20:25:48
>>676
始めはこれ
iCount As Integer
  ↓
後で桁数が足りないことに気づいたが、
変数名を置換するのが面倒で型のみを変更した。
iCount As Long 'Integer

答えは4.手抜き

679:仕様書無しさん
07/02/27 21:05:07
君はこの地獄に生きる我々にその程度のネタを開陳してどうしたかったのだ?

680:仕様書無しさん
07/02/27 21:36:30
開チン?

681:仕様書無しさん
07/02/27 21:44:26
半刈り案なんか強要される莫迦な職場は辞めたくなるな。

682:仕様書無しさん
07/02/28 00:50:48
ラベルに限って日本語変数名はいがいと便利だと思うようになってきたり…

683:仕様書無しさん
07/02/28 02:21:10
ラベルにコメントをつけるんだ。

1度坂道を転がり落ちたら下まですぐだぞ!

684:仕様書無しさん
07/02/28 02:29:11
CP/M使ってたころならともかく
もう識別子に日本語使えるようになってもいいんぢゃね?

685:仕様書無しさん
07/02/28 02:35:17
書きにくい

686:仕様書無しさん
07/02/28 02:37:09
>678
ぶっちゃけその程度は
このスレ的には「ふーん。よくあるね。で?」ってなレベル

687:仕様書無しさん
07/02/28 07:26:48
>>684

最近のJavaでは、使えるらしいが、
幸い使った事も使われてるのをみた事も無いな。

688:仕様書無しさん
07/02/28 12:07:55
昔Lispで試したことがあるが
関数とグローバル変数が日本語だと物凄く読み易くなることが分かった
入力が面倒なのが難点(ローマ字で打っておいてまとめて置換w)

689:仕様書無しさん
07/02/28 20:44:15
俺のコメントが669のものだと勘違いしている奴多すぎw

690:仕様書無しさん
07/02/28 21:11:09
まぁ、君はそれほどつまらんオチをつけたということだよ。
誇っていい。

691:仕様書無しさん
07/02/28 22:55:42
>687
まさにそれが横溢しているプロジェクトにいた
で、日本語クラス名変数名メソッド名使ってないと思ったら、一転、謎識別子のオンパレード……
(GYMKYK0500132A.javaとか。汎用機のCOBOLバリバリなシステムをリプレースしたもんだからって……なぁ)
どうにか半年強で抜けてきた……

692:仕様書無しさん
07/03/01 12:00:15
ソースコードじゃないが、ダイアログで

  △更新が完了しました
      OK →キャンセル

一体何がキャンセルされるのかと…。
何も起こらないけど。

693:仕様書無しさん
07/03/01 12:12:10
ループってIntegerよりLong使ったほうが速くなるもんなの?

694:仕様書無しさん
07/03/01 19:38:46
32bit環境ならlongのが早い

695:仕様書無しさん
07/03/01 21:41:26
今、調べて知ったんだがVB6の整数型って16bit環境みたいな名前なんだな
今までもこれからも使うことない知識だろうが

696:仕様書無しさん
07/03/01 21:56:57
旧資産の超拡張でしかないからな

697:仕様書無しさん
07/03/01 23:30:41
>>684
VC++2005なら。

698:仕様書無しさん
07/03/02 14:41:19
VBって最適化とかないの?

699:仕様書無しさん
07/03/02 14:57:16
VBを選択しないことが最適化

700:仕様書無しさん
07/03/02 15:51:37
奇才現る

701:仕様書無しさん
07/03/02 16:15:55
>>698-699
VBの開発は、まずこういう奴らを黙らせることから始まる。


702:仕様書無しさん
07/03/02 16:38:00
やっぱ、拳と拳の語り合いですか

703:仕様書無しさん
07/03/02 22:13:58
おまえもマならコードで語るんだな。

704:仕様書無しさん
07/03/03 11:27:37
VB以外のコードで語ってもVB厨には読めません。

705:仕様書無しさん
07/03/03 20:44:07
逆に考えるんだ。VB厨はマじゃないんだ。そう考えるんだ。

706:仕様書無しさん
07/03/03 22:25:46
アクセス使えます!さらにVBでカスタマイズも出来るんですっ!!
ODBC経由のDBならなんでも操作できますぅっっっっv!!!1
データリンク貼るだけぇえええええええええええええええええええええ

707:仕様書無しさん
07/03/05 15:00:00
辞めようと思ったほどじゃないけど

for( i=0; i<5; i++ ){
 Switch(i) {
  case 0: str = "なんとか1"; break;
  case 1: str = "なんとか2"; break;
  case 2: str = "なんとか3"; break;
  case 3: str = "なんとか4"; break;
  case 4: str = "なんとか5"; break;
  default:break;
 }
}

こういうのをそこら中で見ると、イライラするw
ループにする必然性ないだろwww

708:仕様書無しさん
07/03/05 15:57:12
>>707
こんな風に書きたかった動機はなんだろう。これ。
さっぱり真意が読めない。

709:仕様書無しさん
07/03/05 16:36:48
>>707
これは変数strを上書きしてるぞw
ループ以前の問題だな。
真意はコードの水増しが考えられるけど。

710:仕様書無しさん
07/03/05 16:56:24
str(i)になっていてもちょっとひく。

711:仕様書無しさん
07/03/06 00:08:47
>>707
このコードってしょっちゅう俺が使うコードだよ。
ステップ数も少なくて済むし、なによりも解りやすいのが利点だと思うが。
ループにする必然性が無いとか言う奴笑える。
己の理解できないものを否定する奴こそしんの馬鹿なり。

712:仕様書無しさん
07/03/06 00:13:26
>>711
>>711
>>711

713:仕様書無しさん
07/03/06 00:16:53
>>711
>>711
>>711
>>711
>>711
>>711
>>711
>>711
>>711

714:仕様書無しさん
07/03/06 00:31:42
>>711は何を釣りたいのだろうw


715:仕様書無しさん
07/03/06 00:35:11
>>714
<<712-714

716:仕様書無しさん
07/03/06 00:36:15
>>711
sage忘れないでくださいね。

717:仕様書無しさん
07/03/06 00:43:07
>>715
「<<」は何ですか?

718:仕様書無しさん
07/03/06 00:45:32
>>717
左のShiftキーを5回押す

719:仕様書無しさん
07/03/06 00:48:03
Ctrl+Shift+Escだろ

720:仕様書無しさん
07/03/06 00:49:57
>>711
ループや分岐やマジックナンバーといった人間が理解しにくい
構造をわざわざ使わなくても、
std::cout
  << "なんとか1" << std::endl
  << "なんとか2" << std::endl
  << "なんとか3" << std::endl;
とか、
outputNantoka("なんとか1");
outputNantoka("なんとか2");
outputNantoka("なんとか3");
ストレートに書けばいいんじゃ・・・?

721:仕様書無しさん
07/03/06 00:51:00
>>717
左ビットシフト演算

722:仕様書無しさん
07/03/06 00:54:26
>>720
意味が変わってる

723:仕様書無しさん
07/03/06 00:55:33
>ループや分岐やマジックナンバーといった人間が理解しにくい
>構造をわざわざ使わなくても、

>>720
>>720
>>720
>>720
>>720
>>720


724:仕様書無しさん
07/03/06 01:09:14
ぶっちゃけマジックナンバーは人間にわかりやすい

725:仕様書無しさん
07/03/06 01:43:12
str = "なんとか5";

1行で書けた
俺ってすげえ


726:仕様書無しさん
07/03/06 04:04:44
奇才現る

727:仕様書無しさん
07/03/06 09:56:00
>>725
それに気づかない奴が沢山釣られたなw

728:仕様書無しさん
07/03/06 11:11:19
>>727
ha?

729:仕様書無しさん
07/03/06 12:38:21
と思ったら = がオーバーロードされてて例外投げるんだぜ

730:仕様書無しさん
07/03/06 15:50:14
同じところかもしれんが

for( i=0; i<200; i++ ){
 switch(i) {
  case 0: str[i] = "なんとか1"; break;
  case 1: str[i] = "なんとか2"; break;
  case 2: str[i] = "なんとか3"; break;
  (中略)
  case 199: str[i] = "なんとか200"; break;
  default: str[i] = "なんとかかんとか"; break;
 }
}

3個くらいdefaultに飛んでた・・・

731:仕様書無しさん
07/03/06 16:17:53
>>730
defaultに飛ぶ処理が3つもあるなら、意味はあるのかも。
でも、書き方は変えたほうが良い。

732:仕様書無しさん
07/03/06 16:19:59
なんで動的に代入するんだ
テーブルにしとけよ

733:仕様書無しさん
07/03/06 17:48:15
書き忘れが3つくらいあったって話?

734:仕様書無しさん
07/03/06 20:39:48
そんな馬鹿コードは問答無用で書き換えてしまえばスッキリ

735:仕様書無しさん
07/03/06 20:55:40
しかしなぜかバグ発生

736:仕様書無しさん
07/03/06 22:50:22
実は組み込み系なんじゃね?

737:仕様書無しさん
07/03/07 00:43:08
str = "なんとか1";
str = "なんとか2";
str = "なんとか3";
str = "なんとか4";
str = "なんとか5";

5行で書けた
俺ってすげえ

738:仕様書無しさん
07/03/07 00:47:49
str = "なんとか1", str = "なんとか2", str = "なんとか3", str = "なんとか4", str = "なんとか5";

1行で書けた
俺ってすげえ

739:仕様書無しさん
07/03/07 01:52:32
ここでカンマ演算子オーバーロードの登場です。

740:仕様書無しさん
07/03/07 03:10:50
次はプリプロセッサによる置換が来ると予想

741:仕様書無しさん
07/03/07 03:21:00
/*
str = "なんとか1";
str = "なんとか2";
str = "なんとか3";
str = "なんとか4";
str = "なんとか5";
*/
str = "なんとか5";

挑発してやった。俺Tueeeee!

742:仕様書無しさん
07/03/07 17:40:41
コメントアウトするなら理由と名前を入れろ!

といわれます...

743:仕様書無しさん
07/03/07 18:14:00
そしてソースコード上のケンカへと発展していくわけですね。

744:仕様書無しさん
07/03/07 18:31:07
>>743
客との喧嘩議事録をソースで作った同僚がイタw

745:仕様書無しさん
07/03/07 18:33:41
議事の流れに沿って制御文が書かれていたら嫌だ。

746:仕様書無しさん
07/03/07 19:10:50
>>745
流れてたんだよ。ビックリ

747:仕様書無しさん
07/03/08 00:29:54
while(1) {
customer.loudMouthed("なんで出来ないんだ!簡単だろ!");
programer.loudMouthed("じゃぁ自分でやってみろ!");
}


748:仕様書無しさん
07/03/08 00:50:46
>>747
それは顧客クラスとプログラマクラスの
メッセージパッシングの無限連鎖で書いたほうが面白いかと

749:仕様書無しさん
07/03/08 00:56:35
言い出しっぺの法則を適用

750:仕様書無しさん
07/03/08 01:00:46
すかしっぺで回避

751:仕様書無しさん
07/03/08 03:00:13
そうはいかんざき

752:仕様書無しさん
07/03/08 03:06:14
C++だと何が起きるかわからんからむやみに変更しないほうがいいという
教訓が。

753:仕様書無しさん
07/03/08 07:24:14
>>752
普通にプログラムが保守を無視してコーディングしてるのがほとんどだから変更できないだけ。
JAVAやC#と同じオブジェクト指向言語としてコーディングされているなら多少は保守可能かな。
どっちにしろ、ポインタ使われると保守性が無視されてしまう可能性があるからね。

754:仕様書無しさん
07/03/08 08:30:55
ポインタ使われると保守性が無視されてしまう

755:仕様書無しさん
07/03/08 09:28:12
ボインちゃんを使われると理性が無視されてしまう

756:仕様書無しさん
07/03/08 11:00:39
保守不能であるとは
運用終了までの(おそらく複数回の)保守実施コストが
再構築のコストを上回る場合であることを意味する

757:仕様書無しさん
07/03/08 11:04:49
>>755
自分で保守しるw

758:仕様書無しさん
07/03/08 16:46:02
>>756
1年で作ったシステムを4年も使えば、
再構築より保守の方が金が掛かるが?
「保守」が違うのか...?

759:仕様書無しさん
07/03/08 19:12:18
>>756
不能とはいわんだろう。

760:仕様書無しさん
07/03/08 19:28:46
if( s == 1 ) {
 if( ss > 3 ) {
  tt = 12;
 } else {
  tt = 12;
 }
} elseif( s == 2 ) {
 if( ss < 2 ){
  tt = 12;
 } else {
  tt = 12;
 }
} else{
 if( ss > 3 ){
  tt = 12;
 } else {
  tt = 12;
 }
}

十九万八千歩譲って、条件が後でいろいろ変更になったとしても、
せめて見直してリファクタリングぐらいしろとorz
(変数名はフェイクいれてあえて適当にしてます

761:仕様書無しさん
07/03/08 20:41:01
>>760
ワロタwww

762:仕様書無しさん
07/03/08 22:15:59
if( s == 1 ) {
if( ss > 3 ) { // ?
   tt = 12;
  } else {
   tt = 12;
  }
} elseif( s == 2 ) {
  if( ss < 2 ) { // ?
   tt = 12;
  } else {
   tt = 12;
  }
} else {
  if( ss > 3 ){
   tt = 12;
  } else {
   tt = 12; // ?
  }
}


763:仕様書無しさん
07/03/08 23:09:53
tt = 12;

だけで充分のような

764:仕様書無しさん
07/03/08 23:25:00
>>763
帰れ!帰れ帰れっ!!

765:仕様書無しさん
07/03/09 06:55:00
NOPのつもりなのでは?

766:仕様書無しさん
07/03/09 14:27:07
ステップ数かせぎ?

767:仕様書無しさん
07/03/09 18:21:23
>>766
waitみたいなものとか、前後のロジックを同時にプリフェッチやパイプラインに入れたくないとか、いろいろ

768:仕様書無しさん
07/03/09 18:35:34
>>760
これってコンパイラが最適化してくれるのかな?

769:仕様書無しさん
07/03/09 19:00:21
>>768
コンパイラ次第だろう。

770:仕様書無しさん
07/03/09 19:36:41
>>768
こんなのは最適化もワーニングも出さないでエラーにして欲しいな。

771:760
07/03/09 20:11:47
最初は、sとssの値に応じてttもそれぞれ違う値が代入されてたらしいです・・・・
度重なる修正や改造によって>760の状態になってしまったのなら、せめてコメント入れて欲しかったですよorz
敢えてこのままにしてあるのか単なる手抜きなのかわからーん!ヽ(`Д´)ノ 

772:仕様書無しさん
07/03/10 00:09:09
中国製のソース全般。
さすがコピー大国、ソースもコピペだらけだぜ!


……orz

773:仕様書無しさん
07/03/10 08:34:24
>>772
コピペは日本でも当たり前にあるから気にならならない。
コメントがw

774:仕様書無しさん
07/03/11 01:11:26
中華と言えば変数名で、stlLighteHandleh,stlLefteHandlehって何のことかと思ったよ。
要所要所で微妙に間違えやがってw

775:仕様書無しさん
07/03/11 01:39:06
h→rに関しては余裕で補完できるレベル。

776:仕様書無しさん
07/03/11 04:19:24
コメントならそういうのの宝庫だよね、中国製。
セマファだのセマフォアだのセマフォンだのw

777:仕様書無しさん
07/03/11 08:20:31
日本語でも、handol とかやる香具師いるしな。w

778:仕様書無しさん
07/03/11 11:55:13
つ[uwarite]

779:仕様書無しさん
07/03/11 13:20:08
出たw

780:仕様書無しさん
07/03/11 13:27:02
中国人がpinyinで変数つけてたときは直させたよ。
よめねぇし意味もわからん過ぎる。

と思ったら、今度はローマ字の母音抜きされた
例)一覧->Itiran->Itrn
そっちもそっちでわからんかった。


781:仕様書無しさん
07/03/11 13:42:22
>>780
>ローマ字の母音抜きされた
日本語のローマ字表記の母音抜きをかましてくるウチの職場より大分マシ。

782:仕様書無しさん
07/03/11 13:54:58
wktk

783:仕様書無しさん
07/03/11 16:12:44
  ∧_∧  +
 (0゜・∀・)   ワクワクテカテカ
 (0゜∪ ∪ +
 と__)__) +

つーかVIP語(?)使うな。

784:仕様書無しさん
07/03/11 20:44:17
○racleの30字制限のためそんなのはザラ。
あの制限さっさと外せやとはいつも思ってる。

785:仕様書無しさん
07/03/11 20:48:02
あと、無理に英単語使って意味が間違ってるヤツとか。
例えば、最新○○番号->New○○No(既に存在するもののうち最新のモノを指す)

そこはNewじゃなくてLastでしょって、言ってもへらへら笑って誤魔化しやがる。


786:仕様書無しさん
07/03/12 00:42:51
>>785
ちなみにそれだとどういう意味になるんだ?
誤解が生まれるレベルじゃない場合は目くじら立てる必要無いと思うが。

787:仕様書無しさん
07/03/12 00:49:44
>>786
生理なんだよきっとww

つうか、>>785と一緒に仕事したくないなw

788:仕様書無しさん
07/03/12 00:51:57
NoはNo.が正しい。じゃなきゃNumとかが妥当。

789:仕様書無しさん
07/03/12 00:53:12
Newで始まってるとなにかのファクトリ(オブジェクト生成関数)
かと思ってしまうな。ところが実は既存のものから最新のを返す
んだと言われると当惑する。


790:仕様書無しさん
07/03/12 00:54:14
普通の英語では785の意味の最新はlatestだろう。
lastでも通じると思うがnewでは明らかに通じない。

791:仕様書無しさん
07/03/12 01:01:36
だな
New の新しさはこれまで無かった新しさ

792:仕様書無しさん
07/03/12 01:04:16
Newestならまだ分かるけど、ふつーそれより先にlatestが出てくるな。


793:仕様書無しさん
07/03/12 01:33:09
// QAC対処
// exit -1;

って、それじゃ、終了できねえよ。QACがすべてじゃねぇ。

794:仕様書無しさん
07/03/12 07:31:29
○ クラスを全部 Globalってマクロ作って定義してる。
○ キー入力ができたりできなかったりする。
○ 基本的にスパゲティ。どこにとんでいるかで動作が決まってる。

まぁマイコンだけどさぁ・・・。
ひどす。

795:仕様書無しさん
07/03/12 17:42:59
>>794
無理矢理高級言語を使う意味あるのか?
普通は言語を使い分けてリンクするよな。


>キー入力ができたりできなかったりする。

昔、俺の後ろでそれやって修羅場ってるの見たことあるな。
Javaでそれをやるのは、普通なら難しいのに。w

796:仕様書無しさん
07/03/14 23:37:45
// 値が10以上の場合
if (val > 10) {

797:仕様書無しさん
07/03/14 23:40:05
あるあ…ねーよw

798:仕様書無しさん
07/03/14 23:42:35
クライアントアプリにJava使って何のメリットがある?
Javaは通信は強いけどクライアントアプリとして使うにはあまりにも・・・

799:仕様書無しさん
07/03/14 23:42:36
>>796
中2かよw

800:仕様書無しさん
07/03/14 23:44:02


//------------------↓ここから僕のちとちぃ~~~~~~~~~

801:仕様書無しさん
07/03/14 23:44:53

//----------------あーずるいぞのびた!
// なら俺はここから俺の土地ぃーーーーーーーーーーーーーーーーーーーーーーー

802:仕様書無しさん
07/03/15 00:48:20
>798
J2EEサーバと通信しやすく、セキュリティポリシーをスカスカにすればローカルマシンも弄り放題。
ってことで、MVCのVはほとんど素のHTML、Mは90%J2EEサーバのEJBに置いて
CをアプレットとJavaScriptの眩暈がするほど華麗な連携でこなすシステムに携わったことがある。
(ちなみにアプレットは基本的にUI持ってない)

ソースも大概だったがこの構造だけで1週間で辞めたくなったorz

# まぁ、各地の事務所が9600BPSのモデムで繋がってて、HTMLファイルの転送すら
# 勿体ないって事情はあったらしいが。
# (だから、VとなるHTMLは各クライアントマシンのローカルに置きっぱ)

803:仕様書無しさん
07/03/15 00:54:52
>>802
金の掛け方が根本的に間違ってるな。w
そんな特殊ななアーキテクチャにする金でVPN引いたほうがいいのにな。

804:仕様書無しさん
07/03/15 07:55:26
>>802
Vに素のHTMLは悪いと思えなかったり。
ダイナミックしてないんだから、ビューを果たしてるんでないかい?

805:仕様書無しさん
07/03/15 18:55:31
日付がNVARCHAR2(8)ってどうなのよ。

806:仕様書無しさん
07/03/15 19:28:27
>>805
4+2+2に切り分けるわけ?
・・・遺体

807:仕様書無しさん
07/03/15 20:15:43
>>805
そんなのしょっちゅうさ…

808:仕様書無しさん
07/03/15 21:32:59
>>805
俺のいるところも日付の扱いがかなり適当だよ。
DATE、CHAR(6)、VARCHAR2(8)が混在してる

809:仕様書無しさん
07/03/15 23:04:58
>>808
うちはvarchar2(6) だな。
2100年以降のことなんか考えてない。

810:仕様書無しさん
07/03/15 23:21:36
さらにnumber(8,0)

811:仕様書無しさん
07/03/15 23:50:10
ウチはUnixエポックを文字列で…

812:仕様書無しさん
07/03/15 23:52:50
>804
や、VがHTMLってのははまぁいいとして、Cの泥沼加減がもうすばらしくデンジャラスでさ('A`)
あんな複雑怪奇なアプレットはもう二度とお目に掛かりたくないorz

813:仕様書無しさん
07/03/15 23:57:12
>805
以前ある奴がそういう設計を持ってきてレビューしろっつーから何考えとんじゃ、と言ってやったら
「どうせ表示するときは文字列化するじゃないの。比較演算だって問題ないしー」
だとさ。

814:仕様書無しさん
07/03/16 01:51:49
>809
自分が死んだ後のことなんか知るかよ

815:仕様書無しさん
07/03/16 01:54:02
そういう奴がいるから…

816:仕様書無しさん
07/03/16 02:02:38
2000年問題みたいなことが起きる?
どうせ10年も使わないから大丈夫

817:仕様書無しさん
07/03/16 03:51:48
そういう奴がいるから…

818:仕様書無しさん
07/03/16 07:52:06
データは永続的に使われると思わないといけない
アプリはOS変わることに破棄するけど

819:仕様書無しさん
07/03/16 11:45:20
>>818
データにもよるんじゃない?
例えばTV録画機器の録画予約の日時データについて話してる時に
「データは永続的に使われると思わないといけない」と盲信的に主張されると、
まわりの人は当惑するだろう。

820:仕様書無しさん
07/03/16 15:18:55
>805
漏れの場合、少なくともDATEは使わないな。とりあえず8桁とっておく。

型の採用ポリシーの一貫性と根拠が明確なら別に何でもいいけど。

821:仕様書無しさん
07/03/16 20:53:22
>>820
なんでDATE使わないの?

822:仕様書無しさん
07/03/16 21:00:26
DATTEやってらんないじゃん

823:仕様書無しさん
07/03/16 21:09:00
誰が上手いこと言えと

824:仕様書無しさん
07/03/16 23:03:36
>>821
業務アプリとかだと、時刻のデータがいらないケースも結構あるので
時刻まで入るDATE使って変なバグを出したくないという理由なのかな。

それでもDATEの方がいいとは思うけど。演算とか楽だし。

825:仕様書無しさん
07/03/16 23:05:55
変なバグを出したくない(笑)

826:仕様書無しさん
07/03/16 23:38:40
派遣のプログラマー使ってる立場としてはその気持ちはよくわかるw

827:仕様書無しさん
07/03/16 23:41:26
むしろ使わない方が....

828:仕様書無しさん
07/03/17 00:04:23
DATEの読み方は伊達じゃないっ!!

829:仕様書無しさん
07/03/17 01:06:56

         ナ ゝ   ナ ゝ /    十_"    ー;=‐         |! |!
          cト    cト /^、_ノ  | 、.__ つ  (.__    ̄ ̄ ̄ ̄   ・ ・
ミミ:::;,!      u       `゙"~´   ヾ彡::l/VvVw、 ,yvヾNヽ  ゞヾ  ,. ,. ,. 、、ヾゝヽr=ヾ
ミ::::;/   ゙̄`ー-.、     u  ;,,;   j   ヾk'! ' l / 'レ ^ヽヘ\   ,r゙ゞ゙-"、ノ / l! !ヽ 、、 |
ミ/    J   ゙`ー、   " ;, ;;; ,;; ゙  u ヾi    ,,./ , ,、ヾヾ   | '-- 、..,,ヽ  j  ! | Nヾ|
'"       _,,.. -─ゝ.、   ;, " ;;   _,,..._ゞイ__//〃 i.! ilヾゞヽ  | 、  .r. ヾ-、;;ノ,.:-一'"i
  j    /   ,.- 、  ヾヽ、 ;; ;; _,-<  //_,,\' "' !| :l ゙i !_,,ヽ.l `ー─--  エィ' (. 7 /
      :    ' ・丿   ̄≠Ξイ´,-、 ヽ /イ´ r. `ー-'メ ,.-´、  i     u  ヾ``ー' イ
       \_    _,,......::   ´゙i、 `¨ / i ヽ.__,,... '  u ゙l´.i・j.冫,イ゙l  / ``-、..- ノ :u l
   u      ̄ ̄  彡"   、ヾ ̄``ミ::.l  u   j  i、`ー' .i / /、._    `'y   /
              u      `ヽ  ゙:l   ,.::- 、,, ,. ノ ゙ u ! /_   ̄ ー/ u /
           _,,..,,_    ,.ィ、  /   |  /__   ``- 、_    l l  ``ーt、_ /  /
  ゙   u  ,./´ "  ``- 、_J r'´  u 丿 .l,... `ー一''/   ノ  ト 、,,_____ ゙/ /
        ./__        ー7    /、 l   '゙ ヽ/  ,. '"  \`ー--- ",.::く、
       /;;;''"  ̄ ̄ ──/  ゙  ,::'  \ヾニ==='"/ `- 、   ゙ー┬ '´ / \..,,__
、      .i:⌒`─-、_,....    l   /     `ー┬一'      ヽ    :l  /  , ' `ソヽ
ヾヽ     l      `  `ヽ、 l  ./  ヽ      l         )  ,; /   ,'    '^i

830:仕様書無しさん
07/03/17 01:10:04
パンチでDATE

831:仕様書無しさん
07/03/17 01:25:35
哀愁DATE

832:仕様書無しさん
07/03/17 02:39:42
3.5インチFDDのシャッターを「持つ所」と、のたまった御仁が居たな。

833:仕様書無しさん
07/03/17 02:42:12
お願いです先輩、コメントアウトは行単位でしてください。
1つのステートメントの中で数文字コメントアウトとか
訳わかんない事しないでくださいorz

変数を全部ドキュメントに書かなければならないからって、
1つの変数を全然違う用途で使いまわすの止めてくださいorz

834:仕様書無しさん
07/03/17 06:41:14
NVARCHAR2(8)とDATEってどっちが節約できるの?

835:仕様書無しさん
07/03/17 09:37:50
>>834
OracleだとDATE型だな。7バイトだし。

836:仕様書無しさん
07/03/17 10:21:55
そんなことは普通、考えません

837:仕様書無しさん
07/03/17 13:51:28
データベースの良し悪しって結局は容量だろ?

838:仕様書無しさん
07/03/17 15:09:49
排他を全く考えてないマルチスレッドは勘弁してくれ。

もう総合テストに入って、原因不明(実は、競合が原因)の不具合が多発。
いまさら大きな修正はやりずらいし。

何も考えずに作るのは楽だろうが、保守させられる身にもなってくれって感じ。
たぶん、このプロジェクトは失敗確定だろうな。



839:仕様書無しさん
07/03/17 15:38:45
>>837
あと使いやすさ
たとえばYYYYMMDDを入れる場合、
文字列だと入れる前と入れた後に日付の整合性チェックをしないといけない
(8桁で閏年の計算もして日付として正しいフォーマットになっているか)
DATEであれば入れるときは例外をキャッチすればいいし、出すときはbetweenで必要な期間だけ取得すればいい

840:仕様書無しさん
07/03/17 16:31:40
>>838
>排他を全く考えてないマルチスレッドは勘弁してくれ。
それマルチスレッドて言わないw
さすがにDBの話じゃないよね。

841:仕様書無しさん
07/03/17 16:47:04
838 じゃないけど、きちんと排他処理できていない
マルチタスクなアプリはあるな。

アプリの性質上、データの編集はロングタイム トランザクションになることが
多くて、現在の編集状態を表すテーブルがあるんだけど、そのテーブルの
編集にトランザクション管理などの適切な処理をしていないから、
たまに、一つのデータを二箇所で同時に編集していたりする。
それで、いざ登録となったときに訳のわからんエラーになってる。

842:仕様書無しさん
07/03/17 16:50:52
共有ロックと占有ロック覚えておかないとDBプログラミングで痛い目にあう。

843:仕様書無しさん
07/03/17 17:05:15
データベースはロックだぜぃ!!

844:仕様書無しさん
07/03/17 17:25:57
冗談じゃなく、ロック知らないPGが多いから困るな

845:仕様書無しさん
07/03/17 17:35:11
ああ、そのためにも情報処理の資格試験はもうちょっと重視してもいいと思うんだ

846:仕様書無しさん
07/03/17 17:51:34
>>845
基本情報処理の範囲はプログラマーとして最低限必要な知識に過ぎないけど、
その程度知らない人がプログラミングするのはさすがにやばすぎる

847:仕様書無しさん
07/03/17 20:13:48
うちの職場は基本情報処理以上受かってるのは2割弱。

848:仕様書無しさん
07/03/17 20:21:11
みんな日曜日がもったいないのだとポジティブシンキン

849:仕様書無しさん
07/03/17 20:45:07
うちの職場は数%・・・
しかも資格の無い奴が偉そうにふんぞり返ってるよ。
この状況知ってたら入らなかったんだけどね。
さっさと上級資格揃えて辞めるかな。

850:仕様書無しさん
07/03/17 21:33:18
基本情報はアホでも受かるだろ…

851:仕様書無しさん
07/03/17 22:06:10
アホだから仕事片付かないし受験しに行く暇が作れない

852:仕様書無しさん
07/03/17 22:33:57
アホでも受かるから一応取っとくのか、それとも受験するまでもないのか
どっちだ?

853:仕様書無しさん
07/03/17 22:35:07
資格が役に立つと思ってるザコは3年くらい我慢して
自分の経歴にむやみに汚点残さないようにしましょう。

854:仕様書無しさん
07/03/17 22:38:53
>>851
その言い訳は今まで嫌というほど聞いてきた
実際には受験するつもりがない人ばかり

855:仕様書無しさん
07/03/17 23:06:27
受験しに行く暇がないとか言ってるやつ絶対いるよな
どうせ休日は遊んでるんだろ


856:仕様書無しさん
07/03/17 23:27:59
誰か俺を呼んだか?

857:仕様書無しさん
07/03/17 23:45:42
呼んでないから帰れ

858:仕様書無しさん
07/03/17 23:48:09
>>856-857
ワロタ

859:仕様書無しさん
07/03/17 23:51:41
基本情報を持ってるからと言って使い物になるわけでも無いが
最低限の知識の証明にはなるな。
基本情報も取れない奴は使い物にならん。


860:仕様書無しさん
07/03/18 00:34:56
足の裏についたご飯粒

861:仕様書無しさん
07/03/18 00:45:23
ときめきメモリアルONLINE 94時間目 [大規模MMO]

862:仕様書無しさん
07/03/18 03:19:03
>>859
確かに「取れない」ヤツは100%使いものにならんな。
「取らない」ヤツはたまに使えるけど。

863:仕様書無しさん
07/03/18 12:57:07
基本情報を履歴書に書いてくるのは使い物にならんな…

864:仕様書無しさん
07/03/18 13:11:16
履歴書に資格なしの方がもっと使えない確率が高いと思うが

865:仕様書無しさん
07/03/18 13:43:09
基本情報は持ってて当然だから資格無しは有り得ないだろ。
最初の足切りラインとしては使えるぞ>>863

866:仕様書無しさん
07/03/18 14:57:23
運転免許証と同じくらいかね

867:仕様書無しさん
07/03/18 15:04:50
毎年2万人受かってるから

868:仕様書無しさん
07/03/18 15:14:07
ベテランが「資格とりにいきます!納期遅らせてください!!」なんて言ったら顰蹙買うだろ?
だからこっそり行ってるんだよ
落ちてもバレないし

869:仕様書無しさん
07/03/18 15:29:11
IT関連企業なら情報処理資格取得者は普通もっといるべきなんだよな。
あまりにもレベルの低い技術者が多すぎる

870:仕様書無しさん
07/03/18 15:32:53
資格とっても評価されない会社多くね?

871:仕様書無しさん
07/03/18 15:33:46
資格は初心者をスタート地点まで連れて行ってくれるもの
すでにスタートした奴らに取らせても意味ない

872:仕様書無しさん
07/03/18 15:37:36
業務経験が長るなるほど、有保有者との知識の差が広がっていくのが現実

873:仕様書無しさん
07/03/18 15:56:04
うちの会社では資格なしで落とすことはないが、資格ありだから
拾い上げるということもないな。


874:仕様書無しさん
07/03/18 16:18:11
>>871
それは資格試験に落ちた奴の言い訳。
本当にスタート地点に立ってるのか怪しい口だけの奴が9割。
適当に誤魔化してるくせに態度だけはでかい若者が多いのは嘆かわしい限り。

875:仕様書無しさん
07/03/18 16:39:40
おまいら資格スレでも立てて存分に語り合え。


俺なんか俺なんか
10年前のソースをメンテしてるんだが(当時の担当はすでに退職済
実行環境を変えたらアプリケーションエラーで落ちまくるようになったと言われたので、
調査してたら、ファイルIO関数のほぼ全部が

char cFile[40]; /* ファイル名 */


そりゃあ、D:\Program files\(長いフォルダ名)\(さらに長いフォルダ名) にインストールしなおせば
落ちるよな、そうだよな'`,、('∀`) '`,、 '` ,、 '` ,、  '`

876:仕様書無しさん
07/03/18 16:47:44
>>875
マジックナンバー使いまくってそうだ・・・
一度整理した方がいいんじゃない?

877:仕様書無しさん
07/03/18 16:58:58
そんなもん整理始めたら収拾が付かないぞ。
コメントもどこまで信用できるか判らん代物を整理するくらいなら
リプレースしたほうが早いw

878:仕様書無しさん
07/03/18 17:08:48
協力会社の新人が Ethenet ケーブルといって分からなくて、LAN ケーブルと言っても
分からなかったときには、基本情報取るまで出てくんなとは思ったけどな
4年前の話

879:仕様書無しさん
07/03/18 17:36:59
>>878
そういう問題でも無さそうだがw

880:仕様書無しさん
07/03/18 17:49:56
わんつーすりーふぉーかてごりぃ~ふぁいぶっ!!

881:仕様書無しさん
07/03/18 20:55:19
古い
(・∀・)カエレ!

882:仕様書無しさん
07/03/19 01:10:02
>>875
ファイル名が長すぎるといってエラーになるのはいいけど、
「落ちる」ってのは、cFile[40] の 40 が問題なのではないんじゃ?

883:仕様書無しさん
07/03/19 02:39:45
つまり存在チェックをしていないんだろう

884:仕様書無しさん
07/03/19 02:58:22
ところで、40というのはどこから出てきた数字なんだ?
ライブラリ辺りから出てきた数字だったらかなり嫌だな。

885:仕様書無しさん
07/03/19 04:00:51
long long i*=i; // 流れ星ぴゅー(^。^

886:仕様書無しさん
07/03/19 10:46:49
基礎情報受けに行く時間がもったいないならいきなりソフ開なり上級なり受ければいいじゃない

887:仕様書無しさん
07/03/19 18:11:18
32あれば充分で、それに8も余分を足しとけば
たりなくなるわけがない。

ぐらいの考えだったんじゃね。

888:仕様書無しさん
07/03/19 19:08:42
FILENAME_MAX や MAX_PATH 辺りをつかっておけばいいのにね.
この二つがどう違うのか知らんけど(ぉ

889:仕様書無しさん
07/03/19 20:02:59
>875
元がDOS版だったりとかしない?(;・∀・)

890:仕様書無しさん
07/03/19 20:17:50
>>839
素朴な疑問だが、
「入れる前」でチェックしているのなら、
「入れた後」でチェックする意味あるの?
想定外の経路(直接Accessとかでレコード作成とか)が無い限りは
普通Input側で整合性取れば後は無視しない?

いや、マジで素朴な疑問なんだよ。
俺なら想定外の経路を許可する事をしないモノで。。。

891:仕様書無しさん
07/03/19 20:20:19
想定外の経路を許可してなくてもどっかのバカが入れるんだよ
仕様書にきちっと書いてあっても間違った試験データ投入してうだうだと言ってくる

892:仕様書無しさん
07/03/19 20:21:50
>>890
updateのときとか?
# 入れるときに入るかなぁ?

入力側と出力側を別人が作っている場合は、
まあ表示前にチェックってのはアリと言えばアリ。


893:仕様書無しさん
07/03/19 21:46:41
>>890
19000000はNULLのことです、とか言われたらどうする?

894:仕様書無しさん
07/03/19 21:51:56
>>890
そういう考えが「サニタイズすればいい」ってところに通じるんじゃないのか?
想定外のデータが嫌なら、DBに制約つけるなりなんなりしてくれ。
そうすれば、構造が変わらない限りは平気になる。


895:仕様書無しさん
07/03/19 22:43:03
Dim 消しフラグ
Dim 消し消しフラグ

(中略)

'------------------------------------
' 小細工
'------------------------------------
End Sub

896:仕様書無しさん
07/03/19 23:20:18
勝手にCSVつくってインポートしたがる奴はどこの世界にもいるもんだよ

897:仕様書無しさん
07/03/20 00:50:49
それはダメなのか?

898:仕様書無しさん
07/03/20 16:32:48
>>897
勝手に作ったCSVデータを勝手にインポートした挙句データの整合性が取れなくなり、
ソフトに不具合が発生したらデータ作成した本人(もしくは指示した人間)が
「データベースが壊れた!バグだ!!修正しる!!!」
と騒いで無料サポートをさせるってパターンが『よく』あるから
>>896のグチになるわけだ。

その対策が>>890みたいな意見になるわけだけど、そうすると今度は
「データを入れたいのに受け付けない!バグだ!!修正しる!!!」となって
最初に戻る。


899:898
07/03/20 16:37:15
スマソ、上の890は894の間違い

900:仕様書無しさん
07/03/20 17:30:20
「勝手に作ったCSV」なんて恐ろしいものの入力許すなよ。
入力チェック側も「カンマ区切りのテキスト」しか想定してない場合が多いんだから…orz
もちろん何のエスケープもなしで。

901:仕様書無しさん
07/03/20 18:52:20
>>900
importの話だよ

902:仕様書無しさん
07/03/20 19:42:09
>>898
そんな馬鹿の相手はしないに限る。

903:890
07/03/20 19:45:01
なんか、色々有るんね。
みんなの苦労が良くわかったよ。
おれは幸せなんだね。
ごめんね>みんな

904:仕様書無しさん
07/03/21 04:48:34
その時出来る対処はその時やっておいた方があとで
記憶を取り戻してからやるより結果的に時間の節約になるから
やったほうがいいね。

やる時間がないなら、せめて警告コメントくらいは入れておくもんだよ。

905:仕様書無しさん
07/03/21 08:04:20
catch(Exception e) {
// Exceptionをcatchしたらthrowする
throw e;
}

906:仕様書無しさん
07/03/21 08:30:54
逆に入力チェック完璧って前提だから、出力の際にチェックしなくていいっていうのは
どういう仕事なのか気になる。

907:仕様書無しさん
07/03/21 09:46:47
余裕の無いプロジェクトだとありがち。

908:仕様書無しさん
07/03/21 09:47:56
え?
出力時にチェックいるの?

909:仕様書無しさん
07/03/21 10:22:20
常識的に考えて入力チェックしたものを出力時再度チェックする必要ないぞ?

910:仕様書無しさん
07/03/21 10:30:24
どういうシステムなのかにもよるが
それは認識が甘いと言わざるを得ない

911:仕様書無しさん
07/03/21 10:36:38
入力時に正しいデータだったのに、出力するときに不正なデータになってたら、ただのバグだと思うが。。。

912:仕様書無しさん
07/03/21 10:40:10
>>911
つまり、ただのバグを検知できる、という指摘もありだな。



913:仕様書無しさん
07/03/21 10:41:25
>>911みたいな人ってswitchのcaseが仕様上の選択肢すべてを
網羅しているときにはdefaultを書かないんだろうな。


914:仕様書無しさん
07/03/21 10:50:49
いや、バグの検出と、入力のチェックを区別つけないで議論してるヤツとかダメだろ。。。

915:仕様書無しさん
07/03/21 10:52:45
defaultに到達したらバグだろう普通にw
その場合バグ解析コードだろdefaultは

916:仕様書無しさん
07/03/21 10:55:26
2chでよくいる、「バグがあっても動いてしまうコード」をいい書き方だって固く信じてるやつって、
バグ検出と入力時のチェックを概念的に混同してるんだと思われ。

917:仕様書無しさん
07/03/21 11:29:22
バグの検出と入力のチェックの区別がつけられない奴って
アサーションも碌に使えないんだろうなきっと。


918:仕様書無しさん
07/03/21 11:49:42
データなんて保存中に壊れることもよくある

919:仕様書無しさん
07/03/21 11:50:13
「assert で停止するのはデバッグ時のみ」であることを曲解すると
「リリース時はそのまま動き続けるのが正しい」となる。

…気持ちは解らんでもない。

920:仕様書無しさん
07/03/21 12:01:39
この前、VB4からVB6に移植する仕事をやったけど、全サブルーチンにエラーハンドラがつけてあって、
多くは、Beepを鳴らして、ログにエラー番号みたいのを書き出して、そのまま処理を続行になってた。

現場じゃ、画面が明らかにおかしくなってるようなバグ以外は、そのまま操作を続行しちゃうんだろうなぁ。

921:仕様書無しさん
07/03/21 13:35:25
入力時のチェックは厳重・厳密に行い、出力時のチェックはゼロ。。。。

マスタ登録部はチェックが多重だが、読み出し部は「マスターが正」だから
チェックも糞もない。データとマスタとのチェックは厳密だろうけど。

これくらいしか思いつかない。

922:仕様書無しさん
07/03/21 15:20:06
日付・時間が
char(6)Char(8)
とか勘弁してください。
比較が面倒です


923:仕様書無しさん
07/03/21 15:44:52
西暦・和暦変換するクラスの名前が
WestanYearとなってる。笑い殺すつもりかよ


924:仕様書無しさん
07/03/21 16:02:11
Seireki2Warekiだろ

925:仕様書無しさん
07/03/21 16:05:02
CalenderConversがいいんでないか?

926:仕様書無しさん
07/03/21 16:10:46
28時とか入っててびびった(char(4)で2800)
というか仕様書に書いてもないのにそれが正常とか言わんでくれ・・・

927:仕様書無しさん
07/03/21 16:14:53
>924
あるあるww

928:仕様書無しさん
07/03/21 16:26:38
>>926
テーブルの制約で不可にするのが当たり前だろう

929:仕様書無しさん
07/03/21 16:31:20
>>28時とか入っててびびった(char(4)で2800)
char(4)だと99時99分でオーバーフローになります、
もっと桁をとりましょう

930:仕様書無しさん
07/03/21 16:46:01
>>922
正確には「時間」ではなくて「時刻」ではないかと。
多くの言語やDBで混同されているみたいだが。

>>929
四徹程度でオーバーフローしてしまうとは情けない・・・か。

931:仕様書無しさん
07/03/21 16:52:56
>>930
VC(MFC)、C#, Oracleは区別あるな。
ほかのでもあるんじゃね?

932:仕様書無しさん
07/03/21 16:54:32
>>905
それはよくやる。というか、結果的にそうなることが多い。
#if DEBUG で括ったMessageBoxをいれてるだけのとことか。

似たようなことをやろうとして、↓のようにするやつもいるが…。
catch(Exception e) {
// Exceptionをcatchしたらthrowする
new throw Exception();
}

933:仕様書無しさん
07/03/21 17:14:29
C++だとthrow; だけでcatchした例外を投げたよね。


934:仕様書無しさん
07/03/21 17:47:53
エラーをきちんとハンドリングできれてばどこのスタックでキャッチ行っても構わないが
mainからシステムへ落とすのだけは勘弁してくれw

935:仕様書無しさん
07/03/21 18:28:13
設計書なしでいきなりソースコードだけ渡されて
「直してね」と言われたときは殺意を覚えたな。

936:仕様書無しさん
07/03/21 18:31:33
古いC++プログラムでよくある話

937:仕様書無しさん
07/03/21 18:32:33
設計書なしでいきなりmdbだけ渡されて
「VBに移植してね」と言われたときは殺意を覚えたな。

938:仕様書無しさん
07/03/21 18:37:20
既存物理設計→既存論理設計→新規論理設計→新規物理設計
を行えって言ってるんだよw

939:仕様書無しさん
07/03/21 20:54:58
>>916
On Error Resume Next に関する恐ろしい話の一つくらいは聞いたことがあろう

940:仕様書無しさん
07/03/21 21:01:51
バグがあったぐらいで毎回止まってたら仕事にならない

941:仕様書無しさん
07/03/21 21:39:58
餌が美味しくない。

942:仕様書無しさん
07/03/21 23:23:14
例外はトップレベルで拾えって規定されたプロジェクトも有ったな。
単にメッセージボックスでエラー文字列表示してるだけだったがw

943:仕様書無しさん
07/03/22 00:04:29
>>942
隠蔽するよりずっとマシだ。

944:仕様書無しさん
07/03/22 00:12:01
On Error Goto ErrorHandling





ErrorHandling:
 MsgBox "エラーが発生しました。以下に連絡してください" & vbCrLf & _
     "090-xxxx-xxxx"



945:仕様書無しさん
07/03/22 00:16:24
連絡場所が書いてあるだけ良心的だろ

946:仕様書無しさん
07/03/22 00:39:27
入出力チェックが完璧かどうかどうやって調べるのか。


947:仕様書無しさん
07/03/22 10:27:57
>>945
>>944の連絡先番号が正当であるかチェックしないと請求詐欺にあうぞ。

948:仕様書無しさん
07/03/22 13:29:29
>>942
レベルがまちまちな作業者が多数作業する場合には苦肉の策としてそうするな

949:仕様書無しさん
07/03/23 00:13:47
バイナリエディタで電話番号を書き換えるやつがいそうだ


950:仕様書無しさん
07/03/23 07:44:01
納品時に、嫌いな上司の携帯番号を設定ファイルに記述するんだろ?
あれ、違ったっけ?

951:仕様書無しさん
07/03/24 23:07:32
20MHzで動くRISCマイコンで

数ミリひたすらNopする時間稼ぎループを発見したとき・・・。

952:仕様書無しさん
07/03/24 23:29:24
RISCのNOPってコンパイラがこっそり入れたりするんだよな。


953:仕様書無しさん
07/03/24 23:48:06
>>951
組み込みではよくある事じゃない?
チップの初期化待ちとか

954:仕様書無しさん
07/03/26 05:20:14
空ループは最適化すると消えるからタイマーを使うのが常道では?

955:仕様書無しさん
07/03/26 05:35:31
つvolatileの活用

volatile int i;
while(i<N) i++;

C言語の話だが

956:仕様書無しさん
07/03/26 06:46:27
で、処理が間に合わないと御託が。

957:仕様書無しさん
07/03/26 10:28:07
組み込みじゃリリースで最適化ナシは当たり前なんだが。

958:仕様書無しさん
07/03/26 22:07:09
タイマーなんか最初は動いてないし


959:仕様書無しさん
07/03/26 22:18:42
印刷したソースにやきそばソースぶっかけられたこと

960:仕様書無しさん
07/03/26 22:52:51
スパゲッティならぬソバコード

961:仕様書無しさん
07/03/26 23:55:55
ASP.NETやってて

<HTML>
<HEAD>

<THML>

</HEAD>
<BODY>

</THML>

</BODY>
</HTML>


当然解析エラーになるわけだが
見た瞬間目の前が真っ暗になった。

なんでこんなものが長々と放置されてたんだorz

962:仕様書無しさん
07/03/27 00:28:22
どこからどうみても何をしたいのか分からない

963:仕様書無しさん
07/03/27 01:17:10
クソのようなHTMLとCGIの塊にAjax云々の泥沼をアレな俺ならばなんとなく理解できる。
明日は客に見せるらしいが、ようやくパースエラー出なくなったことを喜んでもらおう。

964:仕様書無しさん
07/03/27 07:56:08
>>963
Ajaxとかかっこつけてるけど、実際はJavaScript埋め込んだだけだろう。
Ajaxと名前変えただけで流行らせようとする拙さに泣けてくるw

965:仕様書無しさん
07/03/27 11:03:35
>>964
Ajax云々と言っておけば余計な工数と金がとれるんだよ。
そんくらいわかれボケ。

966:仕様書無しさん
07/03/27 13:13:35
アジャエックスですという営業がいたらおもしろそーなのに
さすがにとぅくぴっぷはいてもコレはいねーのかなぁ

967:仕様書無しさん
07/03/27 13:20:06
最初アヤックスと読んでしまったサッカーファンの営業ならいたなぁ。


968:仕様書無しさん
07/03/27 13:25:47
エイジャックスくらいなら居そうだ。

969:仕様書無しさん
07/03/27 13:28:29
>>968

970:仕様書無しさん
07/03/27 15:09:55
>>968

971:仕様書無しさん
07/03/27 15:10:53
アニジャックス……
          ∧_∧
    ∧_∧  (´<_`  )  ねーよw
   ( ´_ゝ`) /   ⌒i   
   /   \     | |  
  /    / ̄ ̄ ̄ ̄/ |  
__(__ニつ/  ブルマ / .| .|____
    \/____/ (u ⊃

972:仕様書無しさん
07/03/27 15:36:04
アッージャックス

973:仕様書無しさん
07/03/27 15:40:48
アジャクロス
Web2.0の必殺技か何かです

974:仕様書無しさん
07/03/27 21:59:56
AjaxもWeb2.0も俺たちに金を落としてくれる
素晴らしい言葉です。


975:仕様書無しさん
07/03/27 22:02:52
>>973
アジャコングの必殺技にしか見えない。

976:仕様書無しさん
07/03/27 22:18:30
あじぇいあっくす

977:仕様書無しさん
07/03/28 02:27:47
>>968



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch