この会社辞めようと思ったソースコード#C

このエントリーをはてなブックマークに追加
1960 ◆tPlLfpspY.
この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。
プログラマを悩ませるソースコード。
Modula-2 ライクなソースコード。(゚д゚)ウマー
をつらつらと綴っていって頂戴。

ちなみにここは質問スレじゃないよ。
技術的な質問がしたいならム板に逝って。
2960 ◆tPlLfpspY. :03/11/03 02:37
3仕様書無しさん:03/11/03 05:12
まな板娘[まないた・むすめ]

マ板における幾多の妄想の産物キャラのうちの一人。
前スレ >>932- を参照。
転機となる一言は前スレ >>945 参照。
キャラ的には萌える要素満載だが、未だに絵はない。


というわけで画像キボンヌ
4仕様書無しさん:03/11/03 07:16
       /⌒/ ̄ ̄ ヽ
    /⌒         ⌒\   挙 死 様 投 唯 た 腹 海
   /   ( ( ノ ノノ    ヽ 公 ぬ だ げ 一 だ を 江
  〈  /         \   ) 報 べ ゚ 込 神 死 切 田
  | |           | /  等 き 理 む 又 ん っ 万
   \|           | /  で だ 由 者 吉 で て 里
    | /━━━┛┗━━━ヽ|    熟 か は 達 イ 終 死 ・
   ((  \●≫|≪●/ ))   知 ら 他 だ エ わ ぬ 与
    ヽ    /|\    /    す だ 人 ゚ ス る べ 謝
     ヽ /  |  \ /    べ  ゚ を 彼 が も き 野
     ヽ  / | \  /     し 詳 殺 ら 地 の だ 馨
      ヽ/  〈 〉  \/       ゚ し す の 獄 で  ゚  ・
      (ー――――一)        い な 支 の は ま 佐
       \  ̄ ̄  /        理 ら 持 火 な た 藤
        ヽ___/          由 自 者 の い 、 文
   ___/|\  /|\___    は 分 も 中 ゚  彼 則
  :::::::::::::::|:::::| \/ |:::::|::::::::::::::::: ゜  選 が 同 に    ら ら
  :::::::::::::::::|::::::|/▼\|::::::|::::::::::::::::::             は は
5仕様書無しさん:03/11/03 23:35
……これがまな板娘か……
6仕様書無しさん:03/11/03 23:41
萌へ〜 ゴロゴロゴロゴロ....
7仕様書無しさん:03/11/04 11:06
momusu = x;
x = y;
y = momusu;
8仕様書無しさん:03/11/05 13:02
googleだと結構ヒットするな。まな板娘。
しかも素人小説ばっかり。
9仕様書無しさん:03/11/05 13:38
int n;
n = n++;
printf("%d\n", n);
10仕様書無しさん:03/11/05 23:06
>>9
nが不定値だからいやなの?
それともn=n++の表記?
11仕様書無しさん:03/11/07 01:45
VCにて
INT main(INT iArgc, LPTSTR tsArgv[]){
12仕様書無しさん:03/11/08 00:32
Cなんですが int と char を使ったことがないんだけど
業務ではこれが常識?

数字はTYPEDEFされた文字型に関数を使って代入。
printfではもちろん表示できず。。。
特殊なprintfをつかって表示。
なぜかカンマ付きで出てくる。

計算も+とか−じゃなく特殊な関数に食わす。
グローバル変数だらけだし。

みんな疑問を持たずにやっているのが怖い。
まわりから一番出来る人とよばれる人が int, char を知らない。
市販本はなく会社作成のテキストのみ。
13仕様書無しさん:03/11/08 00:36
>>12
>数字はTYPEDEFされた文字型に関数を使って代入。

意味不明だが、数字と数値を間違えている事は判った。
14仕様書無しさん:03/11/08 00:43
>12

んなこたーない、と言っておこう。
見た感じ、COBOL臭さが鼻をつくほどに臭ってくるな……
15仕様書無しさん:03/11/08 00:51
while(1){
i++;
if (i>256) break;
}
16仕様書無しさん:03/11/08 00:52
>>12
「常識?」って聞くこと自体が救い様がない感じがする。
とりあえず、cの言語仕様を、推薦書籍スレに書いてある本を買って理解しろ。
includeファイルを全部読め。「特殊な関数」を全部読め。
もしかして加減算も「TYPEDEFされた文字型」同士で行うのか?
だとしたらそれはCOBOLのエミュレート環境だ。
恐ろしいことをやる奴(エミュレート環境作成者)がいるもんだ。
今のままでは転職しても絶対にcは使えないぞ。
17仕様書無しさん:03/11/08 01:03
COBOLって文字列で加減算するんだ。つ∩ヘェーヘェー
18仕様書無しさん:03/11/08 01:12
>17

マジレスするが、COBOLは数値の一桁に1バイト取る型があったりする。
そうなるとほとんど文字列と変わらん罠。若干コードの下駄があるだけで。
まぁ、それだけ贅沢な数値表現を持っているからこそ、未だに勘定系で
愛用(うげ)されていたりするわけだが。
19仕様書無しさん:03/11/08 01:55
みんな優しいな。

最初からCOBOL使えばいいじゃん。
20仕様書無しさん:03/11/08 08:31
てーか、オープン系COBOLがそれなりに使えるようになってきたから、
もはやCでエミュレートする意味・意義はゼロに近いな。
21仕様書無しさん:03/11/08 14:20
>16
CでEBCDEC?
それは嫌過ぎ。
22仕様書無しさん:03/11/08 19:03
>>21
EBCDICのことか?
23仕様書無しさん:03/11/08 19:55
蛭子でっす
24仕様書無しさん:03/11/08 22:53
>>12
君の開発環境は犯罪的だ。
君の同僚はみんな、「俺はcで開発している」と思っているんだろう。
会社が「cにラッピングを施した環境で開発してもらいます」と言っているなら問題ないが、
「cで開発してもらいます」といっているなら犯罪だ。
確信犯なので、出来たら社名をさらして欲しい。
25仕様書無しさん:03/11/08 23:53
確信犯の誤使用
26仕様書無しさん:03/11/09 00:10
>>25
COBOLer にとっては確信犯だろう
27仕様書無しさん:03/11/09 00:38
だから、確信犯ってのは、こんな問題には使わない言葉なんだよ、本来は。
少しは辞書ひけ。
28仕様書無しさん:03/11/09 00:52
>>27

> かくしん-はん 3 【確信犯】
> 道徳的・宗教的・政治的な信念に基づき、自らの行為を正しいと信じてなされる犯罪。思想犯・政治犯・国事犯など。
> 三省堂提供「大辞林 第二版」より

合ってるじゃないか
この COBOLer は完璧に思想犯だろ

29仕様書無しさん:03/11/09 09:34
>>28
>しそうはん【思想犯】
>(1)確信犯の一。思想上の主義主張の相違による犯罪。
>(2)もと治安維持法に触れる犯罪の通称。また,その犯罪者。
>(新辞林 三省堂)

いつからCOBOLerは犯罪にされましたか?
または(今は無いけど)治安維持法に触れるほどの犯罪者になりましたか?
30仕様書無しさん:03/11/09 10:18
>>29
COBOL最強っていう思想から犯罪的な糞ソフトを大量生産してるってことじゃね?
31仕様書無しさん:03/11/09 11:01
うちも、COBOLからCへ
スムースな移行を支援するためのCライブラリを使わされている。

初めてCをやる新人もこのライブラリのせいでかなり戸惑っている。
Cの参考書を見ても載っていないとぼやき。
32仕様書無しさん:03/11/09 11:06



'**************************
'* 小細工
'**************************

Exit Function


VBにて
33仕様書無しさん:03/11/09 11:20
会社独自のC使ってまーす。
for と switch がオリジナルとかなり違う。
34仕様書無しさん:03/11/09 11:24
>29
COBOLerなだけなら犯罪じゃないけど
この環境を作ったのは犯罪っぽい気がする、
少なくともある程度の人数騙してるような。
3524:03/11/09 12:21
そうだね。
COBOLって単語に異様に敏感になっていて、レスに否定的な表現があると
「叩かれた」って思いこんでしまう人がいるようだけど。
36仕様書無しさん:03/11/09 12:33
一番の問題は、COBOLerを叩く奴が多いからなんだよな。

なんどもいたずら電話がくれば、すべての電話がいたずらだと思ってしまう。
ノイローゼの原因(=COBOLer叩き)が消えればいいのに。
37仕様書無しさん:03/11/09 12:40
それは無理だろう

なんたって、COBOLer達から被った被害が尋常ではないから
38仕様書無しさん:03/11/09 12:41
>>29
> いつからCOBOLerは犯罪にされましたか?
> または(今は無いけど)治安維持法に触れるほどの犯罪者になりましたか?

一応突っ込んでおくか
>>28 では特定の COBOLer を思想犯だと言っただけで
全ての COBOLer を犯罪だと言った訳ではない
39仕様書無しさん:03/11/10 00:56
いままでCOBOLer叩きが理解できなかったけど、>>12みたいなこと
連発されたら怨みたくなるな。
40仕様書無しさん:03/11/10 01:32
COBOLerさんは「郷に入れば郷に従え」という言葉を知らない。あるいはCOBOLerにとって
郷とはCOBOLしか存在しない。
4121:03/11/10 08:27
>>22
そうだっけ。スマソ。
42仕様書無しさん:03/11/10 23:03
うちはコボラーが幅をきかせています。
コボルラッピングクラスの使用を強要させられるのは酷です。
んなもん作るな!
43仕様書無しさん:03/11/10 23:06
きっとCOBOLにはCOBOLのよさがあるんだよ。思いつかんけど。
44仕様書無しさん:03/11/10 23:33
1. いい加減在籍年数が長く首を切りにくいCOBOLerを置いておける
2. COBOLでできたシステムがたんまりあって、別言語で作り直す余裕がない
3. (一番もっともらしい建前)他の言語でこれだけの勘定系計算ができるか?

1.は時流から見てありえないと思う香具師は何かを見誤っている。
3.はいくらでも突っ込めると思うがこのレスに突っ込まないでね(*´Д`)イヤソ
45仕様書無しさん:03/11/10 23:46
プログラマー生命なんてたかだか10数年
プログラマーを引退してから定年退職するまで
どう生きていくか?
お前らも今から考えておいた方がいいぞ
46仕様書無しさん:03/11/11 00:26
たったの45レスでCOBOLと26個書かれているこのスレは、COBOL啓蒙スレですか?
47仕様書無しさん:03/11/11 02:10
COBOL数万本のPGを半自動的にJavaにおきかえるPJに入れられそうなんだけど、
そんなの成功するの?
48仕様書無しさん:03/11/11 02:16
>>47
いっそ、COBOLのソースをJavaのバイトコードに変換する
コンパイラ作るってのはどうだろうか?
俺は使いたくないけど。
49仕様書無しさん:03/11/11 09:42
>48
作ったら売れるかなぁ・・・
50仕様書無しさん:03/11/11 09:56
>>49
売れるとは思うが、大変だぞ。
そもそものデータに対するアプローチの思想がちがうんだから。
51仕様書無しさん:03/11/11 10:05
それは前人未踏なプロジェクトですね。

(未踏に応募したら即時採用ケテーイ
52仕様書無しさん:03/11/11 10:19
>12-
Binary Ccded Decimal とちゃう?
だとしたら、それなりに意義あり。
53仕様書無しさん:03/11/11 10:22
>48
COBOLのソースをJavaに限らず他言語のソースに変換する
ソフトならいくつかあるらしいが。
そもそも、そういうのを使うことを考えない時点でオhルな、と。

自分もCOBOLはやったことあるんで、言語そのものが悪とは
思わないが、いわゆるCOBOLerとされる人種がフレームワークを
何も考えずに他の言語に当てはめてしまう柔軟性のなさは
指弾されるべき点か。そういう香具師がしばしば年功序列で
管理に回っていたりするからなぁ。

54仕様書無しさん:03/11/11 10:23
>>48
で、きみのようなネイティブJava使いは、そのコンパイラが吐いたコードの
保守・バグ獲りに追われるわけだ、バンジャーイ。
55仕様書無しさん:03/11/11 10:46
>>45
正直言って、文明の停滞、戦争、自然災害などがあった場合、
またそうでない場合にしろこの業界に限らず、世の中全部10年以上先は分からんだろう。
そんな中修行に10年かかる職業より、
10年後にはほぼ確実に無くなってるであろう事が分かってる職業ってのは悪くないわな。
56仕様書無しさん:03/11/11 13:51
COBOL.NETを使わせてC#とか。
57仕様書無しさん:03/11/12 10:51
>>47
成功しない。
あんたもそう思ったからレスしたんだろ。
ここでの賛否は、成功の可否に影響するわけじゃないぞ。迷ったような判断はするな。
この種のことは、成功する/成功しない/判断不能の三つに一つだ。

正気ならそんなプロダクトを企画しようなんて考えられん。
58仕様書無しさん:03/11/12 12:22
>>57
内容の無いレスだね。

ところでなぜ君は、判断不能ではなく、成功しないと言いきれるんだい?
59仕様書無しさん:03/11/12 12:30
ありがちだが、
C系のソースで、main()に、全て全部書いてあった。

60仕様書無しさん:03/11/12 12:42
>>59
>全て全部書いてあった。

日本語としておかしいぞ。
6157:03/11/12 14:12
>>58
成功するか否かを問われたので回答しただけだ。いちゃもんつけるな
>ところでなぜ君は、判断不能ではなく成功しないと言いきれるんだい?
質問が「可能か否か」であったら、回答は「判断不能」だ。
質問が「保守可能なJavaソースにおきかえることが可能か否か」ならば回答は「不可能」だ。
この違いが理解出来るだろうか
たとえ可能であったとしても得られるjavaソースコードは保守不能だろうとの判断は出来る。
保守不能なソースが得られたとしてもそれが何になる。保守無しで稼動するシステムは寿命が極端に短いぞ。
結局、元のCOBOLを動かす環境を作成するか(買うか)、Javaで再開発するかのどちらかになるに決まっている。
だから「成功しない」んだ。
62:03/11/12 14:15
>>61
もう一声。

なぜ、「保守可能なJavaソースにおきかえること」は「不可能」なのか?
6357:03/11/12 14:34
>>62
残念ながら、俺には、そんなことを論理的に説明する能力はない。出来る奴がいるとも思えないが。
COBOLの言語仕様はあまりに特殊なんだ。Javaの代わりにc、c++なんかでも同様だ。
COBOLをcに自動変換してそのcのコードが今でも現役っていうシステムなんか無いはずだ。
もしあるなら、俺の無知を藁ってくれ。
COBOLとJavaの双方の言語仕様を知っているやつなら納得してくれると思うが。
64仕様書無しさん:03/11/12 14:39
問題はなんで自動変換「された」側のコードを保守しようと
するのか、ってことだと思うがなぁ。
その都度自動変換していけば良さそうなものだが。
なんか不都合があるのか?
65:03/11/12 14:46
>>64
それではJavaと協調した事にならないので、
その場合だと、実行環境がJavaになる事しか利点が生み出せない。

もしJavaプログラマが保守出来るという利点を作るなら変換後のソースも読める必要があるし、
COBOLとJavaの架け橋になるというなら、Java側に救済が必要だ。

というか、どーせJavaのコードをいじらされる羽目になると思うよ。こういう場合は。
残念ながら、俺には、顧客の気まぐれを論理的に説明する能力は無い。w
6657:03/11/12 14:50
>>64
最初は「虚を突かれたか」と思った。
だが不都合は確実に存在する。
保守に当たって試験工数が2倍かかる。
「COBOLでちゃんと試験しましたからまとめて変換してJavaで動かします」
って言われて肯く客はいるのかなあ?プラットフォームも違うのに?
67:03/11/12 14:56
>>63
こんなんあったよ。
http://www.arksystems.co.jp/closeupit/java/0201.htm

ソースコードの側に仕様の揺れがあるってのは、「困難」と言う理由にはなるかもね。
具体的に「不可能」と言うためには、
人間の手でも、COBOLのこのソースはJavaには変換不可能、という物があれば、
断言出来そうな気がするぞ。

「予算的に」とか「うちの会社では」とか、そういう「不可能」ならいくらでもあるな。
言語には必ず実装理由が付随するから「言語の変換」という考え方自体がもう不可能なのかも。
68:03/11/12 14:57
>>66
「COBOL単体でも動かなければいけない」という制約が無いなら、
Javaだけで試験すればいいんでないの?
69仕様書無しさん:03/11/12 15:53
発想を転換してJavaVM上で動く、コヴォVMを作ればいいんだよ!

70仕様書無しさん:03/11/12 15:54
なんかやり取りが意味不明だな。

半自動って言っても、結局手間としては全手動と変わらないレベルの
ものしか出来ないから、そういう意味じゃ成功はしないってことでしょ。
7164:03/11/12 16:16
なるほどね。
俺のとこのクライアントさんも、かつて Fortran → C の
トランスレートをやって、メンテでひどい目にあってた。
で、俺はなんで元のソースに手を入れないで、可読性の低い
C 側をいじっちまったのか、理解に苦しんだもんだった。

>65 実行環境がJavaであることはエンドのプラットフォームを
制限できない場合には意味があるかも、とは思うが。

>57 テスト結果とソースコードが一対一に対応していれば文句は
ないだろうと思うぞ。客はテスト結果と納品されたブツしか見ない
だろうからな。>68のいうがごとくだ。
ただ、自動変換の実績が十分であることが条件になるだろう。
ネックはそこだな。
72仕様書無しさん:03/11/12 16:39
>>64
>>問題はなんで自動変換「された」側のコードを保守しようと
>>するのか、ってことだと思うがなぁ。
変換するということは、(しばらくは平行稼働するかもしれないが、将来的には)
現行のCOBOLで構築されたシステムを捨てて、Javaで再構築したシステムに乗換える
ということ。
変換後のJavaコードを保守するのはあたりまえ。

73仕様書無しさん:03/11/12 16:46
まあ、こういう場合に自動変換が有効なのって、共通関数的な部分のみじゃないの?
単純な計算ロジックとか。w

業務ロジックが関わる場合、解析して、再設計して作成したほうが、遥かに安く付くと。
74:03/11/12 16:55
厳密に言えば>>70の言う通り、議題の定義を見直すべきなんだけど、
実務上の結論は>>73の言う通りだろうね。

ソースを解析すると出来る報告書は、仕様書に近い物になると思うんだけど、
そう考えると仕様書ってのは重要なもんだねえ。
ちょっとくらい嘘が書いてある仕様書の方がソースより価値が高くなる瞬間だ。
75仕様書無しさん:03/11/12 17:02
>>74
概要、基本設計は重要。これは逆にソース見ても出てこない可能性は大。

インターフェース設計書も欲しいけど、この辺りは仕様変更が多い可能性大なので、
方法とか初期方針だけ見て、ソースを追うのが正解かと。w

詳細設計書になると、ソースみたほうが早い。

76:03/11/12 17:14
>>75
「再設計」をするのに、どこまでの仕様を把握するかが問題だよね。
詳細部分まですべて把握してから再設計出来れば良いのだけど、現実的にどうなのかな。

概要部分だけでも再設計できれば、部分的にJavaに置き換えていく事は可能かもね。
その過程をイテレーションにすれば、読み違いの被害を最小限に出来るかも。
77仕様書無しさん:03/11/12 17:23
>>76
実務でやる場合、工数があるならば、全解析後に無駄を排除して再設計。

工数が無い場合は概要を把握できたら、ソースレベルで転記するように再設計。
だから、近視的になって全体に歪感が出て、結局破綻するのが落ち。
78仕様書無しさん:03/11/12 17:37
結局、COBOL→Javaなんぞ、よほど余裕がなけりゃやらないほうがいいって結論?
79仕様書無しさん:03/11/12 17:43
>>78
そんな余裕があるなら、再開発しろ
が結論
80:03/11/12 18:23
でも、リプレースの案件が多いなら、何らかの手抜きは出来ないかと思うのが人情よね。
不治痛とかが仕様書工房のCOBOL版を出したりしてないのかなー。
81仕様書無しさん:03/11/12 18:39
コーディングルールを守らない開発者に手を焼いています。
より良いルールでも採用しているのかと思えばそうでもなかった。
理解しがたいメソッド名ばかり目についたので一つ取り上げて命名規則を尋ねると
フランス語で雪と言う意味です。と。
なぜ雪かとさらに問うと
データを蓄積し古いデータから順に圧縮する処理だからと。
ルールの存在の意味を説明しても
モチベーションが下がるとの返答。
サンのjavaのコーディングルールに沿ってと決めたのだが。
82仕様書無しさん:03/11/12 18:53
>>81
実際のソースコードをキボンするであります!
83仕様書無しさん:03/11/12 20:15
>>81
ものっっっっっっっっそく!そのコード見たい
84仕様書無しさん:03/11/12 21:05
その人はプログラマではなく、俗に言うポエマーですな。
85仕様書無しさん:03/11/12 21:13
だからさ、コボルのコンパイラがJavaのバイトコード吐けばいいんでしょ?
86仕様書無しさん:03/11/12 22:21
CBL2J hoge.CBL

して、

JAVA hoge

…きしょい。
87仕様書無しさん:03/11/12 22:51
//C2J   EXEC PGM=CBL2J
//SYSUT1 DD DSN=HOGE.HOGELIB(HOGE),DISP=SHR
//SYSUT2 DD DSN=HOGE.CLASSLIB,DISP=OLD
/*
//RUN  EXEC PGM=JAVA
//CLASSPATH DD DSN=RT.JAR,DISP=SHR
//CLASS  DD DSN=HOGE.CLASSLIB(HOGE),DISP=SHR
/*

・・・・・・素敵
88仕様書無しさん:03/11/12 23:05
>>87 お願いだからJCLなんか書かないで。ここはマスターベーションするところじゃあないんだよ
89仕様書無しさん:03/11/12 23:13
>>87
antにしてくれ。
90仕様書無しさん:03/11/12 23:18
rt.jarは区分データセットとして扱われるんだろうか?
91仕様書無しさん:03/11/12 23:31
>85
というわけで富士通のCOBOL.NETをどうぞ。
俺は逃げるけど。
92仕様書無しさん:03/11/13 00:28
>>88
COBOLとJCLって切っても切れない関係?

知人のCOBOLERにJCLも知らないのか?と言われたけど
なんかこのスレ見ていて分かったような気がしないでもないような。

JCLは常識。という前提のもと話を始められたんだけど
内容が良く分からないので「JCLって何?」と聞いたとたん
「お前、JCL書いたことないの?」と仰天された。

COBOLERって固定概念や既成概念に縛られまくりで
反論したら肉体的にも心理的にも消耗した。

JCLって昔、情報処理の勉強で見たような・・・
93仕様書無しさん:03/11/13 00:58
>>92
×固定概念
○固定観念
94仕様書無しさん:03/11/13 01:07
俺、自動ソースコード生成ツール仕事で書いたけどさ、
「自動生成されたコードはバイナリだと思って、絶対に手を入れないでください」
って運用方針にしたけど。
管理対象は生成されたコードじゃなくて、生成ツールだろ?
変換ツールのバージョンが上がったら再ビルド、テストで終了じゃん。

あと、調べてみたらJavaVM上で動くCOBOLの実装は既にあるよ。
COBOLのコードをバイトコードにしてくれるみたいだけど。
英文だったし興味なかったんで細かいところまでは読んでないけどね。
ttp://www.legacyj.com/lgcyj_perc1.html
9592:03/11/13 01:09
>>93
thanks.
指摘されなかったら一生、固定「概念」でいくつもりだったよ。
俺にとってはとても重要なレスだったよ。
96仕様書無しさん:03/11/13 01:43
>>92
メインフレームでCOBOLソースをコンパイルするのに必要だ<JCL
つか、JCLわかんないとメインフレームで何も出来ないw
逆に言うとメインフレーム以外には全縁のないベンダ依存バッチ処理記述言語(?)
きっとそのCOBOLerは
COBOL=メインフレーム=JCL知らないと何も出来ないって意見だったんだろうな。
97仕様書無しさん:03/11/13 03:12
>>94
>「お前、JCL書いたことないの?」と仰天
これ、COBOLer が微妙に損している部分。言い方は違ったのかもしれないけど。
どうかすると上から下に見下ろしたような言い方に見える。

まー漏れはCOBOLerと会話するたび、一度はこんな気持ちにさせられる。
「COBOLerは外の世界を知らないで一生を過ごすつもりだからなんでもいえるな」と。
98仕様書無しさん:03/11/15 10:20
今Javaのプロジェクトに参加してるんだけど
2000行越えるソースが数十本
モノによっては4000行・・・

エーン
99仕様書無しさん:03/11/15 12:41
ちょっと待て、1クラス2000行はありだぞ。
java.lang.Stringだって2300行だ。
1メソッド2000行だったらさっさと辞めるが。
100仕様書無しさん:03/11/15 13:42
j2seのAPIと一緒にするのはどうだろう。
101仕様書無しさん:03/11/15 15:24
普通にコーディングして、Javadocもちゃんと書けば1クラス2000行ぐらいあるわな
102仕様書無しさん:03/11/15 16:08
一本のヘッダファイルが2000行
103仕様書無しさん:03/11/15 18:46

/* ファイルを読み込む */
int PER_RTN_CD = READ_ZIK_FIRU_PROK( );

if( PER_RTN_CD == -1 )
{
   /* エラーメッセージの出力 */
   D_ERR_CD_EQ_27_PROK();
   return PER_RTN_CD;
}
・・・

変数・関数名は全て大文字で無くてはならない
PROCって書きたいのにPROKにしないと怒られる
FILEって書きたいのに(ry
104仕様書無しさん:03/11/15 19:06
>>103
OK。周囲にバレないように内緒の秘密でフィルタを作れ。
int perRtnCd = readZikFiruProk();

int PER_RTN_CD = READ_ZIK_FIRU_PROK();
に変換するフィルタを早く!早く!早く!早く!早く!早く!早く!早く!大脳新皮質が退化して腐り落ちきる前に!!!
105仕様書無しさん:03/11/15 19:09
       /⌒/ ̄ ̄ ヽ
    /⌒         ⌒\   挙 死 様 投 唯 た 腹 海
   /   ( ( ノ ノノ    ヽ 公 ぬ だ げ 一 だ を 江
  〈  /         \   ) 報 べ ゚ 込 神 死 切 田
  | |           | /  等 き 理 む 又 ん っ 万
   \|           | /  で だ 由 者 吉 で て 里
106仕様書無しさん:03/11/15 21:15
>>102
winuser.h の事け?
107仕様書無しさん:03/11/16 00:44
この間見たよその部署のC++のソース。
関数宣言ではなく定義がかかれたヘッダファイル。
.cファイルを指定したinclude。
変数の初期値を0と見なしてかかれた初期化処理。
ダブルフリーを全然気にしない終了処理。
そして、goto分の嵐。

なにより最悪なのは、それをメンテしているのがCを知らないVBプログラマだってことだ。
108仕様書無しさん:03/11/16 04:08
>>107
> 関数宣言ではなく定義がかかれたヘッダファイル。
テンプレートではないのか?
違うんだろうけど
109仕様書無しさん:03/11/16 10:17
>>103 procがprocedureの略だって知らないんだろうな。
じゃなきゃプロックってローマ字読みしてPROKって書けなんて恥ずかしくて言えないもんね。
110仕様書無しさん:03/11/16 10:29
>>104 そのツールを作るのはそんなに簡単ではないぞ。
111仕様書無しさん:03/11/16 14:35
1関数20000行
112仕様書無しさん:03/11/16 15:49
>>110 どのへんが難しいんだよ
113仕様書無しさん:03/11/16 16:17
>112
内製関数とそれ以外を区別するのが難しいな。
余計な接頭語を付けるはめになる。
114仕様書無しさん:03/11/16 21:15
ライブラリのソース渡したら、製品のコードに .c がインクルードされてた。
理由を聞いたら「(ソース内の)enumシンボルが使いたかった」だそうな。

ライブラリ使ってリンクしてるから多重定義のエラーが出ない・・・。
さて、どこから説明していいものやら。
115111:03/11/16 23:17
嘘だと思ってスルーしてるだろ・・・?
116仕様書無しさん:03/11/16 23:28
>115
そのくらい飽きるほど見てるからスルーされてるんだって。
117111:03/11/16 23:45
なるほど!
やっぱ足洗お。
118仕様書無しさん:03/11/17 00:36
>>115-117
にまん行か。いちまん行までは見たことはあるんだが。にまん行ね。
#当然、正しいインデントなんて出来ないよね。
119仕様書無しさん:03/11/17 01:25
さすがに1関数2万はないけど、
コメントアウト、#if 0 〜 #elsif が混在し、
挙句の果てには"#if COMMENT"なんていうコメントアウトがあった日にゃー
メンテするのもたまらんよ。

# しかもバージョン管理ツール使ってないし・・・
120仕様書無しさん:03/11/17 23:46
ビジネスnews+
サブウィンドウ開くウェブページは特許侵害
http://book.2ch.net/test/read.cgi/bizplus/1069074200/

皆さん、特許侵害してませんか?
121仕様書無しさん:03/11/17 23:50
自作自演がバレタ瞬間。
http://human.2ch.net/test/read.cgi/4649/1066741054/387-388

10分の時間を空けましたが名前を一緒にしてしまい
自演がばれましたwそのあとの必死ぶりが凄いですw
122仕様書無しさん:03/11/19 10:20
コボラーが作ったVBプログラム
全部グローバル変数だし、関数は全て引数なしで
グローバル変数直さわり。

こんなん解析できましぇん
123仕様書無しさん:03/11/19 10:36
>122
COBOLってそういう言語だからな……
(大雑把に言うとグローバル変数しかない)
がんがれ
124仕様書無しさん:03/11/19 10:55
>>122
漏れも、そんな感じのソースをメンテして納めたよ...

関数宣言が、Private Sub TEST_Kekka_RTN()って感じなんだよね。
んで、漏れの書いた、Private Function SetOperation(ByVal blnOperate As Boolean)
なんてのがまざってて、キモチの悪いコードになったよ。(--;

しかし、そのコボラーが「Functionなんて使った事が無い」って言うのには驚いたよ。
まぁさぁ、御互いプロだから書き方論をするつもりは無いけど、
それで「VBが使える」と言えるのかと、小一時間...
125仕様書無しさん:03/11/19 11:30
>>124 問い詰める必要なぞない。
そのコボラは、
コボル以降のモジュラープログラミングをサポートする言語を使用するためには
「コボルでは使用できない方法論」を習得しなければならない
ということを理解していないんだ。それだけだ。
126仕様書無しさん:03/11/19 14:37
>>125
仰る通り。
問い詰めるべきは、そのCobolerを連れてきた派遣営業だな。(w
結局、納期を過ぎてもマトモに動かなかったので、VBやった事の無い漏れが火消しで投入されますた。


さて、本題に戻します。

そのCobolerのコードでは、取得した値は全て文字列型で処理されてました。
まぁ、そこまでは許そう。(へへへ

頼むから、符号付き固定小数点値を、文字列型+符号を表わすBoolean型
(両方ともグローバル変数)にするのは止めてくれ。(苦笑)

文字列として「-1.234」とかじゃ、イカンのだろうか? (--;
127仕様書無しさん:03/11/19 15:25
>126

>頼むから、符号付き固定小数点値を、文字列型+符号を表わすBoolean型
>(両方ともグローバル変数)にするのは止めてくれ。(苦笑)

 いくらなんでも符号付き小数を一つの型で扱えないほど、COBOLはアホ言語では
なかったと思うが……
 よってそのCOBOLER氏は真性DQNに決定。イ`
128仕様書無しさん:03/11/19 16:27
>>127
精進しまつ。(へへへ

ありがとん。
129仕様書無しさん:03/11/19 22:12
つか、今の時代に「動けばいい」的な風潮がまだ残っているのが
こぼらー延命の負の思想なんだよな〜

まぁ、客にすれば「動けばいい」なんだろうけど、
メンテする側からすれば迷惑きわまりないっす!
130仕様書無しさん:03/11/20 00:51
VBでActiveXを作ってCOM+で動かすような物を作らせれば
グローバル変数がいけないということを
分かってくれるに違いないなどと思ってみる。
131仕様書無しさん:03/11/20 01:29
グローバル変数が使えないなんて、ActiveXやCOM+はいけませんね、と言いかねない罠。
132仕様書無しさん:03/11/20 11:36
>122
今やってる仕事が、それと同じ状態ですよ。
integerにBoolean型を代入するわ、関数の型を定義して
ないから全部Variantになってるわで見るのが苦痛です。
けどトランザクションやSQLってなんですか?って
聞かれた時や、MDBのサイズが800MBになっているのを
聞いた時、この会社を早く契約終了したくなったよ…
133仕様書無しさん:03/11/20 11:55
>>132
MDBの800Mって件数満タン状態で存在してるの?
それとも、最適化をしてなくてがばがば?
134仕様書無しさん:03/11/20 12:59
>>131
Singleton使えよ
135仕様書無しさん:03/11/20 13:21
>133
説明がたりませんでしたね、えっと最適化してない状態です。
正規化してないバカテーブルを毎日更新してれば、そうなる
んでしょうねぇ…
ちなみに自動バックアップ&自動最適化ロジックは
存在していません。・゚・(ノД`)・゚・。

一番問題なのは、ダメならSQL鯖とかオラクルにすりゃいいだろ?
なんて考えている社長かもしれん。
136仕様書無しさん:03/11/20 13:55
>>135
とりあえず、Accessで最適化かけとけば。w
さすがにそのサイズはやったことないけど。

MDBアプリ作るときって、アプリ起動時にDB開く前に最適化が鉄則。
MDBって使用領域の開放って概念ないのが・・・。
あと、昔のバージョンだと、検索は工夫もなしにOnMemoryだよな。
件数が多いと・・・。
137仕様書無しさん:03/11/20 14:32
>136
検索ですか?こんなのをループ内で毎回やってますね・・・
ちなみにこのテーブルは下手すると30万件以上件数があります。

Set rdsRecordSet = DBSDataBase.OpenRecordset("でかいテーブル")
rdsRecordSet.Index = "PrimaryKey"
rdsRecordSet.Seek "=", 検索条件
If Not rdsRecordSet.NoMatch Then

End If

他にも初期化でこんなのがあった。
dim keisan(10,3,999,999) as String
配列をFor文で延々とゼロ入れて初期化してる
文字型にする意味が不明などと、理解しがたいロジック満載ですよ・・・
このレベルで品質や高速化って言われてもねぇ…
138仕様書無しさん:03/11/20 23:35
>>137
COBOLをよく知らんのだが聞いた話によると、
どうやらその検索と文字型はCOBOLerの常套手段らしいぞ。
139仕様書無しさん:03/11/20 23:47
>>137が何やってるか全然わからん俺
140仕様書無しさん:03/11/21 00:13
BOOL main(){

モチロン正常終了はTRUEを返す
141仕様書無しさん:03/11/21 00:16
>140
そのコード書いた香具師3年くらいUN*X関連に修行の旅に出せ。
142仕様書無しさん:03/11/21 00:53
>137
たぶんそいつはCODASYL型DBしか使ったことがないのだろう。
メインフレームでもRDBはあるんだがな。古いシステムの保守
ばっかやってたとかじゃないか?

後半のは確かに理解不能。
143仕様書無しさん:03/11/21 01:08
>142
このスレの連中はCODAYSL型DBとか言われても判らない罠
COBOLerに笑われないようにRDB以外も勉強しておくのがよかろう。
144仕様書無しさん:03/11/21 01:31
手始めにNDBでも・・・

そういやNDB使うプロジェクトだっつってんのに
面接で「ボクはSQLができます」とぶっこいてた阿呆がいたな。
スキルシートは経験7〜8年とあったがありゃ捏造だろうな。

ところで>>137の下のは何?VBワカンネ
145仕様書無しさん:03/11/21 03:50
>>144
文字列の3次元配列と思われ。
つーか、何がしたいんだ、これは...
146仕様書無しさん:03/11/21 09:24
>138
なるほど、COLOLerの常套手段なのか・・・
ならせめてコメントを入れて欲しいんだけどねぇ・・・
コメント率3%以下だしインデントがガタガタで読めないって(T T)

>142
元汎用機のシステムだったみたいです。
RDBが無い時代なら、こんな滅茶苦茶なつくりになってるのも
わかる気が・・・

>144,145
文字列の配列を定義しれるんですが、理解できないのは
計算が主なのだったら、数値型配列にしてEraseかければいいし
文字だとしたら、わざわざゼロで初期化する意味が不明ですよね…
配列で思い出しましたが、あるソースでは7次元配列なんて化け物配列
があったそうです(苦笑
COBOLerの書いたVBソースには魔物がいるのかもしれない・・・・
147仕様書無しさん:03/11/21 09:48
>>146
COBOLって定義が全てなところがあるから、コメントってあまりいらないような感じだよね。
設計をがちがちして、定義部をごりごりして、コードはそこから導き出される。
148仕様書無しさん:03/11/21 10:49
if (ret == 0) {
ret = 0;
}
149仕様書無しさん:03/11/21 12:26
Dim n1 As Long
Dim n2 As Long
:
Dim n46 As Long

これをグローバル、モジュール、関数スコープでやられまチター
150仕様書無しさん:03/11/21 12:41
>>149
それを書いたヤシは、本当にプログラマでつか?
151仕様書無しさん:03/11/21 12:50
うーん、並んだときに美しくないし、コード保管で並び順がかわるから・・・。

dim n01 as long
dim n02 as long
・・・・
dim n10 as long
・・・・

ってすべきだな。
152仕様書無しさん:03/11/21 13:07
いや、プログラマなら後で途中の数字の変数が欲しくなっても困らないように
dim n0010 as long
dim n0020 as long
・・・・
dim n0100 as long
・・・・

ってすべきだな。
153仕様書無しさん:03/11/21 13:09
短時間で俄然素晴らしいコードになりましたね。
154仕様書無しさん:03/11/21 13:13
いんや、多分>>149は10進数であることを怒ったんだよ。
プログラマなら16進数でってね。

dim n0x01 as long
・・・・
dim n0xFF as long
155仕様書無しさん:03/11/21 14:11
>>151-154
そんなもん、延々並べる莫迦いないだろ!

 Dim n0x00 As Long, n0x01 As Long, n0x02 As Long, ..., n0x0F As Long
 Dim n0x10 As Long, n0x11 As Long, n0x12 As Long, ..., n0x1F as Long

ほら、こうすれば 1/16 の行数で済むぜ!
156仕様書無しさん:03/11/21 14:38
>155
馬鹿! ステップ数を減らすなんて、単価を下げるつもりか?
157仕様書無しさん:03/11/21 14:41
つうか、As Longってうざいじゃん。っていうより変数宣言うざい。
せっかくVBなんだからさ、変数宣言なしでいいじゃん。
158仕様書無しさん:03/11/21 14:49
>>149-155
もちろん冗談だよね。
万に一つも実在したりしないよね。
159157:03/11/21 14:50
すまん、勘違いしていた。
変数宣言しないと、グローバルスコープにできないよな。
やっぱ変数宣言は大事だ、でも型なんてどうでもいいよ。
グローバルと分ける意味でも、ローカル変数は無定義でいくべきだね。
160仕様書無しさん:03/11/21 15:27
>>155
As Long が多すぎ。

 Dim n0x00 , n0x01 , n0x02 , ..., n0x0F As Long
 Dim n0x10 , n0x11 , n0x12 , ..., n0x1F as Long

でいいよ。
161仕様書無しさん:03/11/21 15:33
>>160
ここらでマジレスすると、VBで一番やられやすい仕様の部分だよな。w
Cとかから来ると、全部Longと思うのが人というもの。
でも・・・。
162仕様書無しさん:03/11/21 16:20
>>161
無粋
163仕様書無しさん:03/11/21 17:55
Dim n0x01 As Long As Possible
164仕様書無しさん:03/11/21 19:02
>>163
メモリ食い尽くされたぞどうしてくれる
165仕様書無しさん:03/11/21 19:21
>164
気前よく1GBくらい増設して下さい。
166仕様書無しさん:03/11/21 20:08
vb白根。
167仕様書無しさん:03/11/21 20:45
品質の高い(バグ密度の低い)コードを書く先輩がいる。
その人のコードを見て、びびった。

char* p = strchr( str, '\0' );
if( p == NULL ) {
    return -1; // ここには絶対来ないはず!
}
if( ( (int)p - (int)str ) > MAX_LENGTH ) {
    return -1; // MAX_LENGTH以上のときはエラーとする。
}
「ここには絶対来ないはず」っつーのは、ホントにそんなコメントが入っていたのです。

おかしい、普段はこんなコードはあんまり書かない人なのに。
168仕様書無しさん:03/11/21 22:06
つーかこれに突っ込め

(int)p - (int)str
169仕様書無しさん:03/11/21 23:00
>>167
そのコメントの何が不満なの?

assert(false && "ここには絶対来ないはず! ");

って書けってこと?
170仕様書無しさん:03/11/21 23:35
>>169
コメントが不満じゃなくって「コードが不満」。strchrがNULLを返すってのは経験したことがない。
NULLを返すことは無いorセグメントバイオレーション(だったっけ)割り込み発生
のどちらかだと思う。
171仕様書無しさん:03/11/21 23:37
>「ここには絶対来ないはず」っつーのは、ホントにそんなコメントが入っていたのです。
↑これいらんだろ。baka
172仕様書無しさん:03/11/21 23:43
>>167
if ( strlen( str ) > MAX_LENGTH ) return -1;
173仕様書無しさん:03/11/21 23:46
>>170
文字列中に指定文字が見つからなければNULLじゃなかったか?
174170:03/11/21 23:54
>>173
俺が悪かったよ。「指定文字がnulの場合のstrchrが」って書けば良かったんだね。
175仕様書無しさん:03/11/22 00:00
assert(!"ここには絶対来ないはず! ");
176仕様書無しさん:03/11/22 00:08
>>170
コーディング規約か何かで強制されたのでは?
177仕様書無しさん:03/11/22 00:09
>>175
落ちるだろボケ
178仕様書無しさん:03/11/22 00:38
>177
藻前の意識がか?(w
179仕様書無しさん:03/11/22 05:09
>>178
つまらん
180仕様書無しさん:03/11/22 13:48
↓これ以上は絶対レスがつかないはず!
181仕様書無しさん:03/11/22 14:01
↓多分、これ以上は絶対レスがつかないはず!
182仕様書無しさん:03/11/22 14:37
ばれた。
183仕様書無しさん:03/11/22 15:48
>175

うちのファイルサーバが稼働試験中に落ちたじゃないか。どーしてくれる。
(ま、Sambaでもいじってみっか、って自宅で立てた鯖だからいいけどなw)
184仕様書無しさん:03/11/23 00:19
>>167
文字列の最大長が決まってるならmemchr使えってこと?

char* p = memchr( str, '\0', MAX_LENGTH );
if( p == NULL ) {
  return -1;
}
185仕様書無しさん:03/11/23 17:19
>>167
「おかしい、普段はこんなコードはあんまり書かない人なのに。」
(1)その人は普段エレガントなコードを書くと思ってたのに...
→コードを見たことがないならこの発言はおかしい
(2)どっかのこびとさんが勝手に付け足した
→納得
どっちだ?
186仕様書無しさん:03/11/24 17:04
void A0(void)
{
  switch STATUS {
  case S001:
    break;
    ...
  default:
    break;
  }
  return;
}

A1()
A2()
...
MN()

何もしない名前が2文字の関数が大量にあるんだけど・・・
さらに main() に遡って関数名に識別名を追記していく
コーディング規約だということは分かった。
FSRDA1();
RDA1();
A1();

しかもC1(), D1() とか中身が同一のものが大量にある。
呼び出しが深く苦労して最下層までたどりついたかと思うと何も処理していなかったり。
187仕様書無しさん:03/11/25 00:36
なんかCOBOLとは違うにおいだなあ。
奴らなら関数の名前は全て同じ長さにする。
188仕様書無しさん:03/11/25 00:48
>187
そこはかとなくアセンブラのにおいもするような気がするが。
でも、x86系のアセンブラ上がりなら識別子は6文字にするんじゃ
ないかという気もするし、よくわからんね。
189仕様書無しさん:03/11/26 21:09
>>188
逆アセンブル?
190188:03/11/26 22:37
>189

うーん、どうだろ?
強いていうと「元はアセンブラで書かれていたものを、あまり考えずに
Cで書き直した」って感じに近いような気がする。
実行モジュールからCのソースを逆生成してくれるようなツールも
あるけど、そういうのでやるとラベルや関数名はもっと機械的
(A_000001から連番みたいな感じ)になるから、それとも違うしね。

>186 の A1(), A2() 〜 MN() が羅列されているあたりは
実は元はCall文だったという感じを受けるんだが。
191仕様書無しさん:03/11/30 23:33
int hoge = とある定数;
a = (char*)malloc(hoge + 9);
if(a == NULL) {
printf("error");
}
memset(a, NULL, sizeof(hoge + 9));

ここまで1カ所に突っ込みどころが固まってると逆に笑ってしまいますた。
直せる所は直したけど、9って数字だけはどうしても出所が分からなかったので放置してマス。
192仕様書無しさん:03/12/01 00:06
>>191 コードは直す前のコードなんだろうね。
193仕様書無しさん:03/12/01 23:14
Javaのクラス名が全部アルファベット2文字と数字6桁でした。
この規約決めた奴は死ねばいいとおもう。
194仕様書無しさん:03/12/01 23:41
>193
むしろヤレ
195仕様書無しさん:03/12/02 05:50
>>193
Javaでアルファベット3文字と数字5桁連番ってのを見たことあるけど、
クラス図見ても何がどうなってるのかわかんなかったよ。

ActionFormのサブクラスとActionのサブクラスと
Filterのサブクラスが連番で並べて書いてあったり
EJBに対しても同じ命名規則を適用してたり…
196仕様書無しさん:03/12/02 09:06
>>193
変数名トランスレータ使って、最後にその規約に合うように変換したソースを渡せば?
197仕様書無しさん:03/12/02 09:55
むしろ、相互に変換可能なツールを作って、
シェアウェアで公開して、
会社に買わせろ。
198仕様書無しさん:03/12/02 10:18
>193-195

その命名規則だと設計者は元COBOLerだな。
昔メインフレームの仕事(もちろんCOBOL)をやったことがあるけど、
その時はプロシージャ名と処理概要を列挙した一覧表を仕様書に
つけるのが規則だったよ。
システム全部のプログラムのIDと処理内容を列挙したプログラム一覧
というのもあったけど。
199仕様書無しさん:03/12/02 11:30
その命名規則なら、名前見ただけでどのモジュールのクラスで
どういう階層なのかは一目瞭然にできるはずだが?そうでき
ないっていうのは命名者の能力に問題あり。

うちでも、画面番号とかモジュール番号とかそういう規則で
作成しているよ。当然、クラスメイトかは自然言語っぽく
つけて、対応表が別にありますけど。
200仕様書無しさん:03/12/02 12:23
>199
コボラ―キタ━━━━(゚∀゚)━━━━!!!!!!
201仕様書無しさん:03/12/02 13:09
>>199対応表が必要とかいう時点ですでに一目瞭然じゃないってことに気付け。
202仕様書無しさん:03/12/02 13:32
>>199
>当然、クラスメイトかは自然言語っぽくつけて、
クラスメイトの名付け親キタ━━━━(゚∀゚)━━━━!!
203仕様書無しさん:03/12/02 13:45
>>199
foo00001.java(SessionBean)
foo00002.java(Homeインターフェース)
foo00003.java(Remoteインターフェース)

こんな感じのが大量にできるわけなのだが、
対応表があっても間違えろって言ってるようなものだよ。
204仕様書無しさん:03/12/02 14:01
>>203
まあ、ああいう場合でも親番、小番形式だろ?
foo + 大分類No(2) + 機能No(4) で命名って。
205仕様書無しさん:03/12/02 14:04
199は
foo瀬名.java(SessionBean)
foo本田.java(Homeインターフェース)
foo理香子.java(Remoteインターフェース)
とかって付けてるんじゃないのか。
206仕様書無しさん:03/12/02 22:27
昔は効果があった方法だろうと思うけど時代遅れだよな。
いい加減IDEもタダで手に入るし、さっさと導入しろよ(w
207仕様書無しさん:03/12/02 22:45
なんでオブファスケータにやらせるような仕事人間がやってるんだよ、
糞コボラーめ。
クラスを暗号化して何が楽しいんだ。
208仕様書無しさん:03/12/02 23:56
ただのクラスメイトだから〜♪
209193:03/12/03 01:51
同じプロジェクトの人に聞いたら、もっと 酷い話が。
クラス定義の書き方が決まってて、

public class クラス名 {

と書かなくちゃいけないそうだ。
一見当たり前に見えるが、すごい罠が。
extendsやimplementsは書いちゃいけなかったらしい。
さすがにそれだとコード書けないんで何とか変えてもらったそうだけど、
Java書けないのに規約決めたコボラーは死ねばいいと思います。
210仕様書無しさん:03/12/03 01:52
クラス名だけなら、まだましだ
本物の糞コボラーは、すべてのメソッドを public static にするぞ!
211仕様書無しさん:03/12/03 01:59
おしい。変数もすべてpublic staticにしてグローバル変数にするぞ
212仕様書無しさん:03/12/03 02:00
糞コボラーはインスタンスの概念はおろかローカル変数も理解できない
213仕様書無しさん:03/12/03 02:05
まぁ、COBOLにはnamespaceの概念も変数スコープの概念も
まったくないからな。最近のObject-COBOLとかCOBOL.NET
なんかだとどうか知らんが。
なんにしても、異なる言語には異なるパラダイムがあるということを
理解できない奴は逝ってほしいな。
214仕様書無しさん:03/12/03 09:38
COBOL野郎は異次元のパラダイスに住んでいるから無理だろう
215仕様書無しさん:03/12/03 10:15
コボラーに設計における技術的な判断を行わせることは、
品質面、工程面の双方に大きなリスクを発生させる
216仕様書無しさん:03/12/03 21:49
おしい。変数もすべてmainメソッドのローカル変数です。
217仕様書無しさん:03/12/03 22:37
おまえら全然わかってない
本物ってやつはJavaからCOBOLのモジュールをを呼び出させるんだよ
218仕様書無しさん:03/12/04 00:23
>>217
それ、Java側の担当が激しく死ぬのでやめてください。
COBOLに合わせてデータを加工して送るのはもう嫌です。
219217:03/12/04 23:26
>>218
こっちがお願いしたいくらいだ

ところでお前、俺の左隣に座ってる奴じゃないよな?
220(゜Jし゜):03/12/05 22:10
先週からCOBOLの案件に突っ込まれたんですが、
所謂オープン系とはパラダイム自体違うって痛感してます。
で、そのCOBOLerの先輩たちが作ったVBとかのシステムもまたCOBOLっぽい…
DBの非正規化とかグローバル変数とか…タスケt
221仕様書無しさん:03/12/05 23:05
はやく来い来い2007年
222仕様書無しさん:03/12/06 19:13
>>219
いや、右に座っている奴です
223仕様書無しさん:03/12/06 21:41
>>222
ああ、ミカン箱席のヤツか
224仕様書無しさん:03/12/06 21:50
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)< >>223 呼んだ?
             _φ___⊂)__ \________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |愛媛みかん|/
225仕様書無しさん:03/12/06 23:59
ワロタ
226仕様書無しさん:03/12/07 15:04
>>218

そんな時、両方分かる漏れは呼び出すためのラッパクラスを作った。
それが良かったのか悪かったのかは分からんが。
227仕様書無しさん:03/12/07 15:05
グローバル変数最強。
228仕様書無しさん:03/12/07 18:32
>>227は最弱
229仕様書無しさん:03/12/07 20:39
227の宣言した変数、向かいの席の奴がこっそりワーク変数に使ってるよ。
230仕様書無しさん:03/12/07 21:25
>>229
ああ、MZ-700で作業してる奴か。
あいつはいいよ。別にソース共有してないし。
231仕様書無しさん:03/12/07 23:00
>>230
ミカン箱席だしな
232仕様書無しさん:03/12/08 12:46
>>227
どこでも同じ変数名であるだけグローバル変数の方がまし。
Fortran の共通ブロック最強
233仕様書無しさん:03/12/08 13:53
>>226
コボラは死んでもラッパを放しませんでした。
234仕様書無しさん:03/12/08 14:09
>>229
だからワーク変数はローカルで取れとあれほど言っただろう?
235仕様書無しさん:03/12/08 18:14
徹底したグローバル変数&グローバル関数指向プログラミング。

俺は、その時、神が見えた!!
236仕様書無しさん:03/12/08 18:23
>>235
まあ、そういうコード組むときは、神が降臨しないとだめだね。
ただし、翌朝には神はもうこないから、自分でもわからない諸刃の剣
237仕様書無しさん:03/12/08 20:23
>>233
木口小平かよ
238仕様書無しさん:03/12/08 20:57
グローバル変数だけど、関数っつーかブロックごとに違う変数名規約にする。
N88BASIC時代によくやったな。
239仕様書無しさん:03/12/08 21:28
emacs lisp あたりは今でもそうだろ。
240仕様書無しさん:03/12/09 01:38
>>235
もはや神はいないんだよ。(生き神様はいたかもしれないが、絶滅危惧種だ)
241仕様書無しさん:03/12/09 17:23
>>240
Friedrich Nietzscheによって19世紀に宣言されたことを今ここで繰り返してどーなる
242仕様書無しさん:03/12/09 20:21
>241
それもまたヘーゲルのパクリなわけだが。
243名無しさん@Emacs:03/12/09 20:33
( ・∀・)つ〃∩ ヘェーヘェー
244仕様書無しさん:03/12/10 03:06
マ板でヘーゲルとかニーチェの名を聞くとは…
ちょっと嬉しい文系マの俺(現組込系デジタル土方)
245仕様書無しさん:03/12/11 02:26
超亀だが>167
ここには絶対こないはず、というコメントをつけて
エラー中断処理の条件分岐を書く事は俺はよくあるなぁ。
まぁelseのところとかだけど。
想定外の入力および分岐があったときにはせめてきっちり止まるようにでもしておかないと
安心できん。
246仕様書無しさん:03/12/11 03:08
>>224
鉛筆持って机上デバッグか。最強だな。
247仕様書無しさん:03/12/11 10:20
「○○プロジェクト、一週間だけ手伝ってくれ」
そう言われたので現場へ行って、ソースを見る。
サーバにログインするための情報を持っているというので見てみると

  public static String SAVER_ADDRESS
  public static String SAVER_USER
  public static String SAVER_PASSWORD

救世主情報?
こんなうんこ定数名つけちゃって、しかも誰一人ツッコミ入れないような
人間しかいないようだから火が噴くんじゃないか?
248仕様書無しさん:03/12/11 10:24
>>247
火噴いてる時にスペルミス指摘する奴がいたら殴られると思うが。
直してデグレたらどうすんの?
249仕様書無しさん:03/12/11 10:38
>>248
いや、指摘する以前の問題だろう。
そもそもserverが綴れない香具師が居るプロジェクトは、漏れは嫌だな。(w
250仕様書無しさん:03/12/11 10:45
まぁ確かにSAVERだのSESIONだのCONECTだのと、スペルミスする奴は阿呆だが、
他所のプロジェクトで火消しやる時は、そんな所にゃツッコまないな。
優先順位としては低い事項だから。
さっさとまとめて、さっさと撤退するが吉。
251仕様書無しさん:03/12/11 11:29
>>247
むしろ、まずpublicの方に突っ込まないのか?
252仕様書無しさん:03/12/11 11:39
まあ、1週間だけの投入が1年になったんだろうね。w
253仕様書無しさん:03/12/11 14:07
>>251 Java APIにだってそういうクラスがあるし、別にいいじゃん。

……と言おうと思ったら、よく見たらfinalじゃなかった。
254仕様書無しさん:03/12/11 17:34
>>251>>253
なんでも起動時パラメータによって接続先を動的に変えるためらしい。
なら、なぜフィールドをprivateにしてgetterを用意、としなかったのか。
それはぶっちゃけ素人ばっかりのプロジェクトだから。
なんでも、立ち上げ時にJavaの経験のある奴は一人しかいなかったらしい。
信じられないかもしれないけど、こんなのが集まって実際に大赤字を出している。

今日はなんと机上デバッグをさせられ…>>246は予言者か、もしくはキバヤシ。
こんなプロジェクトとは早く手を切りたい。
なんか一週間限定のはずが今年いっぱいまで伸びるような話があったので、断っておいた。
255仕様書無しさん:03/12/13 09:51
>>253
Java APIにもpublic staticでfinalじゃないのあるよ。
System.outとか。

理由は全く別だけどね。
256仕様書無しさん:03/12/13 17:43
>>255 おぉ。気づいてなかった。確かにあれはpublic staticでnon-final
257仕様書無しさん:03/12/18 00:11
char* mojFILENAME;
int seiID;
double syoSCALE;

それぞれ「文字」「整数」「小数」を意味するプレフィクスらしい。

しかし漏れも文字列をsz〜とかポインタをlp〜とかしてしまうので
人のことは言えない(´Д`)
258仕様書無しさん:03/12/18 00:13
すまん、文字列szってのは何でだっけ。
259仕様書無しさん:03/12/18 00:18
String terminated by Zero
じゃない?
260仕様書無しさん:03/12/18 00:19
文字列の最後が0x00で終わってるから
string zeroの略だったと思う。
261仕様書無しさん:03/12/18 00:23
>258
 String terminated by Zero (ゼロ終端文字列)じゃなかったっけか。
262仕様書無しさん:03/12/18 08:51
直訳すると、”字ぬるぽ”か。
263仕様書無しさん:03/12/18 11:03
「Zero=ぬるぽ」かよ! 超訳だな。(w
264仕様書無しさん:03/12/18 19:59
ぢぬる
265仕様書無しさん:03/12/18 22:09
>>257
ジャポネーゼ記法なのか?
266仕様書無しさん:03/12/23 00:08
/******* include ***********/
#include "include/include.h"
267仕様書無しさん:03/12/23 23:55
>>266
ちとワラタ
268仕様書無しさん:03/12/28 02:16
>>266
味ありすぎ
269仕様書無しさん:03/12/29 13:49
>>266
しばらく眺めてると、じわじわ笑いがこみ上げてくるな。
270仕様書無しさん:04/01/04 19:01
>>245
俺もIF文やCASE文には必ずELSEくっ付けて、仕様外の値とかが来た場合にはエラー起こすようにしてる。
あとSQLで一件もヒットしなかったり、一件もUPDATEされなかったような場合もチェック。

実際の運用じゃないんだろうが、テストの段階じゃ間違ったデータを
ほいほい生成して送ってきやがるからこれで随分助かってるよ。
271仕様書無しさん:04/01/04 19:02
>>270
>あとSQLで一件もヒットしなかったり
常識をさも優れた処理のように書かないでください。
そこチェックしてなかったらヌッ殺す
272仕様書無しさん:04/01/04 19:10
>>270
仕様外の値チェックを通常文の else でやるんでつか・・・
漏れは前チェック派なので、異常な条件の処理は最初に書いてまつ。
273仕様書無しさん:04/01/04 19:50
>>270
ネタなのか?
274仕様書無しさん:04/01/04 19:59
>>272
270ではないけど、select文のときは、defaultでいいと思うぞ。
275仕様書無しさん:04/01/04 19:59
業界入りたての新人なんだろう
276仕様書無しさん:04/01/04 20:21
もまいら、もちつけ。
>>270 の内容は、ある程度経験を積めば常識の範疇だが、
その程度の事すら考慮していないクソソースに悩まされたことは無いか?


俺はあるぞ…(w
277仕様書無しさん:04/01/04 20:27
想定外の入力や分岐があった場合でも対応する処理を作っておくということは一緒なのに
なぜ>>245はスルーで>>270は叩かれるのか。

しばらくスレがヒマだったからいろいろ溜まってるの?
278仕様書無しさん:04/01/04 20:30
新人とはいえエラーチェックをすることを得意げに話すなんて 相当のDQN会社に間違いない
279仕様書無しさん:04/01/04 20:31
つうかunit testやれや
280仕様書無しさん:04/01/04 20:34
>>277
新人は黙ってて。
281仕様書無しさん:04/01/04 20:34
>>279
COBOLerには不可能です
282仕様書無しさん:04/01/04 20:46
>>270の会社が夏まで持つか心配だ
283仕様書無しさん:04/01/04 21:33
>278
学生が暇つぶしに来るところじゃねぇぜ。
お前が考えてるぐらい世の会社にはマトモな人間がいる、と思ったら大間違いだ。

#まぁマトモじゃないから派遣が回されるんだろうけどな…
284仕様書無しさん:04/01/05 11:26
case文、俺はありえない値の判定入れてないんだけど・・・。
全部に入れるもの?それだけで、結構ソース増えると思うんだけど。

エラー処理に関しては、俺はかなりずさんだからな・・・。
その辺勉強するには何を読んだらいいんだろう?
285仕様書無しさん:04/01/05 13:04
>>284
完全自殺マニュアル
286仕様書無しさん:04/01/05 13:34
>>284
安心しろ俺もやってない。
287仕様書無しさん:04/01/05 15:20
>>284
「あり得ない値」が「本当にあり得ない」のなら、不要。

ハードが安定してないとか、信用できないライブラリとか、
無茶苦茶な状況下でのデバッグとかなら、必要かも知れないけど。
288仕様書無しさん:04/01/05 17:09
>>284
どういう状況なのかよくわからん。
case節を40億個記述するかどうか、って話か?
289仕様書無しさん:04/01/05 17:44
プログラム中の全てのcase分に、ありえない値がきた場合の分岐を
書いておくかどうかって話だろ。
290仕様書無しさん:04/01/05 18:02
>>287
同意。
「論理的にありえない」レベルなら書け。
物理的にありえないレベルなら書かなくていい。

太陽風で値が変わったりするし。
291仕様書無しさん:04/01/05 18:05
でも毎度毎度それやるのめんどいのよねー。
292仕様書無しさん:04/01/05 19:35
>>284

IF 引数X = 0 THEN
処理A
ELSEIF 引数X = 1 THEN
処理B
ELSEIF 引数X = 2 THEN
処理C
ELSE -- 仕様上ありえない値の場合
エラー発生
END IF;

俺はこんな感じだけど、大してソース増えないよ。
条件分岐とかに使わないものはチェックしないし、起こすエラーは共通のを使いまわすし。
>>272みたいに全部(だよね)の引数や変数に対して先頭で
チェックするんならかなり増えそうだけど。

こういった当たり前のことを当たり前にやろうってのは達人プログラマーとか読むと参考になるよ。
293仕様書無しさん:04/01/05 22:03
C++でまじめにset_new_handlerしてる人ー!!
Cでmallocは必ずラッパー書いて使う人ー!!

漏れはやってねぇよ……_| ̄|○
294仕様書無しさん:04/01/05 22:15
>284
有り得ない値のcaseを書くんじゃなくて、
必要なcaseを並べた後defaultでエラー処理を書くだけだよ。
各switchブロックに2行ずつで足りる。
295仕様書無しさん:04/01/05 22:29
>>290
太陽風交点に立ってdebugしる!
296仕様書無しさん:04/01/05 22:55
>>293
それは何?
マジ厨でスマソ
297293:04/01/06 00:11
・set_new_handler
 C++で、::new失敗時に発生する例外が一切catchされなかったとき、
 最後の受け口として機能する関数を登録するための関数。
 VC++6.0はその辺の仕様が定まらないうちに発売されたため
 現在のANSI/ISO C++のそれとは似て非なる_set_new_handlerが入っていて悩みの種。
 (更に::newは失敗してもbad_alloc投げないしな……)

・malloc
 ANSI C標準で、動的にメモリを確保する関数。
 失敗すると0を返す。いわゆるぬr(ry

 つまり、どっちも「動的にメモリを確保するとき、それが失敗した場合の対策してる?」ってこと。
 Javaとかのメモリ管理をプログラマがあまり意識しなくていい言語から入った人には
何のことやらさっぱりだろうなぁ……

あ、間違ってたらツッコミよろしこ。
298仕様書無しさん:04/01/06 00:48
>293
 malloc は漏れも痛い目にあったことがあった。
 動的にサイズ計算して確保するんだが、その計算結果が「0」なことがあってさ。
 この場合、malloc が「0バイトの領域を確保して、その先頭アドレスを返す」システムだった。
(サイズを0指定時の動作は ISO/C では実装依存と規定されている)

 取れなかった時は当然 NULL チェックして回避してるんだけど、一応 NULL じゃないアドレス
返してくるから、そのチェックはすり抜けてアクセスしちまったの。
 途端に不正ポインタでトンでくれやがりました。


 結局ラッパ作ったよ、その対策に(サイズが 0 なら malloc せず NULL を返すようにした)
299仕様書無しさん:04/01/06 00:58
>>298
こんな感じの処理でトンだってこと?

a=malloc(0);
memcpy(a,"hogehoge",0);
300仕様書無しさん:04/01/06 01:04
>>298
サイズ計算の結果がゼロならば
普通はその領域にアクセスしないだろ


なーんつって
301298:04/01/06 01:05
>299
 こんなん。

size = count * sizeof(STRUCT);
ptr = malloc( size );
if (ptr != NULL) {
ptr[0] = hogehoge;
}

 NULL じゃないから、if によるガードをすり抜けちまったんよ。
302仕様書無しさん:04/01/06 01:45
>>301
何でcountをかけるの?

size = (count+1) * sizeof(STRUCT);
なら、このあとの処理がなんとなく想像できるけど。
303仕様書無しさん:04/01/06 03:39
strcpy(str, NULL);
304仕様書無しさん:04/01/06 09:58
>>287
> >>284
> 「あり得ない値」が「本当にあり得ない」のなら、不要。

そういうときにはアサーションを使いなさいって、お母さんいつも言ってるでしょ!
305仕様書無しさん:04/01/06 20:19
オカアサン (^o ^*;)
306仕様書無しさん:04/01/06 22:37
>>301

そりゃ、こっちのバグ
| ptr[0] = hogehoge;
307296:04/01/06 23:05
>>297
set_new_handlerとはnew〜deleteのnewのコト?

>mallocは必ずラッパー書いて使う
というのはどういうこと?
# mallocは知ってますた(汗
308仕様書無しさん:04/01/06 23:41
>>307
俺の予想ではこんな感じの関数を作ること

void* my_malloc( int size ){
void *a;
a=malloc(size);
if( a==NULL){
printf("お前はぬるぽだ");
exit(-1);
}
return a;
}
309297:04/01/07 00:30
>307

mallocラッパーの方は大体>308の通り。
まぁサービス、デーモンとかの簡単にこけてはいけないプログラムは
いきなりexit()しないでいろいろ策を弄するんだろうけど。

で、newはそのnewなんだけど、オーバーロードしたnewまでset_new_handlerで
登録した関数に飛んでいくかどうかはちと忘れた(汗
なんで、::newって書いたのだわ。
310296:04/01/07 00:42
>308, 297
thx!
なるほろ、そうやってラッパー使うんですね>malloc
あまり意識したコト無かった(汗
# 最近は専らnewだし:-)

::newはそういう意味だったんすね、安心しますた
最近知らないコト続出でビビり捲りだったモノで(汗
311仕様書無しさん:04/01/07 02:33
>>304
お母さんの声は緒方恵美を希望する
312仕様書無しさん:04/01/07 10:20
>>308
free()もラッパーをつくるとすると、こんなかんじか?

void my_free(void * p)
{
  if(p == NULL){
    printf("ガッ");
  }
  free(p);
}

freeってNULLを渡しても問題ないんだったっけ?
313仕様書無しさん:04/01/07 13:13
ANSI CならNULL渡しても大丈夫。
それ以外は知らん。
314仕様書無しさん:04/01/07 21:55
>>312
プログラム上は問題無いと思うけど、問題無い理由を説明するのは
難しい場合があるし、理解してもらえずに差し戻しになるケースもある
から渡さないほうが無難。
315仕様書無しさん:04/01/07 21:59
>>313
Sun OS 4.1.3はout。reallocも。氏ね。
316仕様書無しさん:04/01/07 22:02
>>314
明確に許されているインターフェースを制限するなんて○○ですか?
317仕様書無しさん:04/01/07 22:24
>314
マジレス路線一直線ですか。新年早々テンパってンな。
318仕様書無しさん:04/01/07 23:42
>>312
こんなことしてみちゃったりして。
void*の参照ってこうでいいんだっけ?

void my_free(void*& p)
{
  if(p == NULL){
    printf("ガッ");
  }
  free(p);
  p = NULL;
}
319仕様書無しさん:04/01/08 00:31
>>316
二文字か。おおむね当たり。正確にはその系列。
320仕様書無しさん:04/01/08 00:51
目立
321仕様書無しさん:04/01/11 11:29
この場合>>313の言っていることは正しくて、Sun OS 4.1.3 とやらがマズーだと思うんだが、
なんで「氏ね。」なんだ?
322仕様書無しさん:04/01/11 12:33
>321
マジレスも馬鹿らしいが、この場合「氏ね」は「Sun OS 4.13」に掛かってるんだろ
323仕様書無しさん:04/01/11 12:37
>>322
すまん。そういうことか…恥
324仕様書無しさん:04/01/11 15:23
そうは読めないけどな
325仕様書無しさん:04/01/11 21:25
UNIX詳しくないので見当違いの質問だと悪いのだが

SunOS4.1.3って、OSだよな?
SunOS4.1.3で動くCコンパイラは全部free(NULL)で落ちるの?
それともSunOS4.1.3付属のCコンパイラがそうって事?
326仕様書無しさん:04/01/11 21:35
コンパイラじゃなくてlibcだな。
そこで動くコードはコンパイラに関係なくぶちあたる問題だ。
327325:04/01/11 22:00
>>326
サンクス。
「SunOS4.1.3のlibcがマズー」だとそうなる、ということね
328仕様書無しさん:04/01/11 22:05
glibcつかえば?
329仕様書無しさん:04/01/12 12:06
glibcってlibc使ったりはしてないの?
330仕様書無しさん:04/01/12 20:35
>>329
         \   ∩─ー、    ====
           \/ ● 、_ `ヽ   ======
           / \( ●  ● |つ
           |   X_入__ノ   ミ   そんなエサで俺様がクマ――!!
            、 (_/   ノ /⌒l
            /\___ノ゙_/  /  =====
            〈         __ノ  ====
            \ \_    \
             \___)     \   ======   (´⌒
                \   ___ \__  (´⌒;;(´⌒;;
                  \___)___)(´;;⌒  (´⌒;;  ズザザザ
                               (´⌒; (´⌒;;;
331仕様書無しさん:04/01/12 21:37
vb系言語で作った古いシステムの更新に際して、データの簡単な変換処理が必要になった。
年功序列リーダー「このプログラムはjavaで(自慢げ)先に作っちゃった。エヘエヘ。」
が、俺が見たのは数百行ある、たった1つの関数だけで構成されたものだった。
コーディングも初心者以下だった。
ちなみにそいつの関わったプロジェクト/プログラムで、成功した/まともな物を見た事はない。
332仕様書無しさん:04/01/12 21:46
まぁJavaなら関数とは呼ばないから、お前も(ry
333仕様書無しさん:04/01/12 22:00
>>331
まぁ単純な変換くらいなら、
それはそれで有りだと思うけどな。

踊ってくれるヴァカなら、責任から全部押しつけて踊らせて見てるのも、
失敗して勝手に消えてくれそうで面白そうだぞ。(w
334仕様書無しさん:04/01/13 01:26
ちゃんと動けばそれでいいじゃないか!
335仕様書無しさん:04/01/13 09:17
>>334
お前のような奴がいるから・・・。
お前なんて、ダニだ!しろありだ!
336仕様書無しさん:04/01/14 00:26
>334
何がお約束だ
悪趣味極まりないな
337仕様書無しさん:04/01/14 03:50
なにキレちゃってるんでしょうか、このひと
338仕様書無しさん:04/01/14 07:20
334 名前:仕様書無しさん 投稿日:04/01/13 01:26
ちゃんと動けばそれでいいじゃないか!
----------------------------------------------
336 名前:仕様書無しさん 投稿日:04/01/14 00:26
>334
何がお約束だ
悪趣味極まりないな
----------------------------------------------
    _, ._
  ( ゚ Д゚)
339仕様書無しさん:04/01/14 07:45
>>338
334 名前:仕様書無しさん [sage お約束で] 投稿日:04/01/13 01:26
ちゃんと動けばそれでいいじゃないか!
340仕様書無しさん:04/01/14 08:14
鈴木みそ(漫画家)がむかしちょっとだけプログラマ業界のことを書いたけど、
いま連載してる「銭」って漫画でもまた題材として取り上げてくれないかなぁ〜
341仕様書無しさん:04/01/14 11:20
334って悪趣味とか罵倒されるほどのことなのか?
342仕様書無しさん:04/01/14 11:31
>>341
食べ物屋が、喰えればいいんだよ!とかいって品を出すか?
自動車屋が、走ればいいんだよ!っていって自動車製造するか?
テレビ屋が、映ればいいんだよ!っていってTV販売するか?

品質の概念がないから、デスマが繰り返されるんだよ。
動けばいいだけのソースじゃ仕事したこととして認められない。
343仕様書無しさん:04/01/14 11:39
ネタにマジレスカコワルイ
344仕様書無しさん:04/01/14 11:49
342みたいなオッチョコチョイがいるからいつまでも品質が(ry
でFA?
345仕様書無しさん:04/01/14 11:55
>>343
ネタだと思っていると、いつかそういう奴に出会うぞ。w
ネタだと信じて仕事をしたら、あらびっくり。
346仕様書無しさん:04/01/14 12:07
動けばいいってだけで作る奴のプログラムは大抵まともに動かない
347仕様書無しさん:04/01/14 12:28
>345-346
>343
348仕様書無しさん:04/01/14 16:21
>>347
だから、ネタだという保障がどこにあるんだ?
この業界、真顔で動けばいいっていう奴は掃いて捨てるほどいるぞ。
349仕様書無しさん:04/01/14 16:35
「お約束で」ってのは、ネタだよってことだろ。
なんでこんな事いちいち説明しないといけないんだ、アホ。
350仕様書無しさん:04/01/14 16:52
もう、その書き込みがネタかどうかはどうでもよく、
すでに「実在する動けばそれでいいと言っちゃう人」、という話題に
シフトしてるのではないだろうか
351仕様書無しさん:04/01/14 17:04
そもそも、その”お約束で”っていうのが、
釣りを表しているのか、
それとも、書き込みをした彼のいつもの最後の捨て台詞としてのお約束なのか・・・。

萌えてるプロジェクトで、微妙なコードを書いた挙句に、お約束どおりに
「動けばいいじゃないですか。w」

間違いなく殺す。
352仕様書無しさん:04/01/14 17:15
>>350
ネタだという保証がどこにあると尋ねられたので答えただけだが、何か問題は?
353仕様書無しさん:04/01/14 17:18
>>352
>>351は?

お約束ってのが、このスレに対してのお約束なのか、彼の日常でのお約束なのかで、
話は正反対だと思うが。
354仕様書無しさん:04/01/14 17:29
>348
なあ、「お約束で」と書いている人と「真顔で動けばいいっていう奴」は
結びつかないぞ。2行目は反論として全く意味を為さないんじゃね?
てか345といい、話の流れを無視して直前の書き込みにだけ反応してるみたいな。
355仕様書無しさん:04/01/14 17:33
>萌えてるプロジェクト
萌え〜なプロジェクトとは羨ましい
356仕様書無しさん:04/01/14 17:42
>>354
>>353のように考えれば、真顔で動けばいいと毎回お約束でいう奴となるんだけど。
357仕様書無しさん:04/01/14 18:07
ちゃんと動けばそれでいいじゃないか! (`・ω・´)
358仕様書無しさん:04/01/14 18:11
>>353
「お約束」って言葉、ネタとして使うもんだと思うんだが…
359仕様書無しさん:04/01/14 20:57
>336はリアルでそういう奴らと顔を合わせてるから
ネタにしても悪趣味で受け付けられん、という事じゃないか。

その気持ちは俺も良く分かる。
360仕様書無しさん:04/01/14 20:58
>>334の書き込み自体はネタだろ。
現実にそういうヤツがいるからネタとして意味があるわけで。
361仕様書無しさん:04/01/14 22:28
いいじゃないか! (`・ω・´)
362仕様書無しさん:04/01/14 23:01
「とりあえず納品できればいいじゃない」と言うウチのリーダーよりはマシ!
363仕様書無しさん:04/01/14 23:36
ちゃんと喰えればそれでいいじゃないか!(´┐`)
364仕様書無しさん:04/01/15 00:25
いいじゃないか、いいじゃないか、夢があればー
365仕様書無しさん:04/01/15 05:53
あたまのわるいのがいっぱいいるね
366仕様書無しさん:04/01/15 07:13
あたまがわるければそれでいいじゃないか!
367仕様書無しさん:04/01/15 13:15
//あたまがわるければそれでいいじゃないか!

//↑さすがにそれはどうかと思う。
368仕様書無しさん:04/01/15 13:18
気にしなければそれでいいじゃないか!
369仕様書無しさん:04/01/15 13:20
   ,へ、        /^i
   | \〉`ヽ-―ー--< 〈\ |
   7   , -- 、, --- 、  ヽ
  /  /  \、i, ,ノ    ヽ  ヽ
  |  (-=・=-  -=・=-  )  |  心 の 底 か ら そ れ で い い
 / 彡  / ▼ ヽ  ミミ   、
く彡彡   _/\_    ミミミ ヽ
 `<             ミミ彳ヘ
    >       ___/   \
   /         7      \
   |        /
370仕様書無しさん:04/01/16 22:44
>364
いいじゃないか、いいじゃないか、明日があーればー♪
あー♪
371仕様書無しさん:04/01/17 10:30
魔王サイコなんて俺は知らないぞ
372仕様書無しさん:04/01/17 18:26
マスター納品に行ったPMに電話一本で主キー増やされ、
明日の朝一番までに直せって言われた時の恨みは一生忘れません。
前日まで忙しくしてて、テストしたし、現地からもトラブル報告ないから今日は帰るってSEが帰った後の電話でした。
マスターとは言え多少煩雑な処理を含んで居る物で落ちないようにするのが精一杯でした。
373仕様書無しさん:04/01/17 19:20
>>372
主キーぐらい容易に追加できるようにしておけよ。ホント無能だな。
374仕様書無しさん :04/01/17 20:24
>>372
言いなりになってること自体がお前の無能さを語ってるね。
375仕様書無しさん:04/01/17 21:14
>373-374
許してやれ。
スレ違いだしな
376仕様書無しさん:04/01/17 21:32
>>372
主キーが増えただけなのに修正に凄く苦労するようなプログラムを組んでしまい、
さらに満足に直すことができず、力不足を認識して、この会社(業界)を辞めようと思った。
ということですね?
377仕様書無しさん:04/01/18 00:58
>373-374,376はマスター納品に行ったその場で仕変うけちゃうSヨ
378仕様書無しさん:04/01/18 02:38
>373-374,376
は著しく想像力の貧困な372の上司だな
379仕様書無しさん:04/01/18 14:36
>>377 , 378
372が大変になる理由を書いていないのも原因では。
言葉どおりに主キーを一つ増やすだけならほとんど影響はないはず。
せいぜいレコードINSERTするときにその項目がNULLにならないようにするだけでは?

380仕様書無しさん:04/01/18 14:42
主キー追加してNULLにならないようにするだけって・・・想像力無さ杉。
なにか入れたいから主キーに追加するんだろ。
381仕様書無しさん:04/01/18 14:50
こんな香具師にまかせてるから漏れたちは現場で混乱するんだろ。
382379:04/01/18 15:33
>>380
君は言われてもいないことを勝手に妄想して問題を起こすタイプだね。
372の条件では主キーを一つ追加する、としかかかれていない。
勝手な妄想は慎みたまえ。
383仕様書無しさん:04/01/18 16:06
ちょっと弱音のレスを見ると得意になって叩きだす奴なんでだろ〜
384仕様書無しさん:04/01/18 16:11
>>379って、主キーが何かわかってるのか?
>>372のPMみたいな香具師(w
385仕様書無しさん:04/01/18 16:16
かといって、PMやれと言われてもできない自信が俺にはあるがな
ていうか、言われんがな・・・
386仕様書無しさん:04/01/18 16:25
ファイルサーバに置いてあった別なチームがやってるCOBOL保守作業のソース、
ひとつのモジュールの変数宣言だけで3000行ぐらいになってる…

似たような名前で違う日付がついている変数がいくつもある事に気付いて即ファイルを閉じた。
これは見てはいけない…。
387379:04/01/18 16:32
>>384
君こそわかってんの?
主キーが無いテーブルに主キーを追加するってんなら別だが、
主キーがあるテーブルに新しく主キーを追加するってだけなら影響はない。
もともと新しく追加した主キー以外でユニークになっているんだから。
388仕様書無しさん:04/01/18 16:33
>379は仕様変更を要求されて、それがどの程度の影響を及ぼすのか考えもせずに受けちゃうSヨ
389仕様書無しさん:04/01/18 16:49
COBOLなら、確か変数宣言だけ外出しにできたはずだが…
390仕様書無しさん:04/01/18 16:50
>>387はキーの意味をわかってないのでこれ以上話しても無駄
391387:04/01/18 16:51
>>390
わかってないやつほどそういうんだよね。
本当にわかっているなら問題点ぐらい挙げてみろ。
ただし妄想はなしでな。
392仕様書無しさん:04/01/18 16:54
>>386
そのソースを開いたときの驚きようは想像するに難くない。
393仕様書無しさん:04/01/18 17:06
>>387
>もともと新しく追加した主キー以外でユニークになっているんだから。
ユニークにしたくないから”主キー”を追加するんだろw
ユニークを維持するつもりなら主キーである必要はないね
394仕様書無しさん:04/01/18 17:08
現場にいたよ、>>391みたいなうんこSE。
さらにたちが悪いのは、not null制約やキーの付け外しだけではなく
周知もなしに勝手にテーブル名やカラム名まで変えちゃうところ。
一ヶ月前にテスト済のプログラムが落ちるってんでログ見てみたら・・・

それに比べれば教えてくれるだけまだマシじゃないか。
395仕様書無しさん:04/01/18 17:09
問題なのは、こういうことする糞Sヨが予算を全く気にしていないということだ。
自分のせいでいくら足が出るのか考えたことすらない奴。
396仕様書無しさん:04/01/18 17:13
おまいら、スレ違いです。

この会社辞めようと思った上司の一言#D
http://pc.2ch.net/test/read.cgi/prog/1070528461/
397仕様書無しさん:04/01/18 19:32
キーの追加が影響あるかどうかはしらねーが、テストはその時点でやり直しだろ?
398仕様書無しさん:04/01/18 21:31
妄想とは笑止
リスク管理を知らない391は去れ
399仕様書無しさん:04/01/18 23:59
>>398
ぷっ
ごみプログラマーがほざいてるよ
400仕様書無しさん:04/01/19 00:00
>>397が一番正論だ。
仕様変更を受け付けたSEはそのことも認識していないカスだろう。
>>387も同類。
>>372にはご同情申し上げるとしか言いようがない。
401仕様書無しさん:04/01/19 00:06
>>395モナー
402仕様書無しさん:04/01/19 00:13
なあ、俺、CとかC++は詳しくないんだけどさあ。
C++で固定長のデータ扱うのって、よくあることなのか?
既存のシステムをちらっと見て、そんな風になってたんだ。
そんで、そうやって得た固定長データを、
そのまま<PRE></PRE>ではさんでブラウザに流してるんだ。
ブラウザは大半がプロポーショナルフォントなもんだから、画面くずれまくりでさ。
こういうシステムってどうよ?
俺としては、時代遅れのコボラーがやってるとしか思えないんだ。
で、データベースはOracleだって。どういうこと?
403仕様書無しさん:04/01/19 00:24
>C++で固定長データ
よくあるわけでもないがないわけでもない。
しかし、<pre>で挟んでまんま、とかの辺りは激しくイヤソ。
404仕様書無しさん:04/01/19 01:27
主キーの追加は痛いぜ。いや、まじで。
親テーブルの場合はそれを参照している子テーブルがあるわけで、
親に主キーが増えると子との関係がN:M関係になってしまう。
子テーブルの場合はまだいいんだけど、それでもそれまでのデータがユニークではなくなってしまう。

どっちにしろエンティティの意味が変わってしまうため、論理レベルでの見直しが必要になるぜ。
>>387
おまえモデリングしたことないだろ。
405仕様書無しさん:04/01/19 06:18
リリース日にPキー追加要求されるシステムってどんな設計なんだろ?
 Sヨさん責めるのは可愛そうな気もする。
406仕様書無しさん:04/01/19 07:08
>>404
お前、主キーは一つのテーブルに一つしかつけられないの知らないだろw
407仕様書無しさん:04/01/19 10:45
>>406
いたたたたぁ
408仕様書無しさん:04/01/19 11:01
主キーって何?
409仕様書無しさん:04/01/19 11:04

fprintf("%-03d",num);

書いたやつは気が触れていたとしか思えない。
しかも、コンパイラによって解釈が違ったんだが、コンパイラの仕様変更一覧には載ってなかった。
こんなトンチキなコードを書くやつがいるとはSUNの仕様変更担当者も想定していなかったに違いない。
410仕様書無しさん:04/01/19 11:38
>>409
そんなのプロトタイプで引っかかるだろ?
411仕様書無しさん:04/01/19 14:07
>>407
えっ? まじで知らないの? 主キーとキーがごっちゃになってるねw
412仕様書無しさん:04/01/19 14:19
>>411
それ以上しゃべるなら、実例出してから言ってくれ。
どっかから引用するとかさ。水掛け論の馬鹿馬鹿しさくらい知ってるだろ?
仮にも技術屋のはしくれのマなら、それぐらいしろよ。
何も知らないクライアント相手にしてるんじゃないから、論理でしゃべれ。
413仕様書無しさん:04/01/19 15:22
>>411
第1正規化をほどこした場合における主キーの扱いについて述べよ。
414仕様書無しさん:04/01/19 15:45
>>406
「主キーを構成するカラムの追加」を
「主キーの追加」って言ってんじゃないの?
415仕様書無しさん:04/01/19 16:21
だからそれがこまるんだってばよ
416仕様書無しさん:04/01/19 16:50
まだ続いてたの? この頭の悪い会話。
417仕様書無しさん:04/01/19 17:23
主キーだいしゅきー。
418仕様書無しさん:04/01/19 17:54
>>417
むしろそのレスのほうが上のやりとりより賢い。
419仕様書無しさん:04/01/19 17:56
>417-418
ワラタ
420仕様書無しさん:04/01/19 17:58
主主を分解すると、主キー
更に分解すると、キーキー

キーキー言うな!
421仕様書無しさん:04/01/19 18:07
>>413

第一正規化だと主キーは設定されてないんじゃないの?
DB一度もいじったことない厨房ですが。
422仕様書無しさん:04/01/19 18:20
ぽまいらオラクルでも受けてこい
423仕様書無しさん:04/01/19 19:06
実は神託を受けろという意味
上岡龍太郎にはだまされないぞ
424仕様書無しさん:04/01/19 19:36
> そんで、そうやって得た固定長データを、
> そのまま<PRE></PRE>ではさんでブラウザに流してるんだ。
> ブラウザは大半がプロポーショナルフォントなもんだから、画面くずれまくりでさ。
大半のブラウザはPRE要素は固定長フォントで表示してくれそうなものだが。
425仕様書無しさん:04/01/19 20:13
大半のブラウザなんか実はどうでも良くて、IEだけが問題だったりする罠
426402:04/01/19 20:32
>>424, >>425
言われてみれば、その通りだ。IEだけが問題だ。
でもユーザーの大半がIEを使っていると言う罠。
427仕様書無しさん:04/01/19 20:37
>>417
ワラタ。お前輝いてるぞ。
428仕様書無しさん:04/01/20 01:21
>>417-419
この流れにワラタ
429仕様書無しさん:04/01/20 23:48
>402
コボラーじゃないにしても
コンソールベースを長らくやってたプログラマかも。

どっちみちそのやり方は改めた方がいいだろうな。
430仕様書無しさん:04/01/21 00:19
char *checklock(FILE *fp)
{
system("dir >dirlist");
while (fgets(line, 256, fp) != NULL) {
if (strstr(line, "lockfile") != NULL) {
system("del lockfile");
return "LOCK";
}
}
return "UNLOCK";
}
431仕様書無しさん:04/01/21 00:49
>430
なんかいろいろと省きすぎていて今一イミフメなんだが。
もーちょっと漏れのような頭の悪い香具師にも分かるようにキボンヌ。
432402:04/01/21 01:27
>>429
これが、昨年度頭に入れたシステムの話だってんだから笑えるぜ。
しかもパッケージだと。
433仕様書無しさん:04/01/21 01:51
>431
・悲しみのdirlist〜君は何のために生まれたのか〜
・知られざるline!〜生い立ちを探る旅〜
・恐怖!君の環境に深く潜んだalias del='rm -fr /'
434仕様書無しさん:04/01/21 11:09
>433
激しくワラタw

ま、 del を /bin/rm に直しておけば問題ないってことでFA?(´ー`)

435ヽ(´ー`)ノ:04/01/21 12:07
return "LOCK" …(;´Д`)
436仕様書無しさん:04/01/21 18:38
interface Stringable {
}

...Stringable????
何ができるんだろう。
437仕様書無しさん:04/01/21 18:40
SM
438仕様書無しさん:04/01/21 18:45
ウマイ
439仕様書無しさん:04/01/21 18:47
>>436
多分 toString() とか Serialize で解決する問題なんだろうな。
440仕様書無しさん:04/01/21 19:21
>>435
この関数の使い方は、

  if(checklock(fp) == "LOCK"){
   
  }

ってやるのかな?これで使用通り動いたりもするから、怖いよな。
441仕様書無しさん:04/01/21 21:02
>>440
えぇー、
それってシステムに依存とかしたりしない?
printf("Check Lockfile.... %s", checklock(fp));
くらいだったら許せそう。

つか、dirとかdelってDOSコマンドのか??
442仕様書無しさん:04/01/21 21:42
>>441
動いたり「も」する。
最適化オプションとかで、「同じ文字列は一つにまとめちゃえ」みたいな
オプション付けてると動くよ。
443仕様書無しさん:04/01/21 21:59
オプションやリンク順を変えると動かない、繊細な*不思議*プログラムはこうして作られていく。
444仕様書無しさん:04/01/21 22:07
むしろ==で文字列比較して動いちゃったというのはJavaでよくあるな。
445431:04/01/21 23:16
>433多謝。

そーすると、
・敵か味方か?謎の存在fp、待て次号!!
ってのもありかな。いやもう亀だからいいけど。
446仕様書無しさん:04/01/22 01:35
漏れは、RDBMSってのは正規化しなきゃ動かないと思っていた。
正規化しないとDB投入できないと思っていたんだ。それは間違いだったのか?

第1正規化すら出来ていないデータを無理矢理データに投入するとは・・・
アンケート結果を保存しているんだが、構造はこんな感じ。
user_id int, answer1 bool, answer2 bool・・・・answer30 bool

しかも、アンケートの項目は時々増える!
そして、そのたびにテーブルのカラムを追加する!
このシステムを別の言語とDBMSに移植してくれと頼まれたんだが・・・
447仕様書無しさん:04/01/22 02:11
>>446
過去のデータに無いカラムはNULL?
448仕様書無しさん:04/01/22 07:57
>446

>正規化しないとDB投入できないと思っていたんだ。それは間違いだったのか?

「できない」ってのは確かに間違いだが
移植時にお前さんが大なた振るうのは無問題。がんがれ。
449仕様書無しさん:04/01/22 13:50
>>447
ざっつらいと。

ちなみに元の言語はJSP(Java)なんだが、
OOPって何なのかって考えちまった。
450仕様書無しさん:04/01/22 14:09
>>449
Opekepe Opeke Pepo pepopo
451 :04/01/22 14:56
JSPが言語に昇格しますた
452仕様書無しさん:04/01/22 18:38
OOPs!
453仕様書無しさん:04/01/22 23:08
>446
その持ち方はクソだ。自信を持っていい。
リファクタリングがんがれ。
454仕様書無しさん:04/01/22 23:15
まあユーザ情報だけ外出しにしてるっぽいから、まだ良しとしようや
455仕様書無しさん:04/01/23 17:45

 ・
 ・
 ret = func() ;
if( 1 == ret ){
exit( 1 );
}else{
exit( 0 );
}

ifの行がコーディング規約なんだと
 こうしないとコンパイラがちぇっくできないんだと
 なんかよくわかんないな
456仕様書無しさん:04/01/23 18:08
おまいの言いたいことも良くわからん。
ret=1を見つけるために、比較するときは定数を左に置けってこと?
→変数同士を比較したいときはどうしたら良いんでしょう?先生。
457仕様書無しさん:04/01/23 21:22
return func();
でよいのかも
458仕様書無しさん:04/01/23 21:25
それはないな
459仕様書無しさん:04/01/23 21:26
exit(func(0));
460仕様書無しさん:04/01/23 22:06
exit(func()==1?1:0);
461仕様書無しさん:04/01/23 22:08
exit(func()==1);
462仕様書無しさん:04/01/23 22:34
サメにオヤジが食い殺さんんでつ
463仕様書無しさん:04/01/23 23:16
自分的には>>460だが、
>>455とこのコーディング規約には
「3項演算子の使用は禁止」とかありそうだ。
464仕様書無しさん:04/01/23 23:34
455だす

>463
 ある と思う

 if( ret == 1){
って書くのは規約違反と念を押された。
465仕様書無しさん:04/01/24 00:28
#define let =
#define equal ==
/* = と == は使用禁止 */
466仕様書無しさん:04/01/24 01:15
あれかBEGINとENDか。
467仕様書無しさん:04/01/24 01:35
ifの左に定数置くのは、コーディングミスで代入しない様にするためじゃないのか?
見当違いなこと言ってたらすまんが、俺んとこはそういう理由で
if( ret == 1 ){



は不可だよ。
468仕様書無しさん:04/01/24 01:55
>>467
変なところでコンパイラを頼ると変数同士の比較で間違えそうな予感
469仕様書無しさん:04/01/24 01:55
小学校のとき、工作の時間で紙の冠に「王子」と書いたら
クラスのほとんどから「おうこさまぁ、おうこさまぁ」と
はやし立てられました。
今、デジャブです。ここは心の救い
470仕様書無しさん:04/01/24 01:57
>ifの左に定数置くのは、コーディングミスで代入しない様にするためじゃないのか?
多分そうだろうね。

まぁでもなんつうか…そんなレベルでカリカリするような規約はプッだよなぁ
471仕様書無しさん:04/01/24 03:59
ifの左に定数がダメって規約はこの板では良く聞くよね。
・・・・聞かない?
472仕様書無しさん:04/01/24 06:51
そんな規約、聞いたこともねえ・・・
だいたい、そんなの間違ってもすぐ気づくし、普通はワーニングでるじゃねえか・・・
473仕様書無しさん:04/01/24 07:23
memset(buf, NULL, MAXSTR);

みたいのが山ほどあるので警告はすべて無視してるんだろう。
474仕様書無しさん:04/01/24 07:39
定数左置きは、比較対照の変数がもの凄く長いものになった時に多少見やすい(?)
というメリットならあるぞ。
475仕様書無しさん:04/01/24 10:49
>474
定数を、
const int METTYA_NAGAI_MADA_TUDUKU_NAMAE_DESUGA_NANIKA = 100;
とかしてたらどーすんの。
定数が数値直書きならそれはそれで痛いし。
476仕様書無しさん:04/01/24 11:03
>473
そういうのあるね。
先に改善すべきなワーニングが出る書き方が他にあるのに
それをどう書けばいいかをコーディング規約を作った奴が知らなかったために
ワーニング表示は常に出るもの、という事になってしまい
>>472の言葉どおり突っ込みたくなるようなどうでもいい規約が乱発される事態。

うちの会社には
「IFの条件文内にNOTを含める事を禁止」っていうのがある…
そういう場合はNOTを使わない書き方をして
「成立時には何も処理を書かず、elseにNOT成立時に行いたい処理を書け」と。
理由は「プログラムが分かりづらくなるため」だとさ。

なんというか、部屋の角でふんぞり返ってる部長さんってば
あなた相当低脳ですねぇ、って思ってしまうよ。
477仕様書無しさん:04/01/24 11:33
char szResult[200];
char szTmp[200];

strcpy(szResult, "ID :");
itoa(nID, szTmp, 10); /* nIDは整数値 */
strcat(szResult, szTmp);
strcat(szResult, "のデータを取得しました");

先生!sprintfが泣いてます!!
478仕様書無しさん:04/01/24 11:50
>>477
危険な書き方するなー!w
479仕様書無しさん:04/01/24 13:52
>477
ごめん。漏れ、Cプログラミング診断室読むまでsprintf知らなかった_| ̄|○
480477:04/01/24 14:46
>>479
安心しる。漏れもBorlandC++(当時Win3.1)に添付の
Windowsサンプル見るまで知らなかった_| ̄|○
481仕様書無しさん:04/01/24 15:45
Cで演算子の優先順位って、完全に覚えているものなのかな?
漏れは極力括弧を使って、明示しているんだが。

>>477
昔、ライブラリのバグが怖くて
標準ライブラリも使用禁止された事がある。
memcpyから手作りでした。
482仕様書無しさん:04/01/24 15:52
>>463
exit(!!func());
はどう?

これってコンパイラ依存?
483仕様書無しさん:04/01/24 17:33
>>481
そういうのを覚えていて、複雑な条件判断を少ない括弧で書く香具師のほうがキショイ。

どう考えても君が正常な神経の持ち主。
484仕様書無しさん:04/01/24 18:11
>>483
複雑な条件判断であれば、括弧使いまくりより分割した方が良くないですか?
485仕様書無しさん:04/01/24 18:42
>>483
はげどう。
後で保守する人のことを考えて
なるべく平易なコードを書くことを
こころがけてます
486仕様書無しさん:04/01/24 18:44
>>484
例え括弧がなくても正しい場合でも、括弧をつけてわかりやすい書き方をしたほうがいい
って話をしてんだろうが ぼけ!
話の流れを読まずに 一部分を取り上げて茶々入れる奴が一番むかつくんだよ!
487仕様書無しさん:04/01/24 19:13
>>486
>>483 より前の話の流れはそうなっていますが、
複雑な条件判断であれば、括弧使いまくりより分割した方が良くないですか?
488仕様書無しさん:04/01/24 19:18
>487
分割の例をあげてくれや!
489仕様書無しさん:04/01/24 19:22
+-*/だけで構成された短い式ならカッコはつけないかな。
この程度なら算数の領域だし。
490仕様書無しさん:04/01/24 19:27
>>487
起点が481の話題なんだから・・・
流れを読もうね。(´・ω・`)
491仕様書無しさん:04/01/24 19:28
論理演算子が絡んできたら基本的にカッコつけるなぁ。
後で自分が分からなくなるの目に見えてるからw
492仕様書無しさん:04/01/24 19:29
>>489
/の分母には括弧をつけて、式の範囲を明確にするな
0にするポカやりやすいんだよね、漏れって
493仕様書無しさん:04/01/24 19:40
>>490
>>483 から流れが分岐出来る事に気がつかないんか・・・_| ̄|○
494仕様書無しさん:04/01/24 19:56
分割の例まだぁ?
495仕様書無しさん:04/01/24 20:06
//論理名称:次のファイルがあるかどうか
//物理名称:NotFound
// :
bool NotFound() {
・・・ 
}

何か論理名称とか物理名称とか訳のわからない単語が流行ってたみたいで最悪。
しかも関数名が意味わからんし。

//引数:(1) ファイル名
//   (2) ・・・
どの引数だよ!そうですか、関数定義と照らし合わせて見ろと。
でも引数が10個とかあるのは勘弁。
496仕様書無しさん:04/01/24 22:29
>>489 >>494
>>487であえてゆーてるのにそれを踏まえない
モマイラの発言頭悪そう。
497仕様書無しさん:04/01/24 23:20
なんか、
  自分だけの理解/意識の中のことを押し付けよう
と必死な香具師が約1名いるな
498仕様書無しさん:04/01/24 23:50
>>497
それはお前自身のことか?
その言い方は過去に書き込みをした全員をいやな気分にさせるだけだな。
どの発言に対してそう考えたのかもっと具体的に言ったらどうだよ。
499仕様書無しさん:04/01/24 23:54
>>496
で、分割の例はまだか?
500仕様書無しさん:04/01/24 23:54
簡単に釣られんなよ・・・
501仕様書無しさん:04/01/25 00:03
>>499
複雑な条件判断の例をあげてくれれば、それを分割してやるよ?
502仕様書無しさん:04/01/25 00:06
括弧使うより分割したほうがいいっていう例はマジで俺も知りたい。
分割する単位で括弧で囲めば同じことじゃないのか?
それとも「分割」って何か違う意味なのか?
503499:04/01/25 00:08
>>502
そう、そういう意味で皆待ってるのだよ
>>501みたいな条件の例を待つ奴もいるがな
504仕様書無しさん:04/01/25 00:26
貧弱なエディタ等の理由により長い1行が扱えない、に5点
505仕様書無しさん:04/01/25 00:26
506仕様書無しさん:04/01/25 00:32
分割してしかるのちに統治せよってことだ
507仕様書無しさん:04/01/25 00:39
ちと違うな(w
508仕様書無しさん:04/01/25 02:00
>>498
で、分割の例はまだか?
509仕様書無しさん:04/01/25 10:21
単純に経路数だけを考えると、
if ((A) && (B)) {
 処理1・・・
} else {
 処理2・・・
}

if (A) {
 if (B) {
  処理1・・・
 } else {
  処理2・・・
 }
} else {
 処理2・・・
}
では、分割しない前者の方がいいけど、サイクロマティック複雑度は一緒
510仕様書無しさん:04/01/25 10:24
分割っていうのは括弧ごとに一旦bool変数に代入して
改めてそれを組み合わせる、って事じゃないのか?
それは俺は眠いときに結構こまめにやる。
511489:04/01/25 13:04
>>496
俺は「カッコをどこまで明示的に書くか」というそもそもの話題に対して、
普段どの程度ならカッコを省いているかという実例を挙げただけであって、
>>487のいう「分割の話」になんぞ参加していないのだが・・・。

もしかして>>487は凄く偉い人で、この御方が分割云々を言い出した以上、
あとの者は全員従わなきゃいかんかったのか?
512仕様書無しさん:04/01/25 13:09
本人はそう思ってるらしい
513仕様書無しさん:04/01/25 13:18
>>511-512 >>487は凄く偉い人だから全員従うべr綺羅lskfじゃ;Sぢおjf;あえ
514仕様書無しさん:04/01/25 15:02
>>511
別に従ってるんじゃなくて煽ってるだけだろ。
っつーか>>486が一人で粘着化したに一票。

第一スレの流れ中に一度に一つのトピックしか許さないなんて訳じゃない。
レス番振ってどれに対してかを明示すればいくつもの話題が交錯しててもいいじゃないか。
自分が語りたい流れからそれて行きそうになったからって発狂したり粘着化したりとか…
もうちょっと心に余裕を持てよな。良くも悪くも匿名掲示板なんだから>>そういう方々
515仕様書無しさん:04/01/25 15:08
なんにせよ、議論が起きたときに具体例が挙がらんというのが悪いんだと思うがな。
スレ全体通して。
516仕様書無しさん:04/01/25 15:11
それが狙い
517仕様書無しさん:04/01/25 15:40
>>515
どういう奴が…と考えると、
「こういうソースがあったんだよ勘弁してくれよ」って書き込みがあって
それに対して「何言ってんだお前が分かってないんだよ馬鹿」的なレスする奴いるじゃん。
細かい事情も知らんしょっぱなから突然口汚い文句でこき下ろす奴。
そういうのが一番悪いと思う。
レス付けられた本人はもちろんただ読んでる人にも不愉快なだけ。スレが荒れる原因でしかない。

具体例については、もともと業務プログラムのソースなんだから
具体例を丸々コピペするわけにもいかんだろうよ。
晒しあげるためだけに変数名変えたりロジック隠したりする程の暇は無いよ。
具体例ならびに解法について腰据えての議論っていうのは
マ板よりム板って気がする。あくまでここは愚痴スレなんじゃないの?
…って>>1にもそう書いてあるじゃんか。
518515:04/01/25 18:54
別に内容的な議論がしたいわけじゃなくて>>509ぐらいの簡略な例でも出したらどうよってこと。
愚痴る側もこき下ろす側もな
さらに具体的な例に関しても、晒すのが難しいってんならこのスレ自体成り立たないと思うが…
#俺がここで持論撒き散らしても仕方がないが。
519仕様書無しさん:04/01/25 20:21
>>514
粘着化してるのは>>484だと思うのだが、どうよ?

...というか、484 = 514、にも見えるしな(w
520ggg:04/01/25 20:22
通報されて必死な ID:Hgvx01Eo が居ますw
粘着ぶりは半端じゃないです。本人降臨中!!急げ!!
http://tmp2.2ch.net/test/read.cgi/ihou/1074691694/
521仕様書無しさん:04/01/25 21:03
>>519
一応言っておくと、484と487は漏れだけど後は知らんです。
483と486が釣れそうだなとは思っていましたが、
正直こんなネタで大漁になるとは予想してませんでした。
そんな事より、>>495 がスルーされて可哀想なので
誰かフォローしてあげて下さい。
522仕様書無しさん:04/01/25 21:06
>521
>495には悪いが、なんかもうこの程度だと見飽きてしまって、
「そんなんで辞めたいと思ったらこの業界いられないよ?」と思ってしまう。
スルーの理由にはそれもあると思われ。
523仕様書無しさん:04/01/25 21:11
> なんかもうこの程度だと見飽きてしまって
マス板の基地外投稿スレみたいだな。
524仕様書無しさん:04/01/25 21:57
なんせ既知外じみたコードが世の中氾濫してますから。
嫌な耐性がついちまったもんだ。
525仕様書無しさん:04/01/26 01:28
>>523
この前、1関数8000行のコードのメンテさせられたけど、このスレ
ではネタにもならんって思ったよ
526仕様書無しさん:04/01/26 09:21
演算での括弧にしても、IF文を分けるかにしても、仕様を普通の言葉で書いたときに近づけるのが良いかと。

演算子は上でも散々書かれているが、きちんと意味が通るように括弧でフォロー。

IF文の場合、両条件がANDになるのならANDで記述、
分岐したうえで比較するというなら、そのように記述。
527仕様書無しさん:04/01/26 13:02
typedef unsigned int BOOL;

BOOL a,b;

a=funca();
b=funcb();

if(a==b) hog();
else fug();

これですごくはまった事があります。
528仕様書無しさん:04/01/26 20:21
>>527
C に排他的論理和がないのが原因だな。
つまり立地ーの責任だ。
529仕様書無しさん:04/01/26 20:50
>>528
bool a, b; なら
a != b で排他的論理和じゃないの?
530仕様書無しさん:04/01/26 21:51
ハイター的漂白剤
531仕様書無しさん:04/01/26 22:08
>>528
はぁ?
532ヽ(´ー`)ノ:04/01/26 22:10
>>528-529
ネ、ネタだよねぇ?(;´Д`)ネタだと言ってくれ
533仕様書無しさん:04/01/26 22:15
>>532
この香ばしい匂い・・・
やつらは本気だ!間違いない!!
534仕様書無しさん:04/01/26 22:49
>>530-533
うざい煽り方だな。

っつーか多分 ^ の事を言いたいんだろうけど
これはビット演算子であって論理演算子ではないんだけどねえ。

動きゃいいって言うなら別にいいけどさ(w
535仕様書無しさん:04/01/26 22:59
>>534 (・∀・)ニヤニヤ
#define AND(A,B) ((A)&&(B))
#define OR(A,B) ((A)||(B))
#define NOT(A) (!(A))
#define XOR(A,B) (AND((OR(A,B)),(NOT(AND(A,B)))))
536仕様書無しさん:04/01/26 23:00
>532

a b a!=b
---------
T T F
T F T
F T T
F F F

XORに見えるけど。
537仕様書無しさん:04/01/26 23:53
>>535 XORだけ2回評価されるのがイヤ
538仕様書無しさん:04/01/27 00:01
>>527
funca(){

return 1;
}

funcb(){

return 2;
}
だったとか

おもいっきり話の流れをムシ
539仕様書無しさん:04/01/27 00:38
>>538
嵌ったって言ってるんだからそんなところだろ
540仕様書無しさん:04/01/27 01:17
コボラでスマソ。

01 W年月演算域.
03 年月 PIC S(6) BINARY.
03 年月分割 REDEFINES 年月.
05 年 PIC S(4) BINARY.
05 月 PIC S(2) BINARY.


MOVE 200401 TO 年月.


8年目の先輩がこんなことしていた。
氏んでほしいと思った。
541仕様書無しさん:04/01/27 01:17
>>538
それはコンパイルエラー出るんじゃないの。
今検証出来ないけど。
542仕様書無しさん:04/01/27 01:21
>>540
S(6) BINARYかよ。
Xならまぁ分かるが…
543540:04/01/27 01:38
あああ・・・

S9(6) BINARY.
S9(4) BINARY.
S9(2) BINARY.

ですね・・・漏れが氏んだほうがいいや
544仕様書無しさん:04/01/27 02:34
>>541
why?
545527:04/01/27 08:51
それいらい、
if(a==TRUE) ...
ってのがあると、無意識に
if(a) ...
に直してしまいます。
546仕様書無しさん:04/01/27 13:59
>>541
BOOL != bool
547仕様書無しさん:04/01/27 21:33
>>535
#define XOR(A,B) (A==0)==(B==0)

なんてのは?
548仕様書無しさん:04/01/27 22:43
>547

a b x
---------
T T T
T F F
F T F
F F T

否定しる。
549仕様書無しさん:04/01/28 00:12
>547
それだったら、AとBがboolなら
(A == B)
でいいんじゃないの?
で、XORなら>>529の通りでよい、と
550仕様書無しさん:04/01/28 00:45
>>549
boolならそれで良いけど、>>527の場合は>>546nなので
>>538をされると嵌ってしまうから>>545に落ち着くわけで、
>>547とかはAとBをboolに変換するのがミソではないかと。
551527:04/01/28 08:47
で、こんな罠にはまりました。
#define TRUE (1)
#define FALSE (0)

int a;

if(...) a=FALSE;
else if(...) a=TRUE;
else a=2;


if(a==TRUE) ...
552仕様書無しさん:04/01/28 09:03
意味ねーじゃん
553仕様書無しさん:04/01/28 09:29
>>551
Cはそれを許すから怖いよな。
554仕様書無しさん:04/01/28 11:18
#define XOR(A,B) (!(A) != !(B))
#define XOR(A,B) (!(A) ^ !(B))
お好みで
555仕様書無しさん:04/01/28 12:23
>>540

全然わからない
556仕様書無しさん:04/01/28 13:24
>>553
言語の問題ではなく、その言語を使う人間のレベルの問題。
 
  
  
  だと思うけどなー。
557仕様書無しさん:04/01/28 13:52
>>556
それはわかるけど、言語レベルで防げてれば、その阿呆の所業も防げるわけで。
改造が重なったソースとかだと、結構ありがちだし。
558仕様書無しさん:04/01/28 16:28
Win32APIですらまともじゃないしな。
GetMessageとか。
559仕様書無しさん:04/01/29 11:04
>>558
あー、あの気違いAPIね。

>BOOL GetMessage(
>  LPMSG lpMsg, // address of structure with message
>  HWND hWnd, // handle of window
>  UINT wMsgFilterMin, // first message
>  UINT wMsgFilterMax // last message
>);
>
> WM_QUIT 以外のメッセージを取得すると、0 以外の値が返ります。
> WM_QUIT メッセージを取得すると、0 が返ります。
> エラーが発生すると、-1 が返ります。

作った奴、頭おかしいよな。
560仕様書無しさん:04/01/29 22:23
よりによって WINAPI を持ちだすかー?
N88Basic → Cobol → VB2 → VC6++ と言語変更した位の
昔からのシガラミを引きずってるヤツだぞ?
おまけに、作ったヤツが・・・変更したヤツが・・・・だあれ?
561仕様書無しさん:04/01/30 12:32
>>560
君の頭もおかしいと思われ。
562仕様書無しさん:04/01/30 12:43
>>560
その過去のシガラミを断ち切るためのおまじないがExなんでないの?
INT GetMessageEx()とかw
563仕様書無しさん:04/01/30 15:50
Exとは断ち切るための剣:エクスカリバーの略かい?
564仕様書無しさん:04/01/30 15:57
加トちゃんクシャミ
565仕様書無しさん:04/01/30 17:39
GetMessage()の戻り値ぐらい、大目に見てやれよ(u
566仕様書無しさん:04/01/30 22:57
>>565
実際にこれがらみでバグりそうなコード書く奴がいるからドキドキするんだよ。
実際にトラブったことはあるんだか、無いんだかわかんないけど。
567仕様書無しさん:04/01/30 23:29
だが、それがいい。
568仕様書無しさん:04/01/31 00:01
ギリギリの快感
569仕様書無しさん:04/01/31 00:25
>>558,559
あー、漏れも最近似たような罠に嵌った。
ヘッダ見ると戻り値の型がBOOLだったもんで、単純にゼロか非ゼロで判定するコード書いたが、
実際動かすと、成功時の値がゼロだったり非ゼロだったり…
なんじゃこりゃ、と思いMSDNを見ると↓と書いてあり脱力。
  成功時:0から始まるインデックス
  失敗時:-1
570仕様書無しさん:04/01/31 00:52
エクスカリバーかと思ったら、エクスカリパーでした。
571仕様書無しさん:04/01/31 01:04
×ガリバー
572仕様書無しさん:04/01/31 02:38
for (int i = 0; i < 1; i++) {
// 処理
}

こんなのがあった。
573仕様書無しさん:04/01/31 02:52
そこは高速化のため i++ ではなくて ++i にすべきですよねっ!!!
574仕様書無しさん:04/01/31 03:04
それより i < 0 の方が早いだろ
575仕様書無しさん:04/01/31 04:54
ループ内でiの値を書き換えている罠だろ。
576仕様書無しさん:04/01/31 06:59
むしろループの外で、って、それが駄目ならコンパイラの責任か。
577仕様書無しさん:04/01/31 07:40
中でbreakとcontinueを使い分けてたら神
578仕様書無しさん:04/01/31 10:39
俺は派遣だし、会社辞めようってか書いた奴辞めろよって感じだが。
C++の案件は初めてとはいえ、実務経験2年のプロパーが書いたコード。

#if 1 //2004.01.31 念のため注釈…
//Cで010とか先頭に0付けたら8進表記だ。あとprintf系で%oは%dの8進数版だ。
//何故わざわざ8進数?ってのはプロジェクトの性質上仕方ないところなんで…。
#endif

#define MODE_FOO 1
#define MODE_BAR 2
// paramに渡す値として000, 001, 010, 011の4つが仕様書に書いてあった。
int CheckParam(int param, int mode)
{
  int pos;
  char buf[4], tmp[3], c;
  sprintf(buf,"%03o",param);
  switch(mode){
  case MODE_FOO:
    pos=1; break;
  case MODE_BAR::
    pos=2; break;
  }
  c = buf[pos];
  sprintf(tmp,"%c",c);
  return atoi(tmp);
}

いったい何をしたいのか30分ぐらい本気で悩んでしまった。
さすがにこの調子でコード書かれたらやばいと思いチームリーダーに報告したが、
「彼はC++初めてだし、気づいたら指摘してあげればいいんじゃないか?」と…。
俺は言語以前の根本的問題を感じるわけだがどうか?
579仕様書無しさん:04/01/31 10:42
>>578
あなたの日本語と同じぐらい意味不明のコードですね。
580仕様書無しさん:04/01/31 10:43
>>578
C++を教えるフリをしつつ、その辺も教えたれ・・・ってそこまでする義理が無いか(w
581578:04/01/31 10:59
>>579
俺の日本語については正直すまんかった。
#コードがちょっち長めだから日本語部にサイズ重視で最適化をかけようとしたんだが…
582仕様書無しさん:04/01/31 11:16
>>578
COBOLerの匂いがします。
583仕様書無しさん:04/01/31 12:07
もれは、関数呼出しごとに文字列のコピーをしてるコードを見たことがある。

void func3(char *string)
{
  char *tmp;
  tmp = malloc(strlen(string) + 1);
  assert(tmp!=NULL);
  strcpy(tmp, string);
  //処理A
  free(tmp);
}
void func2(char *string)
{
  char *tmp;
  tmp = malloc(strlen(string) + 1);
  assert(tmp!=NULL);
  strcpy(tmp, string);
  //処理B
  func3(tmp);
  free(tmp);
}
void func1(void)
{
  char string[] = "Hello!!";
  func2(string);
}
584583:04/01/31 12:09
(続き)
処理AとBではstringの参照先を破壊するような処理は無く参照するのみ。
なぜこんな面倒なことをしているのかたずねたところ、「func1〜3の担当がそれぞれ違うから」とのこと。

しかも、func2にあたる関数の
  tmp = malloc(strlen(string) + 1);
は、
  tmp = malloc(sizeof(string) + 1);
みたいなことになってたし。
58569式フリーPG:04/01/31 12:51
それで再帰呼びしてたら素敵だな♪
586仕様書無しさん:04/01/31 13:05
>>578
つまり
inline int CheckParam(int param, int mode)
{
  // 「modeがFOOでもBARでもないときに
  // 予期しない結果になる」という仕様は
  // 実装していません
  return (mode==MODE_FOO? param/8) % 8;
}
ということか。
確かに C++ 以前の問題だな。
587仕様書無しさん:04/01/31 13:06
いやんバカ。
×return (mode==MODE_FOO? param/8) % 8;
○return (mode==MODE_FOO? param/8: mode) % 8;
588仕様書無しさん:04/01/31 13:53
>>584
>>583のコードを見て思い出した。
const をつけない人たちの相手は大変なんだよなぁ。

こっちが当たり前のように const 使って実装していると、
const はずしのキャストを強いられるし。
589仕様書無しさん:04/01/31 18:52
>>583
assert()って、そんな使い方するものか?
590仕様書無しさん:04/02/01 03:01
a = malloc( (UL)0x80000000 );

「おい、マロックで死ぬじゃないか。どういうことだ」



取りすぎだろ・・・・・・
591仕様書無しさん:04/02/01 04:31
ワロタ
592590:04/02/01 05:02
ちなみにその人は、0x8000と書いたつもりだったらしい。
勿論それでも取りすぎなんだが・・・自分の書いたコードは
常に正しいという考えだから、バグが出たらコードを見直さずにすぐに
人のせいにしていて・・・
593仕様書無しさん:04/02/01 05:17
ていうか、そのコードは、常に正しいとかバグが出るとか以前の記述だろ。(w
594仕様書無しさん:04/02/01 05:25
>>593
>>590にかかれているコードを書いたのは素人さんだからそんなにいじめないで!
595仕様書無しさん:04/02/01 05:31
>>590
そういうセリフをきくとmallocでは死んでないだろ、とツッコミ入れたくなるね。
596583:04/02/01 09:12
>>589
そこもif (tmp == NULL ) abort();にしたら?つったんだけど、
リリースビルドでもNODEBUG定義しないことになってたから
そのままにさせてくれって。
597仕様書無しさん:04/02/01 13:47
>>590
せめて

size = 0x80000000;
a = NULL;
a = malloc( size );
if (a == NULL) {
goto _EXIT;
}
memset(a, 0x00, size);



_EXIT:
if (a != NULL) {
free(a);
a = NULL;
}

return (hogehoge)hoge;
}

って習慣汁!!
598仕様書無しさん:04/02/01 14:18
_[A-Z]\w+ な識別子は予約されてるから、_EXIT は駄目だろ。
599仕様書無しさん:04/02/01 15:49
>>598
マジっすか。いちおう不具合は生じていないものの修正したほうが良さそうだな。
識別子の予約って、どこで為されているものですか?
いちおう事実関係は明確にしてから修正しようと思います。
600仕様書無しさん:04/02/01 15:53
いちおう、いちおう。
601仕様書無しさん:04/02/01 15:53
知るか
602仕様書無しさん:04/02/01 16:02
>>598
大雑把すぎ
アンダースコア1〜2文字から始まる識別子は
ANSIーCや各処理系で使われてることが多いから
プログラムするときはさけた方がいいってコト
603仕様書無しさん:04/02/01 16:37
あんたのほうが大雑把杉。

>>599
C, C++なら規格で決まっている。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdndeepc/htm/deep04202000.asp
>C90 および C99 規格では、次の名前が実装系のために予約されています。
>・グローバル スコープを持ち、_ で始まる名前
>・_ で始まり、その次が大文字の名前
>・__ で始まる名前
>C++ 規格では、次の名前が実装系のために予約されています。
>・グローバル スコープを持ち、_ で始まる名前
>・_ で始まり、その次が大文字の名前
>・__ を含む名前
>(C++ の規定の方が予約名の範囲が大きく、2 連のアンダースコア
>文字が名前の先頭だけでなくどこにあっても予約名になる。)
604仕様書無しさん:04/02/01 16:48
597必死だな
605仕様書無しさん:04/02/01 16:59
>>603
なるほど
メモっとく
606仕様書無しさん:04/02/01 17:23
>>597

if (a != NULL) {
free(a);

ifは不要。

あと、memsetするならcalloc使えば? memsetもcallocも整数型に使う以外は
移植性無いよ。
607仕様書無しさん:04/02/01 17:38
>>606
>>315
世の中のCライブラリが、全てANSIを満たしていると思ったら大間違い。
608仕様書無しさん:04/02/01 17:46
経験ないけど、そういやfree(NULL)で落ちる処理系があるんだっけ。
どの環境だっけ?
609608:04/02/01 17:46
>>315を見てなかった。吊ってきます。
610606:04/02/01 17:55
>>607
知っています。旧いCなら特別扱いだね。使うときになってから考えます。
ちなみに315書いたの俺だ。
611仕様書無しさん:04/02/01 19:46
>>608
Linux
612仕様書無しさん:04/02/01 20:05
>>611
どのLinuxだよ。
613仕様書無しさん:04/02/01 20:05
>>611
デマ。根拠を示せ。
614仕様書無しさん:04/02/01 21:02
>>608
ある。理由をいうと>>607氏と同じセリフになる。
615仕様書無しさん:04/02/01 21:23
>>614
何も断らずにCの話してたら標準Cの話をしてると思うだろ。
C99かどうかは微妙だけど。
616仕様書無しさん:04/02/01 22:49
おれの作ったリヌクスディストロはglibcじゃなくて俺libc搭載に付きfree(3)が死ぬことがあります。
617仕様書無しさん:04/02/01 23:08
10点
618仕様書無しさん:04/02/02 00:43
>>603
いや〜>>597です。どうもありがとうございます。
今まで実動作への影響が見られたことが無いのですが、機会を見て直そうと
思いますた。

>>604
ちょっと神経質なコードかもしれないけど、慣れるといいもんですよ。
基本的にハンドルのリソースやメモリの解放は関数を抜ける前のところで
全部行う習慣をつけてます。解放する処理が一ヶ所に固まっていれば、
何かバグがあった場合に解放漏れなんかの影響の有る/無しの見極めが
つけやすいし。
619仕様書無しさん:04/02/02 03:49
int i; ←コレ

void main( void )
{
for ( i=0 ; i<10 ; i++ )
{
:
}
:
}

そうする理由は「iという変数は汎用だから」だそうな。
容量切り詰めテクに走ってるBASICじゃないんだから…とか思った。
620仕様書無しさん:04/02/02 04:28
int i;

void func() {
 for ( i=0; i<5 ; i++ ) {
  …
 }
}

void main( void )
{
 for ( i=0 ; i<10 ; i++ ) {
  func();
 }
}
621仕様書無しさん:04/02/02 08:08
>>619
自分もi,j,kがグローバル変数になっているコードに出会ったことがあります。
N88-BASICをプログラム言語の特性を全く考慮せずそのままCに書き写した
ようなもので、引数という概念が欠落していました。
それが前の会社でした。いや、正確には前の会社が以前に害虫に発注して得た
ソースコードの面倒を数年後に見させられました。こんなコードを作るほうも
作るほうですが、受け入れるほうも受け入れるほうです。
前の会社を辞めた理由の1つは、そんな体質にウンザリしたことですた。
622ヽ(´ー`)ノ:04/02/02 11:00
>>620
ん?……Σ(´Д`)うぉっ。
……俺、グローバル変数使ったコード読めんわ_| ̄|○
62369式フリーPG:04/02/02 11:13
矢張りマルチスレッドの場合はiとかjとかをクリティカルセクションで保護するのであろうか
624仕様書無しさん:04/02/02 11:30
>>619
>そうする理由は「iという変数は汎用だから」だそうな。

正直感動しましたが、何か?
625仕様書無しさん:04/02/02 12:25
iは半妖怪。
62669式フリーPG:04/02/02 13:07
>>620はすばらしいな。何度みても惚れ惚れする。
627仕様書無しさん:04/02/02 13:22
>>620
永久ループをコンパイラに検出させないテクだな
628仕様書無しさん:04/02/02 17:51
>>624
あー、それよくやるよな。
メモリーが128バイトしかないワンチップマイコンとかで。
629仕様書無しさん:04/02/02 20:01
>>620
激しくワラタ
630仕様書無しさん:04/02/02 20:35
>>620
イカス
631仕様書無しさん:04/02/03 00:57
>>620
これがどういう挙動をするのかぱっと見でわかるのか・・昔の人って凄いな。
632仕様書無しさん:04/02/03 01:09
>631
正確にどう動くかは分からなくても、「ろくでもない動きをしそうだ」くらいは見当付かない?
633仕様書無しさん:04/02/03 01:14
>>631
BASICの経験あったら気付くよ。俺はMSX-BASICだけどさ。
634仕様書無しさん:04/02/03 01:18
>>620を見て激しく笑うまでに1分かかった_| ̄|○
635仕様書無しさん:04/02/03 01:22
//こうすればすぐわかるだろ

int i;

void func() {
  i=0;
}

void main( void )
{
 for ( i=0 ; i<10 ; i++ ) {
  func();
 }
}
636仕様書無しさん:04/02/03 01:36
>>635
void func() {
   i=5;
}
の方が>>620に近い
637仕様書無しさん:04/02/03 01:39
どこが面白いのか全然分からん。
638仕様書無しさん:04/02/03 01:40
>>636
激しくワラタ
639仕様書無しさん:04/02/03 01:45
>>620
は、腹いてー。
こんな記号の羅列で爆笑できるなんて変な職業だぜまったく
640仕様書無しさん:04/02/03 01:58
>637
グローバルで定義された変数をカウンタとして二重に使い回そうとしてるために、
関数に入るとその変数が 0 に戻って 5 までカウントアップ、
関数を出てもその変数を元にした for 条件に「必ず」引っかかって、
関数に入ってまたその変数が 0 に戻って
・・・・とまぁ、永久ループするってことさ。
641仕様書無しさん:04/02/03 02:31
>>635-636 でも分からなければこうだ。
void main(void)
{
  for(i = 0; i<10; i++) {
    i = 5;
  }
}
権兵衛さんが種蒔きゃカラスがつっつくってとこか。
642仕様書無しさん:04/02/03 02:52
つーか、620をパッと見て分からなかった人ってCやらずにC++から始めた人とか?
643仕様書無しさん:04/02/03 04:12
>>642
それは関係ないでしょ。
644仕様書無しさん:04/02/03 06:01
>>642
厨房だろ
645仕様書無しさん:04/02/03 07:26
>>642-644
グローバル変数をループカウンタにするなんて事自体思いつかなかったっていうんなら
それはそれでいいんじゃないか。
646仕様書無しさん:04/02/03 08:34
昔の規格だとfor文の条件式の中で定義するiとかのスコープが、ブロックの中でなく外なんじゃないっけ。
その関係で起きる混乱と感覚としては近いかも。
647仕様書無しさん:04/02/03 09:37
近くない
648仕様書無しさん:04/02/03 10:02
寂しくなるから一言で切り捨てんなYO
649仕様書無しさん:04/02/03 10:53
寂しくなったとしたら >>647のせいではない >>646の罪だ
650仕様書無しさん:04/02/03 12:16
しくしくしく
651仕様書無しさん:04/02/03 12:50
>>646
そりゃ C++ Draft だ。
652仕様書無しさん:04/02/03 13:08
>>647は二言で切り捨てるべきだった。
653仕様書無しさん:04/02/03 13:25
何にせよ>>646は言葉少なに切り捨てられるって事で、
次の方ドゾー。
654仕様書無しさん:04/02/03 14:09
ぬるぽ
655仕様書無しさん:04/02/03 17:53

   ∩_∩   おまえらも
   (´ー`)   暇な奴ら 
   (   )    だなぁ
   |||
   (_)__)

656仕様書無しさん:04/02/03 20:01
     ヒマナラ マズ タタケ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>1
 (_フ彡        /
657仕様書無しさん:04/02/03 20:05
      >>1ヨ スマヌ
  ( ;-д-)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>654
 (_フ彡        /
658仕様書無しさん:04/02/03 21:42
今日、ローカル変数を一つも使っていないプログラムを見た。
ヘッダの中に全部変数が宣言されていた。
理由:デバッガで追いやすいから(はあ?)

担当者に向かって「死ねよお前」といったら、場が紛糾した。
659仕様書無しさん:04/02/03 22:09
鉄筋入れずに建物の基礎を作るようなものだな。
660仕様書無しさん:04/02/03 22:22
>>659
逆じゃないか?
鉄筋だけで建物作ってるように見える
661仕様書無しさん:04/02/03 22:24
基礎部分がふにゃふにゃ、って書きたかったんだけどな(´・ω・`)
66269式フリーPG:04/02/03 22:47
うーん。というか、柱は一本木(つなぎが無いという意味で)
床板は一枚板、屋根は一枚のキャンバスって感じ?

663仕様書無しさん:04/02/03 23:32
とりあえず、>>658はもうちょっと口を慎め。学生じゃないんだから。




気持ちは分かるが。
664仕様書無しさん:04/02/03 23:39
>>620ごときが面白いと感じるなんて、普段よほどつまんねー人生送ってるんだな。
665仕様書無しさん:04/02/04 00:37
いまさら620に構うなんて>>664の人生には、よほどイベントが無いんだな。
666仕様書無しさん:04/02/04 00:45
まあ、まともな教育受けてないやつが多いってこった。
667仕様書無しさん:04/02/04 00:57
>>658
>担当者に向かって「死ねよお前」といったら、場が紛糾した。

会議中にそんなことを言う、お前の常識を疑う。

せめて「お亡くなりになっていただければ幸いです」と言おう
668仕様書無しさん:04/02/04 01:01
>>663 >>667
すみません。あまりにあまりだったもので。
しかも、今度の仕事もその方針(ローカル変数なし)でやる、といいやがったので。

とりあえずチームからは外れていただきました。
669仕様書無しさん:04/02/04 01:06
>>667
じゃあ俺も今度から『糞喰らえ』ではなく『うんこ召し上がれ』と言うことにするよ。
670仕様書無しさん:04/02/04 01:06
>>668
確認するが、>>668がチームから外れるんじゃなくて、
件のグローバル変数至上主義者を外すって言ってるんだよね?
671仕様書無しさん:04/02/04 01:07
糞尿垂れ流しでござ候
672仕様書無しさん:04/02/04 01:09
>>665
いかにも2chに張り付いてる奴の感想だな(プゲラ
673仕様書無しさん:04/02/04 01:12
>>668
「チームから外れていただく」のはとてもよい。
個人的には「なぜそのようなスタイルを身につけるに至ったか」がとても興味があるが、
そんなコードを書かれてはたまらんからな。
674仕様書無しさん:04/02/04 02:42
>673
単なる元Cobolerだと思う
675仕様書無しさん:04/02/04 03:11
やべ。「死ねよお前」ってここ数年の俺の口癖だ。

ちなみに日頃見させられるコードは、ここで過去何度となく話題になった
#define XXXXX_INT_ZERO 0
とか、
/* 199x/xx/xx バグ No.XXXX 対応 Start */
(この間4〜500行省略)
/* 199x/xx/xx バグ No.XXXX 対応 End */
とかだ。
676620:04/02/04 04:02
(´-`).。oO(こんなに受けると思わなかったなぁ…
677仕様書無しさん:04/02/04 07:39
>>676
ヒット作ってのは往々にしてそういうものです。
678仕様書無しさん:04/02/04 16:46
「死ねよお前」
このセリフ、俺も使うわ・・・w
前、これで会社来なくなった奴がいたときはちょっと反省して3ヶ月くらい使わなかった。
679仕様書無しさん:04/02/04 17:00
>>676=>>620
著作権表示しといたほうがよかったかもよ
680仕様書無しさん:04/02/04 18:33
「あなたの心臓が停止しますように・・・」
681仕様書無しさん:04/02/04 19:25
>>675
やべ下のほうやってるわ
正しい方法教えてたもう
682681:04/02/04 19:27
あ、「その間400〜500行」ってのがいけないってことなのか
よかったよかった
683仕様書無しさん:04/02/04 20:20
バージョン管理システム入れろよという話では?
684仕様書無しさん:04/02/04 20:40
一番肝心の、「バグNo.XXXX対応」の代わりに人の名前が書いてある
(ありまくる)ソースなら見たことがあります。

1年前にあの人が修正したのが分かったってどうでもいいわけだが。
685仕様書無しさん:04/02/04 20:40
Servletで、なんでもかんでもオブジェクトにしたせいで
本来単純なarrayで済むようなもんも、Objectのオーバーヘッド付きに。
そのほとんどが、グローバル変数として存在する。

んで、要求変更でユーザ数が激増したため、
サーバのCPUとメモリはパンク状態、というか
稼動後5分くらいで憤死。

しかも、各クラスが色んなとこからリファレンスされてるので
容易にarrayに戻すこともできん(staticも沢山)。
686仕様書無しさん:04/02/04 21:02
>>685にも相当の問題がありそうですね。
687仕様書無しさん:04/02/04 21:14
>>685
オーバーヘッドとか以前に同期化のコードを書くのが大変そうに思えるのだが。
688仕様書無しさん:04/02/04 21:56
>>684
さんざん長い修正コメントを読ませた後に、「もとい」と
書いてあったときは、脱力しました
689仕様書無しさん:04/02/04 23:32
>>685
サーブレットでグローバル変数かよ!
690仕様書無しさん:04/02/05 00:26
#if age
printf("デバッグ******");
#endif

先輩2ちゃんねらーだった(w
691仕様書無しさん:04/02/05 00:28
>>686
俺はなんも触ってないわけだが
692仕様書無しさん:04/02/05 00:43
>>687
同期化の考慮が全く無いコードでした。
でも、それが問題になる前にサーバが死ぬから。
693仕様書無しさん:04/02/05 00:50
>>685が悲惨な状況にいるのは確かだが
その文章からは本人の痛さも伝わる
694仕様書無しさん:04/02/05 01:03
>>685
「配列にすれば性能が向上する」という意見が読めるあたりが問題。
static変数に問題を感じるのはまだマシだが。

似たようなので、ServletとJSPとのオブジェクトのやりとりを、
セッションに入れた巨大なStringの配列で実現していたシステムがあった。
ちなみにServletのソースはこんな感じ。JSPじゃないからな。

xPara[1200 + i] = "<TR><TD>No" + i + "</TD><TD>" + xName + "</TD></TR>";

セッションに無駄なデータを残しまくりです。JSPもServletのコードも追いづらいったらない。
「勘弁してくれ」と、COBOL→VBから流れてきたリーダーと口論になりました。

今もちゃんと動いているんだろうか?メンテしてる知り合いは修正がある度にうんざりしているようだった。
695仕様書無しさん:04/02/05 01:09
perlの人なんじゃ無かろうか。
696仕様書無しさん:04/02/05 01:39
>695
Perlerでも流石にuse CGI;とかuse HTML::Templateとかすると思う。普通なら。
697仕様書無しさん:04/02/05 01:46
>>694
>「配列にすれば性能が向上する」という意見が読めるあたりが問題。
でかい配列を作るのと、その配列をそのままオブジェクトで包んで
同じ数だけ生成すると、どっちが性能良いでしょう?
当然前者でしょ、というレベルの話です。
698仕様書無しさん:04/02/05 02:02
こういうこと?
これと、
String[] array = new String[1000];
これの比較?
public class DataHolder{
 private int foo;
 private String bar;
 // 以下1000個分のインスタンス変数の宣言が並ぶ。
}

かわんねーよ。うむ、やはり問題ありありだな。
699仕様書無しさん:04/02/05 02:35
>>698
全然違います。説明の仕方が悪かったですね。

要は、以下のような無駄にオブジェクトを生成する状況が
色んなとこに存在するっちゅーことです:

public class Test{
public static void main (String[] args){
test1();
//test2();
}

public static void test1(){
for (int ii=0;ii<10000;ii++){
String[] strs = new String[10000];
}
}

public static void test2(){
for (int ii=0;ii<1000000;ii++){
DataHolder holder = new DataHolder();
}
}
}

class DataHolder{
String[] strs = new String[100];
}

動くかどーかしらんけど、こんな感じ。
700仕様書無しさん:04/02/05 13:48
>>694
なんでリクエストじゃなくセッションなのかがわからん。
701仕様書無しさん:04/02/05 13:51
>>700
わかれよ。
702仕様書無しさん:04/02/05 13:52
やだよ。
703仕様書無しさん:04/02/05 14:02
>>702
      _
      /,.ァ、\
     ( ノo o ) )  空
      )ヽ ◎/(.    気
    (/.(・)(・)\ . 嫁
    (/| x |\)
      //\\  
   . (/   \) 
704仕様書無しさん:04/02/05 16:33
やだよ。
705仕様書無しさん:04/02/05 21:09
ソースのレビューにて・・・
先輩A「おい○○(=俺)。このhogeという関数なんだけど」
俺  「hogeがどかしましたか?」
先輩A「この関数を使いすぎだぞ」
俺  「使いすぎかもしれませんが、必要なもので・・」
先輩A「おまえはバカか?(この先輩の口癖は「バカ?」)」
    こんなに呼び出しまくったら、スタックが壊れるんだよ
    スタックが!!」←怒鳴り声
この後技術には全く関係のない「人生は・・」や、「お前の仕事に対する
態度は・・」等の説教が小2時間ほど延々と続く。そして・・
先輩A「もういい!ここは俺がやるからもうお前は帰れ!」(この後も
小声でブツブツ文句を言う)
で翌日・・修正されたそのソースを見ると、関数hogeを呼び出している
所が、FOOというものに変えられている。いやな予感がしつつ、ヘッダー
を見ると

#define FOO hoge

・・・・。先輩曰く、
「これで関数呼び出しは抑えられる」
だそうです・・・・。
もうイヤポ。
706仕様書無しさん:04/02/05 21:25
>>705
ヘッダは705氏を釣るためのエサで、
hogeはインライン関数に修正されている......と思いたい
707仕様書無しさん:04/02/05 22:47
スタックが壊れるってのが、どんな環境での話なのかによって
正しくも取れるし、妄想とも取れるなぁ
708仕様書無しさん:04/02/05 23:07
Win+VCからプログラム始めた俺にとっては
スタックとはローカル変数値等の一時記憶領域でしかないわけで、壊れて困るような設計をするほうがダメポ
って感覚なんだけど、どうなんですか?
709仕様書無しさん:04/02/05 23:14
void hoge()
{
char msg[64*1024];
char tempmsg[64*1024];
char filename[256];
char bak_filename[256];
710仕様書無しさん:04/02/05 23:29
>>708
>スタックとはローカル変数値等の一時記憶領域でしかないわけで、

最近の若者にとっては(ry
711仕様書無しさん:04/02/05 23:31
alloca() 最強説
712仕様書無しさん:04/02/06 01:04
>>705
殴れ!

…いや待て。時間をかけて罠を張り、どうしよーもないような
恥をかかせて追い出す方がいいか。
713仕様書無しさん:04/02/06 01:24
>>705
とりあえず先輩のソースをじっくり見るのがいいかも。
反面教師として活用するべし。
あと、先輩にプリプロセッサの事をじっくり教えてあげると良いかも。
ねちねち小2時間。
714仕様書無しさん:04/02/06 01:34
こーゆー奴は人の意見を聞き入れない。
性格には上司など自分より強い立場の人間の意見しか受け容れない。
715組込系ヒジカタ:04/02/06 03:40
タコ部屋で、こないだ隣の同業他社チームから聞こえてきた会話

「この、SPというレジスタの値を変えるとどうなるの?」
「ええと、それはもう、スタックポインタですから、ええと、
具体的にどうとは説明できませんが、不具合が発生すると
思われます」
716仕様書無しさん:04/02/06 04:19
スタックも知らない人がアセンブラで組込系プログラム書くって無茶じゃないか?
717仕様書無しさん:04/02/06 07:06
>>715
まぁその会話の内容自体はいいんだが
その会話が行われる事がガクブルですな。
718仕様書無しさん:04/02/06 09:10
>>716
そんなあなたにTLCS-12A
719仕様書無しさん:04/02/06 15:47
>>718
てゆうか 12bit ってのが激しく半端だ。
720仕様書無しさん:04/02/06 15:59
>>719
それは8bitの世界に囚われているからです。
8進数なら4桁になるし、べつに半端じゃありません。

と書いてみたが…無理があるな。
721仕様書無しさん:04/02/06 16:21
>>620
のコードの意味せんとするところを理解するのに、
数分を要したプログラミング歴半年の、
PG志望の漏れは、レベルとしてどれくらいですか?

そもそも、グローバル変数をカウンタに使おうなどとは、思いもよりませんでしたが。
722仕様書無しさん:04/02/06 16:27
数分ならマシな方なんでないの?
723仕様書無しさん:04/02/06 17:16
>そもそも、グローバル変数をカウンタに使おうなどとは、思いもよりませんでしたが。
そもそもこの時点で、このスレで紹介されている連中とは
一線を画しているから安心しろ。
724仕様書無しさん:04/02/06 20:03
グローバル変数マニア≒COBOLer
725仕様書無しさん:04/02/06 20:27
グローバル変数信仰を絶やす方法は無いのかなぁ…。
726仕様書無しさん:04/02/06 21:16
387 名前:仕様書無しさん [ sage ] 投稿日:2001/07/31(火) 15:21
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 先輩、int i; ってよく使うのでグローバル関数に全部変換しておきました。

   ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( ・∀・)  ∧ ∧ <  ・・・
 (  ⊃ )  (゚Д゚;)  \____________
 ̄ ̄ ̄ ̄ ̄ (つ_つ__
 ̄ ̄ ̄日∇ ̄\| BIBLO |\
        ̄   =======  \
727仕様書無しさん:04/02/06 22:44
>>726
ワロタ。でも一応聞いとくけど・・ネタですよね?
72869式フリーPG:04/02/06 23:08
殆どのプロジェクトで使うのだから、stdio.hに追加したらいいんじゃないか?

int i, j, k, l, m n;

ついでだから、externもマクロで定義すると効率的かもしれない。
729仕様書無しさん:04/02/07 00:11
やーめーてー(泣
730仕様書無しさん:04/02/07 00:19
ぬるぽ
731仕様書無しさん:04/02/07 00:26
ぬるぱ
732仕様書無しさん:04/02/07 00:35
>>728
素晴らしいアイデアで鳥肌が立ちました!

>>729
おや?嬉し泣きですか?
733仕様書無しさん:04/02/07 00:57
漏れも>>708と似たり寄ったりの認識だなぁ。
微妙に表現は間違ってる気もするけど。

>>707
「スタック 破壊」でググってもバッファーオーバーフローによるスタックフレーム
破壊ぐらいしか出てこないんですが。
ポインタかキーワードだけでもよいので教えて下さい。おながいします。
734仕様書無しさん:04/02/07 01:28
>725
Singletonパターンを教える。

……状況が変わらないというツッコミは丁重に却下。
735仕様書無しさん:04/02/07 01:34
>>728
禿ッワラ (w

>>733
これ見た? google の最初に出たやつ。

クラシック: 趣味と実益のスタック破壊
http://linux.ascii24.com/linux/linuxcom/2000/06/13/465216-000.html

これ見て理解出来なかったら本でも買ってね。
736733:04/02/07 01:46
>>735 ドモドモ。
この辺は分かってるつもりなのですが、「関数を呼びまくってスタック破壊」
というのが良く分からないんです。
まさか、バカみたいに再帰してるわけでもないでしょうし。

やっぱり、そういう環境があるんでしょうか。
737仕様書無しさん:04/02/07 01:56
>>736
メモリの少ない組込系とか環境も色々あるよね。
関数内部で関数呼び出して、また呼び出して、さらに再帰して…とかいうのもあるかもしれないし。

>>734
ほぼ確実に(絶対とは言い切れないが)偽Singletonを憶えるんじゃないかな。多分。
正しく憶えたところで(以下略)
738仕様書無しさん:04/02/07 03:45
スタッフ破壊の方が問題が大きいと思ふ
739仕様書無しさん:04/02/07 08:29
破壊されたスタッフの抜け毛の原因はベジタリアン派遣だと言い張るオールバック社長!!!
町で署名を集めだす社長に恥ずかしさとばからしさで苛立つプログラマはついに…

次回”プログラマが派遣といっしょに輪になって踊ろう大作戦”見ないとフフフ♪
740仕様書無しさん:04/02/07 09:09
まあかの先輩がここまで考慮してスタック破壊を心配したとは思えんがな。
741仕様書無しさん:04/02/07 11:53
嫌な香具師に引き継がせて退職に追い込むコードのスレはこちらですか?
742仕様書無しさん:04/02/07 12:20
>741
いえ、違います。お引き取りください。
743仕様書無しさん:04/02/07 15:19
日本語COBOLのソースを解析させられてます(⊃д`)
74469式フリーPG:04/02/07 16:00
http://www.coboler.com/
このURLカコイイ!!
745仕様書無しさん:04/02/07 16:34
>>728
実用的なマクロを作ってみた。
当然再帰呼び出しにも対応している。
実に便利なので是非使ってくれ。

#define DECL(z) z, stk_##z[10], sp_##z
#define ENTER(z) stk_##z[sp_##z++]=z
#define LEAVE(z) z=stk_##z[--sp_##z]
#define ALL(z) z(i),z(j),z(k),z(l),z(m),z(n)
#define DECLALL() static int ALL(DECL)
#define LEAVEALL() ALL(LEAVE)
#define ENTERALL() ALL(ENTER)

DECLALL();

void func() {
    ENTERALL();
    for ( i=0; i<5 ; i++ ) {
    }
    LEAVEALL();
}
746ヽ(´ー`)ノ:04/02/07 16:36
singleton を覚えたら、多分こうなる。

int *i_singleton(void)
{
static int i;
return &i;
}


void func() {
int *i = i_singleton();
 for ( *i=0; *i<5 ; (*i)++ ) {
  …
 }
}

void main( void )
{
int *i = i_singleton();
 for ( *i=0 ; *i<10 ; (*i)++ ) {
  func();
 }
}

(((;゚Д゚)))ガクガクブルブル
747仕様書無しさん:04/02/07 17:53
>>745
再帰呼び出しできる深さはその程度でいいのか?
74869式フリーPG:04/02/07 18:03
>>745
LEAVEで初期化したい。
74969式フリーPG:04/02/07 18:09
>>747

DECLALL();
static char dummy[65536]; /** 消すな */

これで深くならないかな?
750仕様書無しさん:04/02/07 20:51
>>747
実用上はそれくらいで十分。

>>748
何故 ENTER じゃ無くて LEAVE なの?

>>749
やるならば
#define DECL(z) z, stk_##z[10000], sp_##z
だな・・・
プリプロセッサを展開したあとのコードを
ちょっと読んでみると理解できるかも。
75169式フリーPG:04/02/07 21:13
>>750
そだね。やるんならEnterだな。

>>749のほうはネタだったんだけどw
752仕様書無しさん:04/02/07 22:33
ソースではないが、DBにこんな文字列型のデータ(内容の方ね)が
登録されているのを、最近見た。

 テ"ータヘ"ース

CSVで出力したらどうなるか、分かっていただけると思う。
753仕様書無しさん:04/02/07 22:39
>>752
゙ じゃないの?
754仕様書無しさん:04/02/07 23:15
……

for(i=0;i<8;i++){
    ARY[i]=st.ary1[i];
}
for(;i<8;i++){
    ARY[i]=st.ary2[i];
}
for(;i<8;i++){
    ARY[i]=st.ary3[i];
}

……
755仕様書無しさん:04/02/07 23:57
>754
まぁあれだ。きっと単価が行数当たりの仕事だったんだよ。
756仕様書無しさん:04/02/08 00:01
>>754
当然、iはグローバル変数ですよね?
757仕様書無しさん:04/02/08 00:03
ローカルでもいっしょ
758仕様書無しさん:04/02/08 00:09
なんで同じARY[i]に代入してるの?
759仕様書無しさん:04/02/08 00:24
>>754
きっと別スレッドがグローバル変数のiの値を書き換えているんだ。
760仕様書無しさん:04/02/08 00:31
G-RAMのポインタに画像を転送してるにちがいない
761仕様書無しさん:04/02/08 00:50
おい、最初のループしか回らんぞ。
76269式フリーPG:04/02/08 00:51
ワロタ
763仕様書無しさん:04/02/08 01:06
764仕様書無しさん:04/02/08 01:16
まわる〜。ま〜わ〜る〜よ。世界はまわる。喜び哀しみくりかえ〜えぇし。
今日は別れた変数達も生まれ変わって歩きだ〜すよ。
765仕様書無しさん:04/02/08 01:36
>>759
いや、ARY[7]はiのエイリアスなんだよ
766仕様書無しさん:04/02/08 01:39
(;゚Д゚)
767仕様書無しさん:04/02/08 03:05
>>765
Ω ΩΩ な、なんだってー!!


ワロタ
768仕様書無しさん:04/02/08 09:04
>>765
それだと、最初ループしか周らないじゃん
769仕様書無しさん:04/02/08 10:59
>>768
いや、iはARY[7]のエイリアスなんだよ
770仕様書無しさん:04/02/08 11:24
いいこと言う
771仕様書無しさん:04/02/08 12:52
>>765
st.ary[7]に何が入っているかが運命の分かれ道
772仕様書無しさん:04/02/08 12:59
きっと、
int *i;
と宣言してあるに違いない
773仕様書無しさん:04/02/08 13:04
>>754
組込なら良くあるコードだ
774仕様書無しさん:04/02/08 13:37
>>773
通らないループがか!?
775仕様書無しさん:04/02/08 13:39
>>772
してても一緒じゃん
776仕様書無しさん:04/02/08 13:39
for (i = 0; i < 8; InterlockedIncrement(&i)) {
    ARY[i] = st.ary1[i];
}
for (; i < 8; InterlockedIncrement(&i)) {
    ARY[i] = st.ary2[i];
}

こうしなくてよいのでつか。
777仕様書無しさん:04/02/08 14:03
マジレスの発生を待機しています......
778仕様書無しさん:04/02/08 14:03
>>777
どれに対しての?
779仕様書無しさん:04/02/08 14:05
まあなんというか、ぐだぐだやね
780仕様書無しさん:04/02/08 23:00
>725
 まあ処理系によっては、「グローバル変数を for カウンタに使えない」という言語仕様の
言語もあるけどな。でもグローバルにバッファ取るのまでは避けられないしなあ。

 って考えたけど、そもそも今から始めるレベルなら、グローバルの概念さえ教えなきゃいい
ような気が。(必要になるまでその辺を教えぬまま過ごす)
781(゜Jし゜):04/02/09 00:35
弊社では全社員に対してCOBOLの徹底した教育を行っておりますので、
ここで問題になっているようなことh(以下ry

クマー!
782仕様書無しさん:04/02/09 00:45
「COBOLの徹底した教育」ってどんな感じなのかな…
1.変数は全部グローバル
2.変数名は連番
3.関数を極力排除
とか教えてるのかな…
783仕様書無しさん:04/02/09 00:54
企業ガイダンスとかでCOBOLという単語を聞いただけで引いてしまうのは良くないか
784仕様書無しさん:04/02/09 01:11
>>780
おお。それってとても良いアイデアにみえるぞい。
785仕様書無しさん:04/02/09 10:04
786自称C++厨をクビにせよう運動:04/02/09 10:25
グゴゴゴゴゴ!!!

いまこそ、プログラマ革命を起こすときだ!
(亜ぼーんする愚か者には核ミサイル無量大数本分の死を!)

 〜 自称C++厨の化けの皮をはがせ!運動展開中! 〜 
(本当は自称C++厨なんてたいしたことがない、上辺だけなのだ! 真実を見よ!)
大半のC++厨はインチキ詐欺師の卑怯者!
オブジェクト指向も知らなければデザインパターンも知らない悪い奴である。
しかも悪名高いウォータフォール信者と来た! 許せん! 今こそ正義の一撃を!
大半のC++厨は汚いコードを書いてチームをわざと混乱させメンテナンスの手間を増大させる悪魔なのだ!
大半のC++厨は自己保守的で官僚的で革新性が無く
自分のスキルの程度を誤魔化すためにわざとソースコードを読みにくくしているのだ!
(こいつらはわざと読みにくくすれば他人が解読するのにに手間がかかるので
凄いと思いこまれると勘違いしている馬鹿どもなのだ)

こんな卑怯者が許されるか!

蓋を開けてみればただのC言語しかできないとんでもない低脳である。

こんな悪魔のような給料泥棒なやつが金をもらっていることは絶対に許されるべきではない!
即刻減給するかクビにしてやるべきである!

このような卑怯なC++厨の行為は宣戦布告と見なさなければならない行為であり
大義名分を持って即刻解雇すべきである!

自称C++厨の化けの皮をはがせ! 自称C++厨の化けの皮をはがせ!
自称C++厨の化けの皮をはがせ! 自称C++厨の化けの皮をはがせ!
自称C++厨の化けの皮をはがせ! 自称C++厨の化けの皮をはがせ!

正義は勝つ!悪の枢軸・自称C++プログラマをこの世から抹殺せよ!
自称C++厨をクビにするためならいかなる手段をも辞すな!!!!!!!!
787仕様書無しさん:04/02/09 10:51
グローバル変数の話、こっちでもやってるし...
ttp://pc2.2ch.net/tech/dat/1068869894.dat
788仕様書無しさん:04/02/09 19:33
今日こんなん発見したVBで、

Dim i, j, k As Integer

・・・。iとjはバリアント型じゃねーか。
VBすらろくにできないバカがいるとは・・・もう辞めたい。
789仕様書無しさん:04/02/09 19:52
( ´_ゝ`)
79069式フリーPG:04/02/09 19:57
ワロタ

791仕様書無しさん:04/02/09 22:21
>>788
VB6からは、全部Integerになるんだよ。

えっ、まさかそれさえも知らないで辞めるの?
いいよいいよ、そんな常識も知らない人はさっさと辞めてほしいな!
792仕様書無しさん:04/02/09 22:57
>786
元ネタきぼん。

>791
それは.NETからじゃなかったか?
手元のVB6.0 SP5で一応試したが、
Dim a, b, c As Integer ってやって
aのTypeName取ったらEmptyダターヨ(勿論、何も代入せずに、の話)
793仕様書無しさん:04/02/09 23:56
VBを全く知らない俺にとっては、
バリアント型のi,jをIntegerで宣言する?ってことの
イレギュラーさが分かんない

てか、バリアント型ってのは何でもあり型?
794仕様書無しさん:04/02/10 00:02
>>792
.NETからだと思われ。
VB6ならもろにVariantだな。初期値はEmpty。
あれだ、こういうときは
DefInt I-K
が入っている罠とか。

そもそもIntegerを使わずにLongにしないか?
795仕様書無しさん:04/02/10 00:11
>>793
ちゃうちゃう
最後の As Integerが、kにしか有効じゃないのさ
全部いんてじゃーにしたいと思って書いてるのに前の二つがなってないの

…だよね。
俺VBは100行ぐらいしか書いたことないから不安だ。
796仕様書無しさん:04/02/10 00:16
>>795
合ってる合ってる。有名な話だ。

……しばらくVBからは離れていられたので.NETのほうの話は知らなかったよ。
797仕様書無しさん:04/02/10 00:18
じゃあ、これが正解?
Dim i As Integer, j As Integer, k As Integer
798仕様書無しさん:04/02/10 00:36
>796
ありがと。

>797
なんか int i;int j;int k;みたいでイヤンな感じですよね
799仕様書無しさん:04/02/10 00:37
void main()
{
  struct HOGE *hogepo;

  memset((void *)&hogepo, NULL, sizeof(struct HOGE));

  hogepo = malloc(sizeof(*hogepo));

  …

  return 0;
}


もう、どこから突っ込んだらいいやら
800仕様書無しさん:04/02/10 00:40
間違い

struct HOGE *hogepo;

void main()
{
  memset((void *)&hogepo, NULL, sizeof(struct HOGE));

  hogepo = malloc(sizeof(*hogepo));

  …

  return 0;
}

こうだった
801仕様書無しさん:04/02/10 00:49
コンパイルテストしながらのコーディングはダメなん?
802仕様書無しさん:04/02/10 00:49
>>800
とりあえず、「ガッ」と言っておいてやれ。
803仕様書無しさん:04/02/10 00:50
>>800
ポインタについて問い詰めてみたら?
そのソース書いた人に。
804仕様書無しさん:04/02/10 08:03
>>800
前に助っ人で入ったチームのmalloc系は全部そんな感じだった。
「システムがおかしくてメモリ確保でよく落ちるので助けて欲しい」と言われて
1ヶ月契約で入り、初日で全解決。
805仕様書無しさん:04/02/10 11:13
>>804 残りの1ヶ月は何をしてましたか。
806仕様書無しさん:04/02/10 11:24


      >>791はバカVB厨ってことはよくわかった・・・!!
In article >>791, 仕様書無しさん/sage/791 wrote:
> えっ、まさかそれさえも知らないで辞めるの?
> いいよいいよ、そんな常識も知らない人はさっさと辞めてほしいな!

その言葉、そのままヴァカなあなたに返しますよ :)
っていうか、あなたですね?
今私の隣に座っている先輩は!!
VBしか^H^Hすら出来ないなんて逝ってよしですね。:-)

# VB.NETからOKなのは知ってましたが...
808仕様書無しさん:04/02/10 12:08
VBの言語仕様ごときでここまで話が弾むのか…
809仕様書無しさん:04/02/10 12:09
>>804
悪意無しにバカからカネをふんだくれる仕事うらやましい
81069式フリーPG:04/02/10 12:13
vb.netからはOKだったのか。一変数一行で宣言する癖がついてたから、知らなかった。
811仕様書無しさん:04/02/10 12:15
>>808
そりゃ、バカがいたせいだろ(プゲラ

バカ=>>791
812ヽ(´ー`)ノ:04/02/10 12:18
VB やったことないから >>788 すら最近知った(´Д`)マズー
813仕様書無しさん:04/02/10 12:25
>>812
漏れも・・・
っていうかVBで型宣言が出来るのはじめて知りました・・・

そろそろVB覚えなきゃだめかなぁ。
でもうちVBの案件無いしなぁ。
814仕様書無しさん:04/02/10 12:35
俺も今VBやってるけど、やらされているだけです。
VB、覚えなくても、>>788とかでも動くから逆に怖い。
そして、>>791みたいなバカがいるからマジで怖い。

早く、C++とかJavaに戻りたい。。。
815仕様書無しさん:04/02/10 12:36
VBはやりたくなくてもやらなきゃいけないこともあるからな。
覚えておいて損はない。覚えることなんかあまりないけどね。
816ヽ(´ー`)ノ:04/02/10 12:38
>>815
どうせすぐ覚えれるから必要になったらでいいや、というのが本音。
817仕様書無しさん:04/02/10 12:49
VBって覚える価値あるのかよ。
81869式フリーPG:04/02/10 12:51
VCでCOM/ActiveXの開発するときは役立ったよ。
つか、その時に覚えたんだけどね。
819仕様書無しさん:04/02/10 12:55
>>817
ちゃんと読め。価値があるなんて誰がいった?
>815が言ったとでも?>815は覚えることなんてあまりないと言っている。
つまり、覚える価値とかそういう問題じゃねーんだよ。
やらされることもあるから、そんときは覚えろよとのこと。
>>791のように影で笑われたくなければな。
820C++厨:04/02/10 13:07

>>791のようにやってしまった!!

が、オレは>>791のようにVBしかできない厨房じゃないので、
まだマシ「ということにしたい」ですね :)

# VBしかできないVB厨でそんな間違いする香具師もいるのかー
821仕様書無しさん:04/02/10 13:12
VBの話題だからこそ、ここまで盛り上がっているわけだな・・・
822仕様書無しさん:04/02/10 13:26
多分JavaでもDelphiでも盛り上がると思う。

だけどFortranじゃあこうはいかないだろう。
823仕様書無しさん:04/02/10 13:33
> Dim i, j, k As Integer
> ・・・。iとjはバリアント型じゃねーか。
明らかに言語の欠陥だよなぁ、これは。直感的じゃないし。
それを
> VBすらろくにできないバカがいるとは・・・もう辞めたい。
とか得意気に言う奴がいるってのが俺には理解できん。VBの世界は異常。
824仕様書無しさん:04/02/10 13:36
int* p, q, r;
825仕様書無しさん:04/02/10 13:41
>>824
やっぱり出たか。
そろそろ次のネタにしようよ〜。
826仕様書無しさん:04/02/10 13:45
Dim i, j, k As Integers

M$はUpdateして、この構文通せば〜

もう既にBasicモドキなんだし
827仕様書無しさん:04/02/10 13:48
ダートマスからの脱糞
828仕様書無しさん:04/02/10 14:14
>>826
Updateで対応すると、iとjをVariantとして扱ってる
プログラムが困る罠
829仕様書無しさん:04/02/10 14:20
>>824
それで、
> ・・・。qとrはint型じゃねーか。
> Cすらろくにできないバカがいるとは・・・もう辞めたい
なんて書く奴いないし。そもそもコンパイラがエラー吐くし。
そんな突っ込みするなんて、やっぱVB厨は異常。
830仕様書無しさん:04/02/10 14:30
>>828
コンパイルオプションや#pragma(VBじゃナニ?)で抑止可能にするのは
トーゼンだと思うが.............もうどーでもイイッス
831仕様書無しさん:04/02/10 16:06
バカなんじゃねーの?
他の言語やる時に、Cだとこうだからというレベルじゃねーんだよ。
もっと低次元の話だよ。
相手はVB厨なんだぜ?VBしか(すら)できない香具師なんだぞ?
その唯一触れる言語でミスるのがバカだって話題だろ?
本質をよくみれないようじゃ、PGとしては5流だな。(プゲラッキョ
832仕様書無しさん:04/02/10 16:14
>>823
> > Dim i, j, k As Integer
> > ・・・。iとjはバリアント型じゃねーか。
> 明らかに言語の欠陥だよなぁ、これは。直感的じゃないし。
仕様を欠陥扱いするのはどうかと思うがな。
初めに言っておくが、俺はJavaとC++中心にやってきた人間だ。
そんな俺も別に欠陥とは思わないな。悪魔で言語の仕様だろ。
お前、絶対始めて触る言語では「〜ではこうだった」とかうるさいヤツだろ。
いるいるそういうヤツ。(使えないPGで)

> それを
> > VBすらろくにできないバカがいるとは・・・もう辞めたい。
> とか得意気に言う奴がいるってのが俺には理解できん。VBの世界は異常。
何度もいうが、俺はJavaとC++中心にやってきた人間だ。
誰がいつ得意げにいったのやら?

と煽り気味に言ってしまったが、俺は「VBやってるヤツが全員バカ」って言いたいわけじゃない。
今、俺もやらされてるしな・・・(先が思いやられるよ)
俺が言いたいのは、VBなんて初めて触った俺ごときに「指摘」されるようなミスをする
VB厨房がバカと言いたいのだ。(別にVB自体をバカにしているわけでもない。言語としての目的が違うんだし)

別に言語の仕様が特殊だろうと「正しく」触れてこそ・・・仕事だろ?
VBしかできない香具師が正しく触れないから、辞めたくなったってヤツの気持ちは良くわかるぞ。
833832:04/02/10 16:17
ってことで、次の話題。

# >>832で書いた長文・・・なんか「蚊取」っぽくて自分でイヤになった。(ボソ
834仕様書無しさん:04/02/10 16:21
今さらだけど>>81に大爆笑
835仕様書無しさん:04/02/10 16:33
>>832が蚊取だったら、叩かれていないと思うが。
本質をとらえた発言だろ。特に > 別に言語の仕様が特殊だろうと「正しく」触れてこそ

> やっぱVB厨は異常。
とか言ってる馬鹿もいたが、どこにVB厨房がいるのやら?
VBを仕方なくやってるPGが、あんなミス(int型のつもりが、バリアント型)をするVB厨を発見したんだろ。

文章読めないやつは、VB厨房と同じレベル
836このスレの釣り師:04/02/10 16:42
>>791=>>823=>>829
VB厨房の>>791が、仕返しにジサクジエンしたと思われ。
わざわざ、大好きなVBをバカにしてまで、ジサクジエンしたんだろ。プププ





とか書くと(また)大量に釣れそうだな(プププププ
837仕様書無しさん:04/02/10 16:44



        釣 り 師 登 場 あ げ !


83869式フリーPG:04/02/10 16:47
はぁ?
こいつも所詮は民主だな。
839仕様書無しさん:04/02/10 16:51
知らない間に賑やかになってるじゃねーか・・・。

VB厨で検索すると、6,140件もヒットするのはビックリだな。
まあ俺も、VBにはお世話になったな。
何と言っても、C、C++、Java、VB、VB.NET、Delphiしか触れないからな。
アセンブラとかCOBOLとかやってみたいな。
COBOLは、まだ案件があったりするが、俺の地方だけか?
「消える消える」って言われてたけど、以外としぶといよ。
840仕様書無しさん:04/02/10 16:52
>>838
ごめんなさい。
意味説明してください。
わかりません。
84169式フリーPG:04/02/10 16:55
スンマッシェン。誤爆ですた。
VB厨房の話に逆戻り(w
さて、どこからどう突っ込めばいいのかわからんな。
とりあえず、瞬時に3つ突っ込めることがある。

'日付スラッシュ編集, Long型の数値を YYYY/MM/DD の形の文字列に編集
str生年月日 = Left$(CStr(RS!生年月日), 4) & "/" & Mid$(CStr(RS!生年月日), 5, 2) & "/" & Right$(CStr(RS!生年月日), 2)
str施行日 = Left$(CStr(RS!施行日), 4) & "/" & Mid$(CStr(RS!施行日), 5, 2) & "/" & Right$(CStr(RS!施行日), 2)
str使用期限 = Left$(CStr(RS!使用期限), 4) & "/" & Mid$(CStr(RS!使用期限), 5, 2) & "/" & Right$(CStr(RS!使用期限), 2)
str更新日 = Left$(CStr(RS!更新日), 4) & "/" & Mid$(CStr(RS!更新日), 5, 2) & "/" & Right$(CStr(RS!更新日), 2)
str更新時間 = Left$(CStr(RS!更新時間), 2) & ":" & Mid$(CStr(RS!更新時間), 5, 2) & ":" & Right$(CStr(RS!更新時間), 2)
843仕様書無しさん:04/02/10 17:42
>>842
3つか・・・それは・・・

@日本語変数名使うな。コーディングしづらいだろ。もうアフォかと。
Aスラ編集ならFormat$使えよ。素敵ですアンタ。
BRSはレコードセットだろ?CStrにしている意味がわからん。もうブチ切れですよ。

もし、RSをわざわざCStrにしなきゃ動かないのなら、>>788が目撃した
「Dim RS, なんちゃら, なんちゃら As RecordSet」
で宣言していてバリアントになっている可能性が高いな。
こういうクソース書く香具師はやるんだよな。

違うかな?っていうか、VBの話に戻すな(荒れてまうがな)
844仕様書無しさん:04/02/10 17:43
>>843
とか言っている、あんたが釣られているわけだが・・・
845仕様書無しさん:04/02/10 17:51
つまらねー話題でスレをよごすな!!ごるぁ!!
846仕様書無しさん:04/02/10 17:56
>>842
・VBを使っている
・C++ラーという一般的でない名称
・ドラゴンボールみたく「RS!!!!!!!!!!!!」とかしたほうがかっこいい
847仕様書無しさん:04/02/10 18:07
>>846
おもしろいわ。あんた。

> ・VBを使っている
ちなみにAccess VBAなんだよな「RS!」だし・・・

> ・C++ラーという一般的でない名称
シーラーにしとけばよかったかな?

> ・ドラゴンボールみたく「RS!!!!!!!!!!!!」とかしたほうがかっこいい
意義あり!!
ドラゴンボールってそんなにエクスクラメーションマークついていたか?
はつみみです :)
848仕様書無しさん:04/02/10 18:09
C++ラー → しーぷらぷららー → チンチンブラブラソーセージ
849仕様書無しさん:04/02/10 18:15
          ∧_∧
        ⊂(´・ω・`)つ-、シーたすたすか。シーたすた・・・チキン竜田
      ///   /_/:::::/ ねえ。コンビニでチキン竜田買ってきてくんない。
      |:::|/⊂ヽノ|:::| /」
    / ̄ ̄旦 ̄ ̄ ̄/|
  /______/ | |
  | |-----------| |
850仕様書無しさん:04/02/10 18:18
シープラプラーって言いたいんじゃないかな?
めんどいから、C++ラー。
851仕様書無しさん:04/02/10 18:20
>>849
だからお前は豚のように太るんだ!!(w
http://pc.2ch.net/test/read.cgi/prog/1069539821/で煽られてろ!(w
852仕様書無しさん:04/02/10 18:22
>>847
RS!は事前バインディングなら問題にならないかと。
省略したことが問題になるような種類の既定のプロパティじゃないし。

レコードセットへのアクセス回数が通常の3倍になっていて遅くなってるかもね。
これくらいならFormat$を使ったほうが速いかも。
Format$の速度の比べて3回レコードセットから読み取るのとどっちが遅いか微妙だが。

ドラゴンボールなら「RS!!!?」という感じで。

>>843
フィールドの型はLongと思われ。日本語のフィールド名がかなり痛いが。
このコードはおそらくRecordSetで明示的に宣言していると思われ。思っておく。
どちらにしろCStrは明示的に書くべき。
853仕様書無しさん:04/02/10 18:23
>>848
妙に懐かしいな
854仕様書無しさん:04/02/10 18:23

          | ぐだぐだ言ってねぇで早く買ってこいや、ゴルァ!
          |  ____________________
          |/
               ゲシ
     ∧_∧       ∧_∧>>851
      ( ・∀・)    ∩(´Д`;)__
     (入   ⌒= ̄_)) ⊃⊃  ./|
      ヾヽ  / ̄=/  /   /  |
      || ¬| ̄ ̄ ̄|   | ̄ ̄ ̄|
       ´  |      |   |      |
855仕様書無しさん:04/02/10 18:26
>>852はVB厨じゃないな。
VBしかできない香具師はこんな基本的なこともわからないからな(w
856851:04/02/10 18:27
>>854
へ、へい!ただいま!!(心:デブのくせに人づかいが荒いんだよ!!)
857仕様書無しさん:04/02/10 20:21
RS = レイディアント シルバーガン
858仕様書無しさん:04/02/10 21:52
>>857
同士!!
こいつのせいでセガサタンが現役だったけど、エミュ(ry
859仕様書無しさん:04/02/10 22:21
会社じゃないけど、今日友人にこんなスタイルシートを見せられた。
BODY{
  font-size: 1em;
}

……お前は何がしたかったんだと小一時間。
ていうかどんな表示のされ方になるんだろう……。
860仕様書無しさん:04/02/10 22:43
>>859
でも、px単位でフォントサイズを固定値指定して
「これなら環境依存しないよ」と得意満面な奴より
よっぽどマシじゃない?
861仕様書無しさん:04/02/10 23:03
プログラミングをおぼえて18年、VBをやらずに
すんでいることを神に感謝したくなりました(w
862仕様書無しさん:04/02/11 00:37
>861
あ、次の仕事、VB.NETでASP.NETだからよろしく。

って上役に言われたら関連スレへドゾー。
863仕様書無しさん:04/02/11 01:22
閉じタグというものが一切ないページなら見たことがある
864仕様書無しさん:04/02/11 01:39
お客さんのサイトをIIS上で設定して、「ただいま工事中」の仮トップ置いて
できますた、って報告したら数分後、その上司から
「……htmlタグ閉じといてな」
え?!と思ってみたらソースの最後が「</html」
我ながらアボガドバナナと。と自爆話を晒してみる。
865仕様書無しさん:04/02/11 02:33
遅レスだが、
>>780
> まあ処理系によっては、
と処理系の話をしているのかと思えば、

>「グローバル変数を for カウンタに使えない」という言語仕様の
>言語もあるけどな。
と言語仕様の話になってたり、わけわからん。

866仕様書無しさん:04/02/11 09:27
VBはそんなに悪いものじゃない。
気をつけるところ気をつければ、使えるものがかなり素早く簡単に作れる。
それなりの基礎が出来てる奴が覚えたらかなり便利に使いこなせると思う。
(CとかJavaに慣れてるとツッコミどころは少なくないがな…)

問題は「基礎が出来ていない奴でも動かなくはない物が何とか作れてしまう」点だな。
そしてそれを繰り返した奴が「自分はデキル」と思ってしまう点。
まともなプログラマがそんな奴と組まされた日にゃストレス溜まる一方なわけよ。
867仕様書無しさん:04/02/11 11:13
>>866
しかし.NETんいなってからはC#に負けていると言う事実

VBのほうが優れているのって多次元配列のプロパティくらいでは・・・
868仕様書無しさん:04/02/11 17:31
.NETフレームワークなんかいれてらんない
869仕様書無しさん:04/02/11 18:07
>868
何も考えずにWindows Updateしている周りのマシンには
全部.NETランタイム入ってたりする罠。
870仕様書無しさん:04/02/14 01:18
なにせ変数名に単車の名前が付いてたりすると
「あー、このプロジェクトにウザいやつが入ってんだな」とか
「嬉しがりの初心者君にやらすなよ」とか
「誰だよ、この件でつっこみ入れられてニヤニヤしたい奴は」とか
もーとにかく嫌になる
871仕様書無しさん:04/02/14 02:01
変数名がマ板のスレ名だったら可ですか?
872仕様書無しさん:04/02/14 02:09
>>871
こういうスレ名もあるw
「     」
http://pc.2ch.net/test/read.cgi/prog/1029686973
873仕様書無しさん:04/02/14 03:22
変数名が「バレンタインでチョコくれた女性の名前」だったら…
ママンの名前をグローバルで宣言して使いまわすことになります(涙
874自作中:04/02/14 03:29
>>873
ダイジョブ、ママンハイッパイイルカラ
GIGABYTE
 GA-8PENXP Rev2.0
 GA-8IPE1000PRO2-W
 GA-8IPE1000PRO2
 GA-8IPE1000-L
AOPEN 
 AX4C MaxII
 AX4SG Max
 AX4SG-UL
 AX4SG-N
 AX4SPE
 AX4SPE-UL
 AX4SPE-N
 AX4SP-N
 MX4SGI-4DL
 MX4SG-N
 AX4GER-N
 MX4GER
875仕様書無しさん:04/02/14 12:42
....
876仕様書無しさん:04/02/14 22:21
ママン違いだ、ゴルァ!
877仕様書無しさん:04/02/15 00:43
筐体の中ででろどろにチョコが溶けているところを想像してしまった
CPUとかGPUあたりからすごく香ばしい香りがしそうだ……
878仕様書無しさん:04/02/15 01:35
AOPENチョーサイテー
879仕様書無しさん:04/02/15 01:44
ASUSがいいよ
880仕様書無しさん:04/02/15 01:44
うちはギガバイコタソだな
881仕様書無しさん:04/02/15 02:38
以前ZDNetでネタになってた、限定1台のThinkPadを思い出した。
882仕様書無しさん:04/02/15 12:51
>>881
あの食える奴かw
883仕様書無しさん:04/02/15 13:02
884仕様書無しさん:04/02/15 15:01
げぇーっ、全てのチェックボックスにイベントハンドラが設定されて、
チェックをオンオフする度にDBに状態(1/0)が書き込まれてる。
しかも実行ボタンを押した後は、それを使わずに普通にチェックボックスの状態を得てるし。
作った奴は何がしたかったのかと小一時間...。
もうやだ、こんなVBプログラムの保守/拡張は...。
885仕様書無しさん:04/02/15 15:54
Real-time-sync
886仕様書無しさん:04/02/15 16:32
>>884
思いつくのは「全操作の記録」だ。dbへの書きこみは、updateでなくてinsertだろ。
途中までやってみて挫折したが、害がないから放置しているのかもしれん。
要件に直結しない機能を実装するときには、ちゃんと「なぜこの機能が存在するか」
を書いておいてくれないと、保守担当は確実に混乱する。
887仕様書無しさん:04/02/15 17:03
しないよ。
888仕様書無しさん:04/02/15 17:12
ばっさり切り捨てるだけさ。
889仕様書無しさん:04/02/15 17:28
うわぁ、全操作の記録ってやっぱりあるんだ?
前の会社を辞めたきっかけが、まさにそれ。
リアルタイム的分析システム(なぜか普通のPC・・・)に
そんなもん載せられるか、ヴォケ!と漫然と要求仕様をよこした
Sヨと喧嘩して速攻辞めた。
後で同期に聞いた話では、納期を3回延長させてもらったうえで
頓挫したらしい(w
890仕様書無しさん:04/02/15 18:00
>>886
いや、updateだった。
別の場所でもう一度チェックの状態を得るためのグローバルな使い方をしていた。
その同じ関数内のすぐ上の場所では、普通にフォームオブジェクトからチェックの状態を得ている。
何でだ...。
プログラムの仕様書は無い。コメントも無い。客用の汚い説明書だけある。
エラーチェックが殆ど無いので、ちょっとでもデータがミスってたらすぐエラーで停止するし。スペランカーかよ。
891仕様書無しさん:04/02/15 23:36
以前勤めていた会社で同期が書いた検索処理を行う関数名。


Hirosi()


たしかに検索(探検)してたよね、彼。
892仕様書無しさん:04/02/15 23:37
川口か藤岡か・・・
893仕様書無しさん:04/02/15 23:49
morita("検索");
894仕様書無しさん:04/02/16 00:12
関数名で一瞬意識がとんだものといえば

 kensaku_sarch();

おまいは・・・・・・・・・・・・
895仕様書無しさん:04/02/16 00:28
syoukyo_delete();


いろいろ応用できそうだ.
896仕様書無しさん:04/02/16 00:29
>>894
sarchを検索する関数だな。わかりやすくていいじゃないか。
897仕様書無しさん:04/02/16 00:31
>>895
deleteのスペルが合ってるからダメ〜
898仕様書無しさん:04/02/16 01:37
syoukyo_derete()だろ
899仕様書無しさん:04/02/16 01:54
藻前ら揃いも揃って馬鹿だな。
syoko_asahara()だろ。
900仕様書無しさん:04/02/16 02:45
sounyuu_insart()、なんて本当にありそうだな。
901仕様書無しさん:04/02/16 06:30
関数じゃなくて競走馬の名前だけど、
ハギノユメドリームとナリタキングオーを思い出した。
902仕様書無しさん:04/02/16 08:08
main_saisho()
903仕様書無しさん:04/02/16 21:24
CSexualIntercose m,f;
m.Condom=True;
a.InseartPenis(f);
904仕様書無しさん:04/02/16 21:27
「Search」を「Sarch」に間違える香具師もかなりバカだが、
「Year」を「Yeay」って本気で間違えるヴァカがいた。
タイプミスじゃねーよ?本気で間違えてんだべ?
中学校もいってないのかと小一時間(略
905仕様書無しさん:04/02/16 21:50
Yeah_Metcha_Holiday
906仕様書無しさん:04/02/16 23:06
>>894
作った奴の名前が健作だったりしてな。

外人さんの作ったソースをメンテしてたら、
johns_fileopen(仮名)だのjohns_matrix_1(仮名)だの
ぞろぞろ出てきて頭痛くなった。
907仕様書無しさん:04/02/16 23:20
DQNに国境なし
908仕様書無しさん:04/02/16 23:36
そんな時は>>906も関数名の頭にjohns_を付けるべし。
万が一バグがでてもjohnの責任に…
909仕様書無しさん:04/02/16 23:37
namespace john の替わりだと思えば、namespace boost とやってることは変わらないかもしれない。
910仕様書無しさん:04/02/16 23:38
>906
これがほんとのnamespace
911仕様書無しさん:04/02/17 03:10
namespaceはまぁjohnで良いとしよう。
しかし、matrix_1ってのはなんだ?
912仕様書無しさん:04/02/17 06:48
聖ヨハネの加護がかかった関数なのです(w
913仕様書無しさん:04/02/17 09:28
最近、IMEのカタカナ英語変換を使ってる弱気な私。
どんどん自分が堕落していく。
914仕様書無しさん:04/02/17 15:03
>>913
こんなんあるんだ。
産休。
915仕様書無しさん:04/02/17 15:04
うぉ変換されてねえじゃん
916仕様書無しさん:04/02/17 15:54
>>915
サンキュウじゃなくて、さんきゅーだと、Thank Youに変換されてくれます。
ああ、ほんと駄目人間になっていく。
917仕様書無しさん:04/02/17 22:59
漢字を覚えないだけじゃなくて綴りも忘れていくのか…
918仕様書無しさん:04/02/17 23:04
SQLを渡すと結果セットを取得してくれる共通関数があるんですが、
戻り値ないんです。
919仕様書無しさん:04/02/18 00:17
グローバルでやり取りですか…引数も無さそうな予感…
920仕様書無しさん:04/02/18 00:21
if( a < b <= c )
37才現役プログラマ
921仕様書無しさん:04/02/18 00:30
カウンタをグローバル変数にして、シグナルハンドラの中でループの進行度を拾っているコードなら見たことがある
922仕様書無しさん:04/02/18 00:45
>916
「さんくー」ではダメなんですね?

ごめんなさい戯言喰らってきまつ
923仕様書無しさん:04/02/18 01:00
テンキューでもダメね
924仕様書無しさん:04/02/18 01:41
ten queue
925仕様書無しさん:04/02/18 02:04
コメントに「チビロンンゲこそ世界最強」とありますた。
来月辞めるつもりです。
926仕様書無しさん:04/02/18 02:27
>>925
デブは大変だね
927仕様書無しさん:04/02/18 02:43
>>922
同士よ!
928仕様書無しさん:04/02/18 03:11
正直、もうだめです。
だれか助けてください。
929仕様書無しさん:04/02/19 00:45
社長のありがたいお言葉

「今は知りたい情報などは『ツーチャンネル』で調べることが出来るが、
 それが有効な情報なのかはおのおのが判断しなければならない」

用は「嘘を嘘と〜」と同じ事を言ってるんだけど、少なくともあんたは
正しい情報を入手できていないようですね。
930仕様書無しさん:04/02/19 00:49
>929
どっちかというとこちら向けでは。

この会社辞めようと思った上司の一言#E
http://pc.2ch.net/test/read.cgi/prog/1075987262/

にしても社長自らでつか。
931仕様書無しさん:04/02/19 00:52
あ、うん誤爆した…

「この会社辞めようと思った」まで同じなんだもんよ!!
932仕様書無しさん:04/02/19 01:05
>>929
どこも間違ってないじゃん
933仕様書無しさん:04/02/19 02:01
スペル?そんなもん覚えてるわけがw
BookShelfBASICに聞きます
934仕様書無しさん:04/02/19 02:07
>933
漏れはgoo辞書
935仕様書無しさん:04/02/19 02:12
>>932
ツーチャンネル
936仕様書無しさん:04/02/19 03:14
>>929
うちの社長は「チャンネルトゥ」と言うがなにか?
937仕様書無しさん:04/02/19 13:18
>>932
「調べることが出来る」
938仕様書無しさん:04/02/19 14:09
アンテン・ドゥ
939仕様書無しさん:04/02/20 02:06
if(b!=0){
  c=a/b;
}else{
  c=0;
}
940仕様書無しさん:04/02/20 02:12
>939
そこだけ見てもさほど嫌なコードには思えないんだが。
941仕様書無しさん:04/02/20 03:29
>>940
数学としては定義されてないから
>>939にとって、cに値設定してしまうことが
”この会社やめようと思った”ほどだったんでそ(w
942仕様書無しさん:04/02/20 07:09
>939
まぁそのa,b,cがどういう意味の値なのかは多少興味はある
943仕様書無しさん:04/02/20 07:30
/* 200x/xx/xx delete ***
*value=1;
*value=2;
*
*
/ * sub loop * /
*for(loop=0;loop<MAX;loop++){


(500行くらい中略)


*}
*** delete end */


キレイさっぱり消して差し上げますた。
944仕様書無しさん
コメントのネストが出来るコンパイラは便利だったよ。