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

このエントリーをはてなブックマークに追加
1仕様書無しさん
この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。
プログラマを悩ませるソースコード。
COBOLライクなソースコード。(゚д゚)マズー
をつらつらと綴っていって頂戴。

■過去スレ
この会社辞めようと思ったソースコード
#1http://mentai.2ch.net/prog/kako/997/997104873.html
#2http://pc.2ch.net/prog/kako/1001/10010/1001076034.html
#3http://pc.2ch.net/prog/kako/1015/10158/1015861447.html
#4http://pc.2ch.net/test/read.cgi/prog/1021560641/
#5http://pc.2ch.net/test/read.cgi/prog/1029120005/

■関連スレ
この会社辞めようと思った上司の一言
#1http://mentai.2ch.net/prog/kako/992/992259973.html
#2http://pc.2ch.net/prog/kako/1003/10034/1003497181.html
#3http://pc.2ch.net/test/read.cgi/prog/1024763650/
2すぷーん ◆spoonCC. :02/09/30 01:50
>>1
乙カレー
3 ◆k/Ubp.Kg :02/09/30 02:12
>>1
お疲れさまです。
43:02/09/30 02:13
ちっ、3か。
5仕様書無しさん:02/09/30 02:13
>>4
(泣)
6仕様書無しさん:02/09/30 02:53
どんなコードを相手にするにしても、だ。

     曰
     | |   ∧_∧     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ノ__丶(〃´Д`)_ < まあ呑めや。
     ||伊||/    .| ¢、 \_________
  _ ||佐||| |  .    ̄丶.)
  \ ||美||L二⊃ . ̄ ̄\
  ||\`~~´  (<二:彡) \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
   .  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||



7 ◆k/Ubp.Kg :02/09/30 03:03
>>4
激しくワラタ
8仕様書無しさん:02/09/30 03:16
class Oppai;

とかあってビックリだったよ。
俺が書いたんだけど。
9仕様書無しさん:02/09/30 06:46
COBOLライクなソースコード。(゚д゚)マズー
ワロタ。アゲ。
10仕様書無しさん:02/09/30 16:02
私はアホです。
1110:02/09/30 16:02
スレマチガエマシタ。
12仕様書無しさん:02/09/30 16:36
>>10-11
あってるジャン
13仕様書無しさん:02/09/30 22:42
ソースコードじゃないけど、会社のトイレで「SEXしたい」とか「○○ちゃん好きだ」なんて
厨房なみの落書きを見つけた私はスレタイどおりの行動をとった方が良いですか?
14仕様書無しさん:02/09/30 23:35
そういう時は、「by○○(部長の名前)」とか「by◎◎(先輩の名前)」を
書き足しておくのが、親切心というもの。
15仕様書無しさん:02/10/01 00:39
で、このスレに掲載されると(w
http://pc.2ch.net/test/read.cgi/prog/1024763650/
16仕様書無しさん:02/10/01 22:26
おながいします

メソッド全体を try { 〜 } catch (Exception e) {} (catchでは何もしない)で囲まないで下さい
複数からアクセスするファイルを扱う*インスタンスメソッド*にsynchronizedを付けて排他したつもりにならないで下さい

おながいします
17仕様書無しさん:02/10/02 00:00
char *p;
int *ii;

&ii = (int *)p;


なんでもかんでもキャストすればえーっちゅうもんじゃないっつうねん
18仕様書無しさん:02/10/02 00:04
>>17
つかそれ、コンパイル通らないんじゃ
19仕様書無しさん:02/10/02 00:09
>>18
そうだよね、なんか変
20仕様書無しさん:02/10/02 00:10
┌─────────────────────────┐
│☆☆☆☆☆☆☆―おいらの胸の心の愛 ―☆☆☆☆☆☆☆│
│☆    ┏━┓┏┳┓      ┏┳━━━┳━┓┏┓    ☆│
│☆    ┣━┫┃┃┣┳━━┛┣━┳┓┣━┛┃┃    ☆│
│☆    ┗━┛┣╋┛┗┳┓┏┛  ┃┣┛    ┃┃    ☆│
│☆    ┏━━┛┣┓┣┛┃┃┏━┛┃┏━━┛┃    ☆│
│☆    ┗━━━┛┗┛  ┗┛┗━━┛┗━━━┛    ☆│
│☆       ┏┳┓┏┳┓    ┏┳━━┳┳┓         ☆│
│☆       ┃┃┣┛  ┗┳━┛┃ ━ ┃┃┃         ☆│
│☆       ┃┃┣┓┃┏┻┓┏┫┏┓┃┃┃         ☆│
│☆       ┗┫┃┗┫┃  ┃┃┗┛┃┃┃┗┓       ☆│
│☆         ┗┛  ┗┛  ┗┛    ┗┻┻━┛       ☆│
│☆                             ▼▼▼▼   ☆│
│☆    本日 PM 3:00 開演   場所 空地      ・__・    ☆│
│☆             来ないやつは殺す    〇      ☆│
│☆                            3     .☆│
│☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆│
└─────────────────────────┘
21すぷーん ◆spoonCC. :02/10/02 00:17
>>20
> 来ないやつは殺す

チョトワラタ
22仕様書無しさん:02/10/02 00:50
いっ、逝きます!
23仕様書無しさん:02/10/02 01:49
javaなんだが,200個くらいのオブジェクトからキー(文字列)で検索するのにVectorに突っ込んでIteratorで一つ一つ検索している....
てか、まずHashtable使えよ。普通に。
それで「おそくて使い物にならんよー」とかいってみたり、Hashtableつかったらどう?てな話したら「いやあ、あんまり
かわらんよ」といってみたり(やってみろよだまされたと思って)
とりあえず計算量とかいう言葉を大学で習わなかったんだろうなあ。
24仕様書無しさん:02/10/02 02:57
>>23
Hashtableも使わないでほしいです。
CollectionsFrameworkの項を嫁。
25仕様書無しさん:02/10/02 09:17
ジャイアンリサイクル?
26仕様書無しさん:02/10/02 12:27
ちょっといい話し。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
あちこちから悲鳴が聞こえる泣き叫ぶ子供。瓦礫と化した家に押しつぶされる日本人。
「助けて…」という声が絶え間なく聞こえている。しかし被災した神戸の住民は、放心
したように黙って座り込んでいるだけだ。あまりのショックに下敷きになっている人を
助けることさえ忘れているのだ。
「今助けるけん。まっとんしゃい!」
こう叫んだのは共に住民として神戸に住む在日韓国人達だった。自分も血を流し怪我を
しているにも関わらず救助活動を続けた。
「ぜったい助けるけん。がんばっとー!」こうして懸命な救助活動の末助け出された人
達は1万人以上にものぼる。助けられた中学生の女の子は「在日韓国人の人がいなかっ
たら間違いなく死んでいた」と涙を流した。村山首相を始め救助活動の遅れが多くの助
けられる人たちの命を奪った。「助けるのは当たり前けん! 私ら同じ住民やもん!」
オモニ達は目に涙を浮かべていた。
27仕様書無しさん:02/10/02 12:29
またデマ流しているチョソがいる。
28VB-Slime:02/10/02 13:22
会社を辞めようというほどではなかったが、プロジェクトを降りたくなったコード。
書いたのは他の会社の人なんだが、ドライブを検索する関数で、

char c_drc[]={"a:\\;b:\\;d:\\;e:\\;f:\\;g:\\;h:\\;i:\\;j:\\;k:\\;l:\\;m:\\;n:\\;o:\\;p:\\;q:\\;r:\\;s:\\;t:\\;u:\\;v:\\;w:\\;x:\\;y:\\;z:\\"};

・・・・・え〜と( ̄▽ ̄;)
29仕様書無しさん:02/10/02 17:43
「コーディングの早さ」で最適化されています。
そんなんばっかだウワァァン
30仕様書無しさん:02/10/02 20:21
自分の作ったソースをみて辞めたくなった事があるな
31仕様書無しさん:02/10/02 20:31
>>30
自分の作った伝統醤油を見て悩む職人になりたいねー(w
32神戸人:02/10/02 20:32
>>26
てかそのチョソの人がしゃべってるのは何弁なん?
神戸はそんな言葉しゃべりません。
33仕様書無しさん:02/10/02 21:27
>>32
「神戸の言葉なんか喋らんけん!私らチョソやもん!」
34仕様書無しさん:02/10/02 22:54
Servlet/JSPの話ですが、
・メンバ変数が
String[] para = new String[3000];
だけのオブジェクトをJavaBeanと言い張って、
・そのオブジェクトをセッションオブジェクトに格納して、
・コメントに規則を記述しその規則に従って使え、
とのたまうリーダーの下で仕事しています。しかも
・そのオブジェクトはHTMLテキストの一部を保持して(これは状況次第で許されるかも)
・しかもそのHTMLテキストをサーブレットが生成しています。
さらに
・クラスライブラリを使えば10行でできるソートを自力で実装(しかもバブルソート)
・DBの正規化をしません。
・設計しません。クラスは場当たり的に出現します。
・何を言っても聞きません。「よく知らない」
「こういう方法もありだろう。美意識の問題だ」
「私は前回もこの方法でやってきた」と返されます。
35仕様書無しさん:02/10/02 23:17
>>34
「メンバ変数」ってJava用語だっけか?

まあ漏れもC++上がりだからよく言うけど・・・。
36仕様書無しさん:02/10/02 23:18
typedef charひとつ取ってみても、一つのシステムでこれだけある。

typedef char THIS_CHAR;
typedef char* THAT_CHAR;
typedef char A_TO_Z;
typedef char* AAA_TO_ZZZ;
typedef char MOJI;
typedef char* MOJIGUN;

しかも根が深い。
typedef MOJIGUN MOJIRETU;

こんな仕事、辞めてー。
>>35
俺も良く使う。メンバ変数の方が通りがいいから。
フィールドって言うと「?」な反応されるんで。
38仕様書無しさん:02/10/02 23:52
>36
ThisとかThatがついてる妙なセンスにワラタ
AAA_TO_ZZZとかはサフィックスなんだろね。
もっとないの?
3934:02/10/03 00:20
>>35
よく混同します。JavaとC++を両方やっていた時期が長かったので。
Javaなら「インスタンス変数」か。
あと、C++やC#で「スーパクラス」「サブクラス」っていったり。
「基底クラス」「派生クラス」なんて、意識しないと言えません。
4023:02/10/03 00:39
>24
嫁んだ。どもありがと。

でも、なぜ使わないでほしいになるかがよくわからんのだが....要はHashMap使えってことでしょうか?
#もっと別のこといってたらすまん

HashMapとHashtableの違いは

1 nullをkeyや値として許すか否か
2 HashtableはThread safeであるせいで性能的にHashMapのほうがいい

くらいだと思うんだけど、正直使うことを否定されるほどの理由になるほどの
ものも読み取れなかったんだが....

ま、Collection APIが導入される時点でHashtableやVectorや
Emuratorがdeprecatedになっていればすっきりしたね、とは思うが....
41       :02/10/03 01:27
>>オブジェクトをJavaBeanと言い張って
JavaBeanはJavaBeanじゃないの?
EJBじゃないけど
42 ◆k/Ubp.Kg :02/10/03 05:55
>>24
Hashtable の親クラスである Dictionary クラスの API ドキュメントに
>注: このクラスは現在使われていません。新しい実装では、このクラスを拡張しないで Map インタフェースを実装してください。
って書かれているから、 Map を実装した HashMap の方が良い、というコトなんではないあろうか。
スレッドセーフにする必要があるなら、Collections#synchronizedMap(Map m)を使えば良いし。
43 ◆k/Ubp.Kg :02/10/03 05:56
>>42>>40 への文章だった…ポインタ間違えた。
44仕様書無しさん:02/10/03 09:36
>>32
武田鉄也っぽい方言だな
45仕様書無しさん:02/10/03 12:38
ポインタなんかなくていいよ
46仕様書無しさん:02/10/03 18:49
C++Builder4で作ってたソフトで、警告168個出てたのに先輩はけろっとしてます。
47仕様書無しさん:02/10/03 19:16
age
48仕様書無しさん:02/10/03 19:37
>>46

VC++6.0は警告レベル最大にすると標準C++ライブラリヘッダ内で
警告がたーんと出るんだよなぁ。(VC++.NETは使ったことないから知らん)
C++Builderはそんなタコなことないの?だったらそれだけでうらやますぃ。
49よくあるオチは:02/10/03 19:43
その先輩が英語のメッセージを読めなかったってやつだ。(w
50仕様書無しさん:02/10/03 23:45
>>46
ある子会社からの納品物の動作がおかしい。
試しにコンパイルしたら、キャストがらみの警告多発。
ぎょっとして、チェックしたら「よくわからないところはとりあえずキャスト」だった。
クレーム出して1週間で作り直せつーたが、結局1ヶ月かかってた。
なお、納品までの期間は1ヶ月。

クレームぶつけまくって、¥は半分以下にしてやったらしい>営業


ちとスレ違いなのでさげ
5123:02/10/04 01:39
>42

いや、それは問題ないのでは?だって、HashtableはMapもimplementしてる。
52仕様書無しさん:02/10/04 12:13
>16
> 複数からアクセスするファイルを扱う*インスタンスメソッド*にsynchronizedを付けて排他したつもりにならないで

え、いいんじゃない?
ただし、Singltonの実装をしていれば(笑)
53>>17-19:02/10/04 17:53
なんか、そんなようなのっぽいが連発しているのを
HP-UXからAIXに移植セイ、といわれたことがあったーよ。
AIXでマンマでこんぱいるしたらエラーがいっぱい出たーよ
よくこんぱいる通ったな、と感心したものだよ。
(今のは通るかどうか知らんよ)
54仕様書無しさん:02/10/05 19:46
typedef int INTP0
typedef INTP0* INTP1;
typedef INTP1* INTP2;
typedef char CHARP0
typedef CHARP0* CHARP1;
typedef CHARP1* CHARP2;

*後輩
「すみません、次の文字列が拾えないんですがちょっとソース見てもらえますか?」

*お兄さんお兄さんした先輩
「文字列をまとめて扱うわけだから
 そこはキャラのピー1じゃなくてキャラのピー2にしないとだめだね。」

〜のピー1とか〜のピー2がうちの会社での公用語。
直接 char *strs[]; とか使うとめっちゃ怒られる。

*お兄さんお兄さんした先輩
「直接使ってるの?恐いことするなぁーお前」
55仕様書無しさん:02/10/05 19:59
>>54 のつづき

さらに変数名は
システム名(英大文字4文字) + [PCN] + 型名 + 連番。
P=直前の値, C=現在の値, N=次の値
現在の値しか使わなくても必ず3つ宣言してる。

CHARP1 SYSAPCHARP11;
CHARP1 SYSACCHARP11;
CHARP1 SYSANCHARP11;

CHARP1 SYSAPCHARP12;
CHARP1 SYSACCHARP12;
CHARP1 SYSANCHARP12;

CHARP2 SYSAPCHARP21;
CHARP2 SYSACCHARP21;
CHARP2 SYSANCHARP21;
56仕様書無しさん:02/10/05 20:08
>55
> 現在の値しか使わなくても必ず3つ宣言してる。
「現在の値」を更新する前に、その値を「直前の値」に保存したりとかするんじゃないのか。
というか、「次の値」ってのが一番意味不明だな。処理を予測して代入するのか?
57仕様書無しさん:02/10/05 20:22
>>54-55
地獄のようだな
58仕様書無しさん:02/10/05 20:26
>>54-55
今の出向先も、似たような状態。Pの位置は変数の前に付く。

typedef void* PVOID;
typedef char* PCHAR;

PCHAR pData;

とか。これで育った出向先の新卒グループは、先日こんな発言をしてくれますた。

新卒「えーと、pDataをポインタじゃなくて普通の変数にするには・・・
     PCHAR Data;
    よしっ、これでOK!」

漏れ「…お前ポインタの意味わかってんのか?ていうかC言語理解しているか?」

新卒「えっ、変数の頭にpをつければポインタになるんですよね?」
59仕様書無しさん:02/10/05 21:13













char ********tree;
60仕様書無しさん:02/10/05 21:24
if(a != 0){
b+=a;
}
61仕様書無しさん:02/10/05 21:31
なにしたいんじゃろ
62仕様書無しさん:02/10/05 21:32
b = b + a
63仕様書無しさん:02/10/05 22:27
>> 54, 55
どこから、そんなばかな規約が出てくるのか、小一時間問い詰めたい。
COBOLER?
64仕様書無しさん:02/10/05 23:01
>>54
そういうのってこの板でよく見かけるけど、
んな馬鹿な会社がほんとにあるの?
65仕様書無しさん:02/10/05 23:39
>>64
http://www.amy.hi-ho.ne.jp/~lepton/program/p2/prog245.html
Lepton氏がヨタ飛ばす必然はないだろうから、事実と思われ。
54に酷似 (関数名や変数名のとこを見よ)
66デジタル土方:02/10/06 00:19
>>54の環境では、>>59は「ピーの8」になるのか
67仕様書無しさん:02/10/06 04:12
>>65
>>54 とそのリンク先に書かれていることは、また別の話だと思うが。
68仕様書無しさん:02/10/06 07:05
>>54ですが>>58同様、
この環境で育った新人はCはこういうものだという認識を植え付けられている。
これが次の世代へと代々受け継がれていくんだろうなと思ふ。
なんでCやっているのに「ローバリューチェック、ハイバリューチェック」?
「スイッチ使え」は switch じゃなくてフラグ値による分岐だったことは
正直カルチャーショックを受けた。
69仕様書無しさん:02/10/06 07:14
>>54です。まだまだあります変なところ。

if (...) CALL SYSAPROCEDURE11(...);
else if (...) CALL SYSAPROCEDURE12(...);
else CALL SYSAPROCEDURE13(...);

if は単文で関数を呼ぶ。その場所に複数の処理を書いては駄目。
CALL は
#define CALL
ね。
関数はプロシージャとかプロシージャブロック、サブルーチンとか呼ばれている。
70仕様書無しさん:02/10/06 07:24
>>54ですが>>65
そのページ拝見致しました。

うちもKINGファイルによる台帳管理です。
KINGファイルの背表紙にも通し番号振ってあるから見るだけでも嫌。
SYSA1
SYSA2
SYSA3
71仕様書無しさん:02/10/06 09:46
>>69
それは結構痛いな。
関数が爆発的に増えると思いますが。
72仕様書無しさん:02/10/06 09:57
初級だが

#define OK 1

chk = 0;
if(....){chk = 1;}
〜〜〜〜〜〜〜〜
if(chk == OK){

おいおい代入と比較が一致してないぞ○○
73仕様書無しさん:02/10/06 11:09
>> 68
>> 「スイッチ使え」は switch じゃなくてフラグ値による分岐だったことは
これわからないんですが、
if (flag == 1) {
 ...
} else if (flag == 2) {
みたいな意味? 
それとも文字通り
if (flag == 1) goto FLGA1;
if (flag == 2) goto FLAG2;
goto ERROR;
FLAG1:
 ...
みたいなもの?(って、さすがにそれは無いですよね)
74仕様書無しさん:02/10/06 11:09
>>69
それもイタイなぁ。
それって結局、構造化プログラミングを受け入れたくないということ?
やっぱり COBOLer か BASICist ですか?
75仕様書無しさん:02/10/06 21:39
>>73
>(って、さすがにそれは無いですよね)
どうだろうね…。
そんなネタレベルの話ですら、ひょっとしたら実在するのかもって思えるのが
この業界の恐ろしいところだ。
76某電機メーカー系:02/10/07 02:44
ウェッブアプリケーションの開発に乗り出した今日この頃。
...はいいけど、バカの一つ覚えみたいに何でもかんでもJSPにコードScriptletで書くのはやめい。

...「ふつー、カスタムタグとかServletとかつかいません?」といったら、
「いやこれならソースコード行方不明になったりしないから...」なんだそうな。
77仕様書無しさん:02/10/07 03:16
>>76
そういうこと言う人の脳みそって
・スタック一段
・キューのセル3つ
じゃないかと思ってしまう。
そして、そういう人がメンテするからという理由で
そういうコードを強制的に書かされるのが鬱です。
78仕様書無しさん:02/10/07 10:56
fp = fopen("input.dat", "r");
if (fp == NULL) {
 fprintf(stderr, "リードエラー:ディスクに障害が発生しました。\n");
 exit(99);
}
79仕様書無しさん:02/10/07 11:00
ほかにも
fprintf(stderr, "ライトエラー:ディスクに障害が発生しました。\n");
fprintf(stderr, "致命的なエラー:ディスクに障害が発生しました。\n");
80仕様書無しさん:02/10/07 11:06
・malloc()
fprintf(stderr, "リードライトエラー:メモリに障害が発生しました。\n");

・fopen()
fprintf(stderr, "リードエラー:ディスクに障害が発生しました。\n");
fprintf(stderr, "ライトエラー:ディスクに障害が発生しました。\n");
fprintf(stderr, "リードライトエラー:ディスクに障害が発生しました。\n");

・fclose()
fprintf(stderr, "致命的なエラー:ディスクに障害が発生しました。\n");

こんなとこか。
81名無しさん@編集中:02/10/07 11:16
>>78-80
なんか問題あるの?
82仕様書無しさん:02/10/07 11:19
>>81
あなたの頭。
83仕様書無しさん:02/10/07 12:22
>>81
何があったかわかんないからなんじゃないの?
例えば78はinput.datがなかった場合でも「ディスクに障害が...」だもの。
ファイル名をソースに直書きなのも今一つ。10てん。
# クイックハックなら別だが...
84VB-Slime:02/10/07 13:16
If year = 2000 Or year = 2004 Or year = 2008 Or year == 2010 Then
LeapFlg = TRUE
Endif

・・・・・2000年は閏年じゃなかったと思ったけどな・・・・(そういう問題ではない)
8581:02/10/07 13:22
>>82
これがおかしいと思わない俺の頭が問題なのはともかくとして理由は?
職場によってエラーの書き方はまちまちだけど、
これはローカルルールとしては問題ないと思うんだが。

ファイル名がソースに直書きなことを言いたかった訳じゃないみたいだし
86仕様書無しさん:02/10/07 13:24
>>84
2000年は400年に一度の閏年だ、よって問題ない(w
87仕様書無しさん:02/10/07 13:24
>>85
こういう奴が不祥事を起こす。
88仕様書無しさん:02/10/07 13:26
あれ?2010年って閏年なの?(藁)
89仕様書無しさん:02/10/07 13:26
>>84
2010年は間違いなく閏年じゃないし。
90VB-Slime:02/10/07 13:39
そう、そういう問題じゃないんだよぉぅ>86 >89

>85
エラーの書き方が、じゃなくて、ファイルオープンエラー=ディスクエラーと
してしまっている考え方がアレなんだと思うけど。


91仕様書無しさん:02/10/07 13:50
>>90
じゃあ「ファイルに障害が発生しました。」ならばいいってこと?
92仕様書無しさん:02/10/07 14:04
「ファイルが開けませんでした」でいいんじゃないの。
93仕様書無しさん:02/10/07 14:13
>>91
物分かりの悪いやっちゃのう。
94仕様書無しさん:02/10/07 14:19
「不正な処理を行ったので強制終了しました。これは仕様です。」
魔法の言葉で万事解決
95仕様書無しさん:02/10/07 14:27
>>78-80
これを書いたヤツ以外で何が悪いのか明確に回答出来るの実は居ないんじゃないのか?
96仕様書無しさん:02/10/07 14:33
>>95
物分かりの悪いやっちゃのう。
97仕様書無しさん:02/10/07 14:44
>>95
>これを書いたヤツ以外で何が悪いのか明確に回答出来るの実は居ないんじゃないのか?
ヴァカですか?
98仕様書無しさん:02/10/07 14:44
的外れなメッセージ表示させてるんじゃねぇヴォケがっ!!!

てことじゃないの?
99VB-Slime:02/10/07 14:46
う〜ん。
業務内容によると思うけど、"r"で開いたらエラーだったってことは

(1)存在するはずのファイルが存在しない
(2)ファイルがあるけど開けない(物理的にクラッシュ?)

のどっちか、に大別されると思うんだな。
>78-80はすべてを(2)の場合にしてしまっているから問題視されてると
思うわけで。
(1)の場合だったら、その前のステップで生成されるべきファイルを
生成していない、すなわちバグって可能性もあり得るでしょ。

・・・・・ごめん。なんか自分でもうまく書けないや⊂⌒~⊃。Д。)⊃
100仕様書無しさん:02/10/07 15:11
>>99
(3)ファイルは存在するが、読みとり権限が無いため開けない
(4)内部バッファを確保する領域がない
(5)OS上で一度にopenできるファイル数を超えてファイルをopenしようとした
で、>>99はどんなエラーメッセージが適切だと思うの?
101仕様書無しさん:02/10/07 15:20
>>100
(6)占有ロックされてて開けない
というのもOSによってはあるな。
10281:02/10/07 15:34
物分かりの悪くてすまないがやっぱりわからん。
エラーメッセージなんてローカルルールでこう書けと決まっている場合があるから
多少的外れでも気にしない。
どうせオペレータには原因がわかったところでどうしようもないし、
こっちがエラーメッセージだけでエラーを判断するわけにもいかないしね。

大体エラーメッセージにはわざと詳細を書かないようにすることもある。
下手に「○○ファイルが存在したため、ファイルの更新ができませんでした」とか書くと、
消していいかの確認も取らずにご丁寧に○○ファイルを消してくれる人もいるし。
103仕様書無しさん:02/10/07 15:35
104VB-Slime:02/10/07 15:45
おっとご指名が。

>100
偉そうな高説を垂れておいて恐縮ですが、自分がやってる業務の場合だと
メッセージすら出さない場合がほとんどですた。

  ファイルがない
    ↓
  初期値で作る
    ↓  
  処理続行(ユーザーにはエラーを知らせない)

になっちゃうから。勿論、デバッグ用のログにはerrnoの内容を吐き出しますけどね。
そゆ意味では>81さんの困惑も解らないではないです。
話題を引っ張ってスマソ
105仕様書無しさん:02/10/07 15:51
>>81
「エラーメッセージに詳細を書かない」というのと
「あいまいなエラーメッセージ」を出すというのは天と地ほどの違いがあるぞ。

前者は問題が少ないけど、後者は問題ありまくりだろ。
でもって今回の問題は後者だったって訳だ。
10681:02/10/07 16:11
あぁ、何が言いたいのかやっとわかったよ。>105ありがとう

でもこれって単純にコピぺ後の修正ミスなだけじゃん。
こんなので辞めたくなるなら俺何回辞めてるだろう
ウチではエラーメッセージに関数名入れるんだが10%はあてにならんし(w
107仕様書無しさん:02/10/07 16:22
>>102
詳細を書かないようにすることもあるだろうけど、ウソのメッセージはよくないでしょ。
>>78の場合なら"致命的なエラーが発生しました\n"あたりでいいんじゃないの?
プログラムの内容や使われ方にによっても違ってくると思うけど
>"リードエラー:ディスクに障害が発生しました。\n"
と、表示するのが適切な状況が思いつかない。

うちの会社の場合は関数番号と関数内通番をログに書きこんで終了だな。
108仕様書無しさん:02/10/07 16:58
>>107
そうだよな、知らない奴が見たらビビって HDD を交換してしまうかも
しれない。

漏れなら「ファイル `%s' がオープンできませんでした」とするかな。
何の役にも立たんけど。
109仕様書無しさん:02/10/07 17:18
>>106
正直、これを「単純にコピぺ後の修正ミス」で片付けられてて、かつ
こんなことが、しょっちゅうある職場なら俺なら辞めたく辞めたくて
しょうがなくなると思うけどな。

でも、俺みたいな役立たずは転職も難しいから、しぶしぶ辞めないで
いるんだよ。
そんな会社が嫌で今日はズル休み。
110仕様書無しさん:02/10/07 18:58
>>106
前の職場(某大手)が、こんなソースばっかりだった。
「致命的なエラーが発生致しました。システム管理者に連絡下さい。」
111仕様書無しさん:02/10/07 19:13
むしろハイレベルすぎて辞めようと思ったという話が聞きたいな。
112仕様書無しさん:02/10/07 19:19
>>111
return (d >= 0 && d <= 0xF) ? "0123456789ABCDEF"[d] : -1;
113仕様書無しさん:02/10/07 19:42
>>112 カコイイ!!
114仕様書無しさん:02/10/07 20:03
むしろ、
return ((unsigned)d < 0x10 ) ? "0123456789ABCDEF"[d] : -1;
の方が。
115仕様書無しさん:02/10/07 20:19
>>114は読み易いので却下、112のように読みにくく理解しにくい
コードを書くのがすばらしい。
116仕様書無しさん:02/10/07 20:36
7行スレのノリで短縮。
return"123456789:BCDEFG"[d<16?d%16:16]-1;
まぁ、実際の仕事で使ったらまずいけどなー。
117仕様書無しさん:02/10/07 20:50
ズル休みかよ!
118仕様書無しさん:02/10/07 20:54
>116
112のコードと動作が違うと思うが。
119仕様書無しさん:02/10/07 21:02
>>118
いや、"123456789:BCDEFG"[16]は'\0'が入っているので-1を返す。
だが、'9'のあとには':'があることを前提としたコードだな
120仕様書無しさん:02/10/07 21:33
>119
そこではない。

d < 0 の 場 合 は ど う な る の さ。
121仕様書無しさん:02/10/07 22:11
>>78
>>108
>そうだよな、知らない奴が見たらビビって HDD を交換してしまうかも
これ見て、やっとわかりまつた。(w
あー、よかった。職業プログラマにならなくて。
122仕様書無しさん:02/10/07 23:21
>>120 d がもともとunsignedで定義されていることを祈るか,unsignedにキャストすれば済む
ことでは。ところで>>112>>114ってそんなに読みやすさに違いあります?
123仕様書無しさん:02/10/07 23:24
そんなソースねーだろ、ネタばっかしだな!





と思ってたけど、ここ数日のログを見ていると現実なんだなあと認識を改めますた
124仕様書無しさん:02/10/08 14:44
Private Function mFuncCheckNullTextbox(objTextbox As TextBox) As Boolean

  If IsNull(objTextbox.Value) Then

   mFuncCheckNullTextbox = True
   Exit Function

  ElseIf objTextbox = "" Then

   mFuncCheckNullTextbox = True
   Exit Function

  End If

End Function
125仕様書無しさん:02/10/08 17:31
渇いたのどには、牛乳は健康に悪いそうです。
126仕様書無しさん:02/10/08 17:32
VBだと思うけど、こんなに面倒なことしなきゃいけないの?
127仕様書無しさん:02/10/08 17:34
>>126 面倒だと思う点はどこ?
128仕様書無しさん:02/10/08 17:45
>>124
もしかして、この関数は、どんな値でもTrueを返す関数?
129仕様書無しさん:02/10/08 17:47
俺はVB使ってないからわからないけど、
TextBoxって値が書き込まれていなかったらnullか""が入ってるってこと?
ようするに、どっちかの可能性があるんだよね?
それとも、インスタンスがないって可能性があるってこと?
わざわざこんな関数つくる必要があるのかなと、
そこが面倒くさそう。
130仕様書無しさん:02/10/08 17:48
>>126
VBは確か短絡評価はしない為、orを使う方が駄目コード
しかし、>>124のコードは値に対してIsNullを使い、
オブジェクトに対して""との比較をしている
131仕様書無しさん:02/10/08 18:04
>>126はVBじゃないよ
132仕様書無しさん:02/10/08 18:04
>>130
やっとわかった。ありがとう。
ということは、これはタダの間違いってこと?
コンパイル?時にエラー(VBではなんと言うのだろう)ださんのかな?
オブジェクト名を書いたときってデフォルトでプロパティーというかフィールドというか
なんかが、参照されたりするわけじゃないの?
133仕様書無しさん:02/10/08 18:06
>>102

まさかおまえ errno を知らないなんて言わないよな?
134仕様書無しさん:02/10/08 18:06
>>131
これVBじゃないの?なんなの?
BEGINとか見たら一発で何の言語かわかるけど・・・。
SPLとかしらんよな・・・。
135仕様書無しさん:02/10/08 18:08
>>128
条件に引っかからなかったらFalseを返す。

>>129
VBのTextBoxにはValueプロパティは無い。これは多分VBA(Access VBA?)だと思われる。
VBAのValueプロパティには""とNullは別物として入る。
ちなみにVBにあるのはTextプロパティ。こっちは文字列だけ。
なおTextプロパティはAccessにもある。違いはTextプロパティが画面に表示されている文字列であるのに対して、
Valueプロパティは(連結されているデータベースのフィールドの)実際の値。
Accessを含め一部のDBMSには空文字とNullを別物として扱うためValueには""とNullが入る。


>>130
プロパティが省略された場合既定のプロパティが使用される。
TextBoxの既定のプロパティはValue。だからこの場合は問題ない。
136仕様書無しさん:02/10/08 18:13
>>135
False返す?
値を設定して返さなかったらFalseなの?
VBって恐ろしいなぁ。
137仕様書無しさん:02/10/08 18:13
>>130
オブジェクトと比較してるんじゃなくて、デフォルトプロパティ(.value)の
値と比較してるんでしょ。
138仕様書無しさん:02/10/08 18:14
で、結局124は何を言いたかったんだろう。
コードだけ書いてもわからん。
139仕様書無しさん:02/10/08 18:15
>>136
なにが恐ろしいの? ちゃんと仕様通りの動きだけど。
140仕様書無しさん:02/10/08 18:15
つーか元発言者ももうちょっと何か書き込めよって感じだな。
141仕様書無しさん:02/10/08 18:17
ということは>>124が無知だったってこと?
142仕様書無しさん:02/10/08 18:18
結局>>124のどこに問題があるんだ…?
143仕様書無しさん:02/10/08 18:20
>>139
VBの仕様ではそのとおりなんだろうねぇ。他の言語でもあるけど。
いや、できれば明示的に失敗したことを返すコードを書けばいいのに
と思うわけですよ。
たぶん1行だろうし。

#こういうこというと、「下らんコーディング規則作りやがって」とかいわれるんだろうなぁ。
144仕様書無しさん:02/10/08 18:25
それぞれの言語で書き方が違っていいとおもう。
デフォルトでfalseならそれでよし
145仕様書無しさん:02/10/08 18:26
>>143
明示的に失敗したコードって何よ?
関数の名前(ちょっと気に入らないが)から推測できる動作としてTrue/Falseを返すだけでいいだろ。
""であるかNullであるかを区別するコードを返すかどうかは仕様によることだし。
146145:02/10/08 18:27
× 明示的に失敗したコードって何よ?
○ 明示的に失敗したことを返すコードって何よ?
147仕様書無しさん:02/10/08 18:31
return FALSE
とかじゃないの?
148仕様書無しさん:02/10/08 18:33
VBだと
関数名=返り血
なのかな
149仕様書無しさん:02/10/08 18:36
>>148
え?
150仕様書無しさん:02/10/08 18:40
>>148
そう。気持ち悪いんだけどね。まぁ、そういう言語ということで。
ちなみにVB.NETではreturnになった。
151仕様書無しさん:02/10/08 18:48
ああ、別にVBを馬鹿にしてるわけじゃないよ。
単純にデフォルトでこうなるっていう仕様を知ってる人のみに通用する書き方と、
ちょっとした手伝いでもわかるようにするかき方があると思うのですよ。
>>124のソースの最後に
mFuncCheckNullTextbox = False
とかいてあったらわかりやすいのに。といいたかったんですよ。
VBではこういう書き方はしないほうがよいことでもあるわけ?
ここでも問題になってるデフォルトのプロパティーとかも、
ちゃんとかいてればもっとわかりやすいじゃないですか。
省略しても問題ない環境と、そうでない環境の差だろうと思ってますが。
152仕様書無しさん:02/10/08 18:50
VBでも、気持ち悪いんで明示的にFalse返すコード書いてるけど、
そういう書き方しテルと「VBの仕様も知らんのかゴルァ」とか
言われたりするのかね?

いくつかの言語を使い分けてると細かい仕様はよく和歌らんく
なってくるので安全側(と言うか最低限自分で分かるよう)に
してるのだけど、いいよね?
# スレ違い
153仕様書無しさん:02/10/08 18:51
おれなら
Private Function mFuncCheckNullTextbox(objTextbox As TextBox) As Boolean

  If (objTextbox.Value & "") = "" Then

   mFuncCheckNullTextbox = True
   Exit Function
  End If

End Function
154仕様書無しさん:02/10/08 18:52
いや、これでいいや
Private Function mFuncCheckNullTextbox(objTextbox As TextBox) As Boolean

  If (objTextbox.Value & "") = "" Then mFuncCheckNullTextbox = True

End Function
155仕様書無しさん:02/10/08 19:03
>>153,154
Nullと""違いはいいの? ( >>135参照 )
それともそういうコードなの?
156仕様書無しさん:02/10/08 19:10
>>155
IsNullは遅いからね
157仕様書無しさん:02/10/08 19:15
>>151 >>152
俺も明示的に0で初期化するけどね。わかりやすいコードを書く人は大抵やってると思う。
でもやらないからといって間違いでもない。それだけのことだね。
C言語でstatic変数を明示的に初期化するかしないかと同じような話だね。
158仕様書無しさん:02/10/08 19:29
>>155
文字列とNullとの結合ではNullが空文字に型変換(キャスト)される。
ただ>>154はあまりやりたくないね。理由はわかりにくいから。
よくわかってない人にとっては空文字足してもなんもかわらんじゃんと思うだろうし。

俺は実際にやらないけど>>154をさらに突き進めるとこうなったり。
mFuncCheckNullTextbox = Not Len(objTextbox.Value & "")
159仕様書無しさん:02/10/08 19:29
>>145
論点がずれているな。
160仕様書無しさん:02/10/08 19:32
num = (rand( ) / (RAND_MAX / 5) );
161仕様書無しさん:02/10/08 19:32
>>156
いやいや、そういうことではなくて、
>>135によると、nullと""(空文字)は別物ということらしいけど、
そのコードでnullと""どちらも判定できるの?
VBのこと知らんからホントにわからない。

>>157
そうなんですよ。誰も間違ってるとは言ってないのに、
なぜか突っかかってくるんですよ。
見た目すっきりと、見易さって違うと思うんですけどね。
162161:02/10/08 19:36
>>158
わかりました。
&は文字結合なんですね・・・・。それすらもわからんかったのです。
163仕様書無しさん:02/10/08 19:39
で、結局124は・・・ってもうどうでもいいか。
164仕様書無しさん:02/10/08 19:45
つぎは>>160について語ってくれ!
165仕様書無しさん:02/10/08 19:48
>>158
完璧だす
166仕様書無しさん:02/10/08 19:49
RAND_MAXってなんだ? そもそも何をするコードなんだ?
167仕様書無しさん:02/10/08 19:55
乱数を導き出してるのはわかるが、
こんなコード会社で必要なのか?
168仕様書無しさん:02/10/08 20:00
>>167
飲み会の幹事を決めるとか?
169 :02/10/08 20:02
 ていうか、そもそもテキストボックス型の引数を受け取る
必然性が見えないというのはネタにマジレスなんだろうか。
170仕様書無しさん:02/10/08 20:03
>>168
それだ!
で、番号があとのほうの奴にはあたらないように/5ということかな?
171仕様書無しさん:02/10/08 20:05
たしかに、>>124の関数の存在意義すらわからんね。
172仕様書無しさん:02/10/08 22:33
俺は、>>124の存在意義がわからんね。
173仕様書無しさん:02/10/09 01:40
DB上でもNULLと""は別物だと思った
174名無しさん:02/10/09 03:46
TextBoxってTextプロパティじゃないの?

ネタ?
175名無しさん:02/10/09 03:47
あと関数化するなら、
objTextBoxがNothingかどうかのチェックも入れたほうがいいね。
176名無しさん:02/10/09 03:50
すまん。
>>135に書いてあった
177仕様書無しさん:02/10/09 04:45
>>160
これは「ハイレベルすぎて辞めようと思った」例か?
man rand に書いてあるくらい普通のコードだが。
178仕様書無しさん:02/10/09 07:39
>>160
「5」 がハードコードされてるのが気に入らないのか。
179仕様書無しさん:02/10/09 09:47
>>160が 0〜4 の一様乱数を求めようとしているのならダメ。
rand()==RAND_MAXの時に5を返す。
またint型で演算してるのもダメ。(RAND_MAX/5)で無視できない誤差が
発生する。

>>177
man randに乗っている方法は
num=(int)(5.0*rand()/(RAND_MAX+1.0));
> >>135
> False返す?
> 値を設定して返さなかったらFalseなの?
> VBって恐ろしいなぁ。
価を設定してなかったらゴミを返すC言語の方がよっぽど恐いと思うぞ。
181仕様書無しさん:02/10/09 12:49
>>180
まぁ、そうかもしれん。
が、設定する癖は身につくから。普通はやらない。
VBから入った人間が他の言語で失敗する原因でもあるな。
182仕様書無しさん:02/10/09 12:56
Macの良さに気づかないやつの方が身障だな
>>374の掲示板で頑張ってWinは良いって主張してる
やついるけど、色々書いては、ことごとく潰されてるな
見苦しいね

183仕様書無しさん:02/10/09 12:56
++i++
184仕様書無しさん:02/10/09 13:05
>183
・・・・・・マジ?
185仕様書無しさん:02/10/09 13:11
>>181
Cの処理系は、たいてい初期化してない変数を参照すると警告でるしね。
186仕様書無しさん:02/10/09 13:23
>>135

> VBのTextBoxにはValueプロパティは無い。これは多分VBA(Access VBA?)だと思われる。
> VBAのValueプロパティには""とNullは別物として入る。
> ちなみにVBにあるのはTextプロパティ。こっちは文字列だけ。えんだーせ

その通りですが、3rdベンダー製品(OCX)の一部には、Nullが入るものもあります。
ですので、Nullと空文字列の両方に対応できるようにした方が汎用的です。
もっとも、汎用性を言うなら、Textbox型ではなく、総称Control型を使うべきですが・・・。

> プロパティが省略された場合既定のプロパティが使用される。
> TextBoxの既定のプロパティはValue。だからこの場合は問題ない。

問題ないといえばないですが、可読性の観点で望ましくないでしょう。
状況によっては、コントロールの参照なのか、プロパティの参照なのか
わかりにくくなる場合もあります。
187VB-Slime:02/10/09 13:38
strcpy(f_name1,"Data.");
itoa(num,f_name2,10);
if(num < 10) /* 10以下の場合 */
{
strcpy(f_name3,"0");
strncat(f_name3,f_name2,1);
strncat(f_name1,f_name3,2);
}
else
{
strncat(f_name1,f_name2,2);
}

つまり、「DATA.??」(拡張子が指定番号二桁)というファイル名を作ろうと
してるんだけどね・・・・・・
188仕様書無しさん:02/10/09 13:49
変数名に $loguin ってのがあったとき。
ああ、辞めたさ。
189仕様書無しさん:02/10/09 14:22
>>188
そんなもので会社を辞めてたらきりがないぞ
# $deta, $dat, $dataが混在するソースを保守してる者より
190VB-Slime:02/10/09 14:46
huragu は実際に見たときには目の前暗くなった(w

あと、一文字変数はもう見ただけで

(,,#ノ゚д゚)ノ ≡≡≡≡≡≡≡≡≡≡≡≡ ┻━┻
191仕様書無しさん:02/10/09 15:03
SQLClass っていうクラス名もイヤだった
192仕様書無しさん:02/10/09 15:03
>>190
ループカウンタは、i、j、k、l、m、n・・・ですが何か?
193仕様書無しさん:02/10/09 15:18
ループカウンタって、どうして「i」から始めるんだろうね?
194仕様書無しさん:02/10/09 15:23
>>112
return (d >= 0 && d <= 0xF) ? d["0123456789ABCDEF"] : -1;

>>152
安全側に倒すのは悪いことではないし、そう書くのは自由。
ただし重いループの処理を書く場合は、False とわかっている変数に
False を代入するような事をやるべきではない。
何故か、戻り値設定のコスト、VB の 1 ステートメントの重さを全く
考えない人が多い。

>>183
それコンパイル通らない。

>>186
> 問題ないといえばないですが、可読性の観点で望ましくないでしょう。
> 状況によっては、コントロールの参照なのか、プロパティの参照なのか
> わかりにくくなる場合もあります。
既定のプロパティは指定しても省略しても実行速度に差はないので、
書くのが面倒でなければプロパティ名は書いた方が良い。
しかし、コントロール名だけしか記述しなくても、空文字列 "" と比較
すればオブジェクトの既定のプロパティを使用して文字列値に変革される
事はVB の厳格な仕様。
カスタムコントロールを使用していて、既定のプロパティがどれだか
すぐに判断つかないような問題はあるかも知れないが、少なくとも
「コントロールとプロパティのどちらを参照するのか」 という疑問は
発生し得ないし、そういう所でつまづくような人は VB を知らないと
断言できるので、(それが臨時雇いとしても) 触らせてはいけない。

>>193
i は iterator (反復子) の頭文字。
195仕様書無しさん:02/10/09 15:29
>193
FORTRANでは変数I〜Nが型を指定しない場合は整数型
(他は実数型(だっけ?))として扱われる。
それで、その時代にループカウンタとしてI〜Nがよく使われたらしい。
で、Cでi〜を使うのもその名残。
196仕様書無しさん:02/10/09 15:52
>>194
1ステートメントのコストが問題になるような
VBの重いループってなにがあるの?
197仕様書無しさん:02/10/09 15:59
>>194
代入のコストまで気にする人は当然プロシージャコールのオーバーヘッドも(略
198仕様書無しさん:02/10/09 16:21
1ステートメントのコストどころか、ループの中でSELECTのSQL投げまくるヴァカも多数存在するし。
199仕様書無しさん:02/10/09 16:50
>>195

それ逆。ループにIとかJがよく使われるから、I〜Nが整数型になった。

i,jの元は計算機科学じゃなくて数学だろうな。行列の成分表示A=(a ij)とか。
数学の方でなんで i なのかっつうたら、iterator だからだろうけど。
200仕様書無しさん:02/10/09 16:53
>>198
プロジェクト管理者か上司から指摘されない限り、一生そのまま
(DQNの自覚症状なし)だと思う。

# 指摘されたからって、賢くなるとは限らないが。
201194:02/10/09 16:55
>>196-197
すまそ、突っ込まれて冷えた。
確かに今の PC だと、通常は気にする必要ないな。
VB2 + 486 のレベルで考えてた。

でもいずれにせよ、124 のようの場合で False の代入が無いから
といって、読むのに困ることがあるか?
困らない気がする。
「気持ち悪い」という理由だけで戻り値のセットをしているのは
逆に気持ち悪い気がするが・・・これは宗教戦争になるのか?
202仕様書無しさん:02/10/09 16:56
Dim i, i, j As Integer
203仕様書無しさん:02/10/09 16:57
Dim i, j, k As Integer
204仕様書無しさん:02/10/09 17:05
>>201
VBだけの世界ならそれでいいよ。
205197:02/10/09 17:14
>>201
多分終わりのない戦争になるだろうな・・・

いろんな言語・環境を行ったりきたりするならあった方が安心するし
どうしても無駄な記述に思えるならコメントで書いていてもいいんじゃないかと思ったりする。

特にパフォーマンスや規約などに問題がない限り安全方向にふるのが今のオレのスタイル。
206仕様書無しさん:02/10/09 17:25
>>200
プロジェクト管理者や上司が指摘してくれるような事があるのか?
207仕様書無しさん:02/10/09 17:59
>>203

それ、kしかIntegerにならない。
208仕様書無しさん:02/10/09 18:13
C屋がよく陥る罠だ。
209仕様書無しさん:02/10/09 18:15
>>206
DQNとわかっていても、簡単に切れない状況なら、「指導」するのでは?
210195:02/10/09 18:46
>199
そうだったのか。指摘サンクス。
211仕様書無しさん:02/10/10 01:01
>>194
>>195
iで始まるのって"Integer"のことだと思ってた。
でも数学の方は"Integer"の気がするんだけど。
212仕様書無しさん:02/10/10 01:52
>>203
なまじ、コーダーの期待通りに動くから始末が悪いな。
213仕様書無しさん:02/10/10 01:54
if( CntA >= 100000000 )
  printf( "A: %d%d%d\n", CntA / 100000000, CntA % 100000000 / 10000, CntA % 10000 );
else if( CntA >= 10000 )
  printf( "A: %d%d\n", CntA / 10000, CntA % 10000 );
else
  printf( "A: %d\n", CntA );

if( CntB >= 100000000 )
  printf( "B: %d%d%d\n", CntB / 100000000, CntB % 100000000 / 10000, CntB % 10000 );
else if( CntA >= 10000 )
  printf( "B: %d%d\n", CntB / 10000, CntB % 10000 );
else
  printf( "B: %d\n", CntB );

...

if( CntK >= 100000000 )
  printf( "K: %d%d%d\n", CntK / 100000000, CntK % 100000000 / 10000, CntK % 10000 );
else if( CntC >= 10000 )
  printf( "K: %d%d\n", CntK / 10000, CntK % 10000 );
else
  printf( "K: %d\n", CntK );


いいけどさ・・・。
214仕様書無しさん:02/10/10 01:59
[SysInit.c]
~~~
@Echo Off
If Exist C:\SetEnv\SysInit.Flg Goto End
Call C:\SetEnv\SetEnv.bat SysInit
:End


「ソースコード」のうちに入る・・・かな?
このファイルはどう使われたのだろう・・・。
215214:02/10/10 02:00
あ、ズレ太。
強調したかったのは、ファイル名の拡張子。
216仕様書無しさん:02/10/10 02:07
/* 16進定数 */
#define A 10
#define B 11
#define C 12
#define D 13
#define E 14
#define F 15


うああああ。
217。oO(なんでだろう?):02/10/10 03:12
#define oOoO 10
#define oOoo 11
#define oOOO 12
#define ooOo 13
#define oooO 14
#define oooo 15

int ooooO = (oOOO+oooO+oOoO)*oOoo;

for(;ooooO<0;ooooO--); Oooooo();
218仕様書無しさん:02/10/10 09:43
>>217
U ghost, fuck off!
219仕様書無しさん:02/10/10 10:51
>>217
ネタですか?
それとも、暗号の一種??
220仕様書無しさん:02/10/10 11:58
えーっと、この場合oo4oは・・・
221仕様書無しさん:02/10/10 12:22
>>220
そう来るかあ w
222VB-Slime:02/10/10 14:10
ヘッダーファイルを知らんのか?と言いたくなるソースと現在格闘中。

共通する変数や関数はすべてソース(*.c)の頭で宣言。外部宣言だけで
1000行超・・・・extern宣言なんて言うにゃ及ぶ・・・・

ファイルをまたいで汎用的に使いまくる変数や関数なら、ヘッダに
まとめてincludeすりゃいいのに・・・・何考えてんだーヽ(`Д´)ノ 

223仕様書無しさん:02/10/10 14:12
>>216
>>217
ワラタ
224仕様書無しさん:02/10/10 14:26
>>222
ヘッダー厨も困るとおもいまつ。
自分のソース一本コンパイルするときに
なぜかプロジェクト全体がターゲットに・・・
コーヒー休憩取れちゃうよ(泣)
225長島茂雄:02/10/10 14:29
>>224
いわゆるひとつの makeドラマですな w
226VB-Slime:02/10/10 15:11
>224
あ、それもちゃぶ台投げたくなるなー。
227〜(゜、。)〜:02/10/10 15:40
using System;

class sample
{
static void Main() {
Console.WriteLine("Hallo, Warld");
}
}

228仕様書無しさん:02/10/10 15:46
>>227

> Hallo, Warld

何語だろう・・・?
229VB-Slime:02/10/10 16:18
strncpy()の代わりにmemcpy()使うのって普通でしか?
230仕様書無しさん:02/10/10 17:56
>>211 私はindexだと思ってました。当時iteratorなんて知らなかったし。
231仕様書無しさん:02/10/10 18:59
以前うちの会社は
「革新的な開発方法論につき納期半分コスト半分保守費用半分で出来る」

・・・とか言ってた。


単に役員がデムパなだけなんだが、どうしてくれよう。
232231:02/10/10 18:59
誤爆スマソ
233仕様書無しさん:02/10/10 19:01
>>231
カ○ナさんですか?
234仕様書無しさん:02/10/10 22:16
double fast_sqrt(int x)
{
 switch (x) {
  case 0: return 0;
  case 1: return 1;
  case 2: return 2.2360679;
  default: return sqrt(x);
 }
}

なんで2の平方根が2より大きいのさ……
235仕様書無しさん:02/10/10 23:23
>233
カ(テジ)ナさん?
236仕様書無しさん:02/10/10 23:53
>>228
Halloの方はドイツ語だたりする(同じ意味)。
237仕様書無しさん:02/10/11 01:14
>>234
つーか、その関数になんの意味が・・・?
238仕様書無しさん:02/10/11 11:49
>>234
2.2360679って5の平方根だよね。
つー事は2の時は5の平方根を返すってことだから、えーと、えーと
ナニニツカッテルンダロ?コノカンスウ
239仕様書無しさん:02/10/11 12:21
>>234
「2.2360679」が「1.41421356」の間違いだとしても、

#define RAND(N) (int)((double)rand() / ((double)RAND_MAX + 1) * N)
double fast_sqrt(int x)
{
  // ≫234 の通り
}
int main(int argc, char *argv[])
{
  const int LoopNum = 10000000;
  DWORD Time;
  int i;
  srand(GetTickCount());
  Time = GetTickCount(); for(i = 1; i < LoopNum; i++) sqrt(RAND(4))    ; Time = GetTickCount() - Time;
  std::cout << "sqrt() = " << Time << ", ";
  Time = GetTickCount(); for(i = 1; i < LoopNum; i++) fast_sqrt(RAND(4)); Time = GetTickCount() - Time;
  std::cout << "fast_sqrt() = " << Time << std::endl;
  std::cin >> i;
  return 0;
}
-----------
sqrt() = 1886, fast_sqrt() = 2620
(PentiumIII 800MHz、Windows 98SE、VC++ 6.0 SP5)

どこが「fast」なんだよ。
240239:02/10/11 12:38
>>239
別に rand() 使わなくても、sqrt(2) より fast_sqrt(2) の方が
遅いことがわかった。( ゚Д゚)ポカーン
241仕様書無しさん:02/10/11 12:48
>>240
いや、最適化しなければfast_sqrt(2)の方が速いと思われ
242仕様書無しさん:02/10/11 12:51
239のコードを.cとしてコンパイル。(cout関連はprintfに書き換え。)

sqrt() = 370, fast_sqrt() = 361
P2 266MHz Win2000 VC6++Sp5 (cl -O2 -Ob2)
243239:02/10/11 13:35
>>241
最適化なし (Debug デフォルト) で、
sqrt(2) = 1005, fast_sqrt(2) = 1112 だったが。

>>242
アセンブリリストを見ればわかるが、≫242 のコードは最適化すると
sqrt() や fast_sqrt() を呼んでくれない。
どっちも単なる rand() の呼び出しだけになるので等価。
実行結果のチックがずれてるのはバックグラウンドジョブのせい。

ちなみに最適化すると、sqrt() は関数呼び出しではなく fsqrt 命令に
インラインでアセンブルされるので速い。
fast_sqrt() も最適化オプションによってインライン展開されるが、
コードサイズがでかくなるし、そもそも switch が比較命令と分岐命令に
置き換わるので遅い。
244仕様書無しさん:02/10/11 14:02
>>243
>最適化なし (Debug デフォルト) で、
>sqrt(2) = 1005, fast_sqrt(2) = 1112 だったが。

デバグ情報取っても同じ?エディットコンティニューとか
245244:02/10/11 14:11
自分でやってみるか..
Win2K + VC6 Debug-最適化無効、デバッグ情報(B)しない
Pen3-733x2

sqrt(2) = 1079, fast_sqrt(2) = 375
こんなもんでしょー
『0,1,2しか引数を取らず、最適化無効の場合はfast』、てことだと思うが。
246急行止まれ!:02/10/11 14:12
(reverse (append
'(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20)
'(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20)))

(fib 15)
247239:02/10/11 14:31
>>245
なるほど確かにそうなる。
漏れもまだまだ修行が足りない。

しかし、余程怪しげな事してない限り、リリースビルドで最適化無効
ってあるか??
248245:02/10/11 14:50
最適化無効も無いわけじゃないが、
fast_sqrt()が十分痛いことには変わりなく
249仕様書無しさん:02/10/11 17:00
普通テーブルにするしな(w
250仕様書無しさん:02/10/11 21:17
250get
251仕様書無しさん:02/10/11 23:19
Private Sub Hogehoge()
Exit Sub
Msgbox "Hello World"
End Sub
252仕様書無しさん:02/10/11 23:35
assertが、全てコメントアウトされているソース。
見にくいから、コメントアウトして色変えてるんだってさ。
253仕様書無しさん:02/10/12 00:04
assertなんていらないと思う
254仕様書無しさん:02/10/12 00:14
>251
ワラタ
255仕様書無しさん:02/10/12 03:59
255 Get !?
256仕様書無しさん:02/10/12 05:36
0x100げとずさ
257仕様書無しさん:02/10/12 11:33
さるプロジェクトでは、assertをエラーチェック関数だと思っている方々が
assert(fp=fopen(hogehoge,"r")) なんてのを多用するため、
リリースバージョンでもDEBUG付きでコンパイルする取り決めになっておりました。
258仕様書無しさん:02/10/12 12:49
>257
カコイイ!!
259仕様書無しさん:02/10/12 14:01
>257
アタマワルイ!!
260仕様書無しさん:02/10/12 17:29
独学ですがC/C++/Javaとやってきて
就職した会社で最初に携わった仕事がCOBOLだった。
採用条件ではC++またはJavaと聞いていたので
その点を問いただしたところ
「人手がなくて困っているから申し訳ないがお願いしたい。
これからはオープン系システムへシフトしていくからずっとってわけじゃない。」
と言われ3年経過。。。
最近になってようやくJavaの仕事にありつけたと思ったら
クラス名、メソッド名が管理コード+通し番号だった。
COBOLERがJavaに焼き直したものだった。
はっきり言って萎えた。俺の3年はなんだったんだ。。。
261仕様書無しさん:02/10/12 17:47
>>260
おいらには想像がつかんが、こんな感じになるのか?
package A0100008.AA01.X080030.C0000;
import A0100008.AB01.*;
import A0100009.AB01.*;
public class D0101 {
 private String S0001;
 private String S0002;
 public void E010(int I001, int I002) {
……
っていうか、これでは仕事にならないのでは?
262仕様書無しさん:02/10/12 17:53
//俺の仕事。俺の作品。盗むなよ。
263仕様書無しさん:02/10/12 17:54
>>261
260です。
そんな感じに近い。
COBOLの仕様書をもとに作られているからね。
いまある紙のCOBOLの仕様書とにらめっこしながら
Javaプログラム書いているよ。泣きそう。
264仕様書無しさん:02/10/12 18:04
>>260です。
クラス名の4文字目がUだったらユーザに関係するクラス。
Gだったらグループに関係するクラス。
クラス名の5文字目が1だったらシステム1で扱われる
2だったらシステム2で扱われる
・・・
みたいな。
過去にCOBOLやっている会社ってこうなんですかねー?
265仕様書無しさん:02/10/12 18:10
>>そんな感じに近い。
まじっすか? なーんてね。COBOLerの仕様書を前、見たことがあったけど、
構造化した箱毎に通し番号がついてたから、あれを忠実にメソッド名にしてんだろうな。
とりあえず、移植の部分は、ある意味しょうがないからガンガレ。
新規案件/追加のところから、OOしてくしかないだろ? そのためには、新規の案件
拾わなきゃならないし、既存の部分をちゃんと作ってJavaでの納入実績を上げるしか
ないじゃん。
266仕様書無しさん:02/10/12 18:14
>>261
なんか国家機密の暗号みたいだ・・・。
機密関係のプログラムって変数で内容を悟られてはいけないってことで
こんな風に書くとかってあるのかなぁ。
267Mr.名無しさん:02/10/12 20:45
>>266
企業情報が盗まれないようにソース読みにくくするための基本だよ。
関数や変数の名前をすべてIとlと1の16文字くらいの名前にしたり。
もっともそのまま開発するわけないけどね。
268仕様書無しさん:02/10/13 02:45
俺はそういうソースを「血が通ってない」と呼ぶ。
保守性を品質の尺度にしていれば、そんなソースは納品できないはずだが。
269仕様書無しさん:02/10/13 02:59
血の通ってるシステム作りたいね〜
銀行開発なんてもう…
IBMがらみだとそうなりますな。
向こうがコボラーかどうかは知らないんですが
少なくともソースそのものは書けそうもない。
271仕様書無しさん:02/10/13 03:27
package sarina;
package alice;
package yuuka;
package runa;

何のためにこうなってるんだか知らないんですけど
「アリスパッケージのxxxxってクラスの〜」とか聞くの
めっちゃ恥ずかしい・・・うぅ、勘弁してほすぃ
272仕様書無しさん:02/10/13 03:30
runa?
273仕様書無しさん:02/10/13 04:06
VBでLabel1,Label2,Label3.......Label523とかいうのが延々と設定されているのはたまにあるよな
ラベルだからいいだろ、と思うのは早とちり。
Text1,Text2,Text3...Text82なんて当然!の会社も多い
274仕様書無しさん:02/10/13 04:14
>>273
VB .NETでは、コントロール配列が無くなって
そんな感じのソースが増えそうな悪寒
275仕様書無しさん:02/10/13 06:27
「コントロールの配列」型のフィールドを作って、それにコントロールへの参照を並べておけば、配列のように(ってか配列で)アクセスできますよ。

C#なら
buttonArr = new Button[]{button1,button2,button3};
といった感じ。for分などで処理する場合に楽でいいかも。
276仕様書無しさん:02/10/13 08:16
>>274
コントロール配列があろうとなかろうと、
マジックナンバーのついた名前のコントロールは
減らないという罠
277仕様書無しさん:02/10/13 09:57
トータル4万行もあるのに
ファイル1つで関数がmain()とsub1()〜sub11()しかねー。
変数名は a〜z, aa〜zz。
278仕様書無しさん:02/10/13 11:40
>>266>>267
機密性を高めるためにソース読みにくくするのが目的なら、
最終ビルド直前にObfuscator使って、ビルド専用のソースを作ればいいじゃん。
開発中からんなことやると、後々メンテできなくて地獄を見るんだよ。
メンテ用ソースは、金庫にでも入れときゃいい。
279仕様書無しさん:02/10/13 11:52
>>278
開発途中のソースが流出したらどうする?
280仕様書無しさん:02/10/13 11:54
開発できなかったらどうする?
281仕様書無しさん:02/10/13 12:16
>>278
開発者が死んだり逃亡したりして、残された人に責任移ったらどうする?
282仕様書無しさん:02/10/13 13:09
ネタをネタと(以下略
283仕様書無しさん:02/10/13 13:24
>>279
ソースが流出するような管理をしている企業に、
流出しては困るような案件がくることは無いから安心しる。

>>281
そのために、メンテしやすいソースとドキュメントを残せ。

と、マデ゙レスしてみるペスト
284:02/10/13 13:51
Private m_cnn As New ADODB.Connection

Private Sub Class_Initialize()
'オープンコネクション
Set m_cnn = New ADODB.Connection
End Sub

Private Sub Class_Terminate()
'コネクションのクローズ
m_cnn.Close: Set m_cnn = Nothing
End Sub

Public Function ConnectionDataBase(strDbPathName As String) As Boolean
'オープンデータベースの設定
If m_cnn.State > 0 Then 'コネクションが開いていたり接続中だった利した場合処理中止
ConnectionDataBase = False
Exit Function
Else
m_cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDbPathName
End If
End Function
285仕様書無しさん:02/10/13 13:58
>>284
ちゃんとおかしいと思う所を明記しろよ。
286仕様書無しさん:02/10/13 14:02
どっちにしろFalseが返る?
&エラー処理無し?
'コネクションが開いていたり接続中だった?
287ぷり:02/10/13 14:07
288仕様書無しさん:02/10/13 14:11
<A HREF="どーやって>>30みたいにハイパーリンク張るの?">
どーやって>>?ってハイパーリンク張るの?
</A>
289仕様書無しさん:02/10/13 14:12
>>288
>>30のどこにもハイパーリンクは無いだろ。

30 :仕様書無しさん :02/10/02 20:21
自分の作ったソースをみて辞めたくなった事があるな
290仕様書無しさん:02/10/13 16:07
つか、>>284みたいなVB特有っぽい話されても
さっぱりわけわからんのは俺だけか?
291仕様書無しさん:02/10/13 16:55
はーい、おいらも分かりませーん。
292VB-Slime:02/10/13 16:55
えーっと。DB関係はよーわからんが、つまり、DB名の指定がアレだってこと?
293VB-Slime:02/10/13 16:58
追記。
>284さん教えてけれ、上二つで宣言した関数は使用してるの?
外部変数で
  Private m_cnn As New ADODB.Connection
と宣言しているにもかかわらず、Initialize関数で
  Set m_cnn = New ADODB.Connection
と重複しているのがアレなの?

あぁぁぁADOは苦手じゃ。
294仕様書無しさん:02/10/13 17:19
わざわざアホでも分かるコメントがアレって事?
295仕様書無しさん:02/10/13 17:22
あぁ、あれか。

/* a を b に代入 */
b = a;

とかいうコメントか。見りゃ分かるっちゅーねん。
296仕様書無しさん:02/10/13 19:04
>>293
ほう、つまり >>284

void main( int argc, char *argv[] )
{
 int a = 0;
 int b;

/*各種初期化*/
 a = 0;
 b = 0; 

 /*引数の判定*/
 ・
 ・
 ・
}

という関数を見たら会社を辞めたくなるのか。
そんなやつ、こっちから願い下げだな。
297仕様書無しさん:02/10/13 20:16
>292
うちの会社はDB名は内容の如何に関わらず
「ナッパ」や「ベジータ」などの名前を適用します。
298仕様書無しさん:02/10/13 20:28
>>297
激しく尿意!!
299仕様書無しさん:02/10/13 20:53
>>295
たしかに、ふつうの人には「見ればわかる」んだけど、だいぶ以前、
「小熊ちゃん」スレで、「比較演算子と代入演算子の区別がつかない
DQNには有効なコメント」って指摘があったような気がする。(^^;
300仕様書無しさん:02/10/13 21:31
/* a を b に代入 */
a = b;
301仕様書無しさん:02/10/13 22:05
>>297
うちの会社は管理者(といっても開発者)の趣味で
ホスト名に制服向上委員会のメンバーの名前を付けてたぞ。
なんで女の名前が付いてるの?と聞いたらそういうことだった。
マニアック。
302仕様書無しさん:02/10/13 22:09
>296

この場合は


void main( int argc, char *argv[] )
{

/*整数としてaを宣言*/
 int a;
/*整数としてbを宣言*/
 int b;

/*aを0に初期化*/
 a = 0;
/*bを0に初期化*/
 b = 0; 

 /*引数の判定*/
 ・
 ・
 ・


てなかんじではないかと。
303仕様書無しさん:02/10/13 22:13
>>296 >>302
mainの戻り値はintにしろ
304仕様書無しさん:02/10/14 09:39
>>1
>COBOLライクなソースコード。(゚д゚)マズー
今現在COBOLで開発をやらされているんだけど、COBOLのソースは書いちゃダメ?
305仕様書無しさん:02/10/14 10:08
仕事なら仕方がないな。
ただ、COBOLしか知らないくせに自分は優れたPGだと思っている奴や、
COBOLの書式は世界で最も素晴らしいものだと思っているような上司や先輩がいれば、
鼻で笑ってやれ
306仕様書無しさん:02/10/14 10:13
>>304
COBOLそのものじゃなくてCOBOL的なスタイルを他の環境へ引きずって逝くのが
問題だと思われ。
307仕様書無しさん:02/10/14 12:32
いや、COBOLERから見た、この会社辞めようと思ったソースコードというのも
知りたいぞ
308仕様書無しさん:02/10/14 13:26
確かに貴重な声かも。
309エセこぼらー:02/10/14 13:50
まず、変数名に通し番号が振られていないソースだろー。
あと最近流行りのOOなんて論外だねー(以下省略
310仕様書無しさん:02/10/14 15:00
>307
それは多分、漏れらの逆だろ(w
311仕様書無しさん:02/10/14 16:24
>>309
小文字が使われているソースが先頭だとおもふ
312仕様書無しさん:02/10/14 17:10
COBOLの中にSQLが埋まっているのは気持ち悪いです。

313仕様書無しさん:02/10/14 18:46
>>307
>いや、COBOLERから見た、この会社辞めようと思ったソースコード
こーゆーやつじゃないの??

for(map<string, map<string, string>>::iterator itrMap = RegMap.begin(); itrMap != RegMap.end(); itrMap++)
{
  ...
}
314仕様書無しさん:02/10/14 19:00
http://www.coboler.com/cobol03.html
↑に反するソースコードは全部否定するんだろう。
ちなみに、↓のソースコード、
http://www.coboler.com/web01.htm
何書いてあるんだかサパーリわかんねーや。
こういうコードは例えCOBOLでも男割りだ。ォェー
315仕様書無しさん:02/10/14 19:30
>314
ハゲドウ
316仕様書無しさん:02/10/14 20:23
>>314
・・・すげぇ、本当に何がなんだか分かんねぇや。
実はコボルってかなり能力高くないと出来ないんじゃない?
317仕様書無しさん:02/10/14 20:41
>>314
鼻血でますた。

>>316
ある意味同感。
318仕様書無しさん:02/10/14 21:04
真面目に組んだら教科書通りの構造化プログラミングを具現化することに
なるからなあ。
他の言語のようなウルトラCも出来ないかわり、訳解らんバグも出にくい。
それがCOBOL。
319仕様書無しさん:02/10/14 21:20
>>318
314のようなコードはウルトラCとは言わんのか
あんなコードでバグが出たらデバッグするより会社辞めるゾ
漏れもCOBOLやるがあんな酷いコードは氏んでも書かない
320仕様書無しさん:02/10/14 23:11
COBOLerから見た「辞めようと思った」は
「能力的についていけないから」「周りCOBOL知らなくて仲間いないから」
の場合だけかと思ってた。 >>314
321仕様書無しさん:02/10/14 23:28
>303
うちの会社は戻り値longですが、何か?
322仕様書無しさん:02/10/15 01:08
>>314 読んだけど、命令なんて数個しか使ってないじゃん。
どこがどうわからないんだろう?
最初のデータ部に惑わされてんじゃないの?
323仕様書無しさん:02/10/15 01:16
>>322
つうかその長いデータ部がわからんってことだろ
324仕様書無しさん:02/10/15 01:41
>>314
COBOLerすげぇ・・・

ある意味ここまでがんばれるなら
その集中力で他の言語さくっと覚えられると思うんだが。
325仕様書無しさん:02/10/15 01:54
>>323
ほえ?
データ部なんて判る必要がどこにあるの?
326仕様書無しさん:02/10/15 02:25
>>325
あんた、ただのコーダーで、プログラマですらないだろ。
327仕様書無しさん:02/10/15 02:26
>>314
COBOL全然知らないんだけど、なんとなくBasicとアセンブラが思い浮かんだ。
328仕様書無しさん:02/10/15 04:00
>>314
あんまりこのページを叩くつもりはないんだが…

>4.変数・宣言・代入・構造体・配列 など全く聞いた事無くても OK
>  (そんな理屈っぽい事は関係ないんです。)

これだけはちょっとどうかと思った。

理屈とかそういうんじゃなくて、たとえば配列とか構造体は
ある一塊のデータ群をまとめて扱えたら便利だよね、というところから
きているのであって、理屈のためにあるオモチャじゃないんだが。

全てのCOBOLerがこういう風に考えているわけじゃないんだろうが、
なんかものすごく努力してるように思えるなあ。
構造体を使わない(知らなくてもいい)ってのは本来一塊のデータであるものを、
ひとつひとつばらばらに、それぞれケアしてやるってことだろ。努力だよな。

努力するやつはプログラマには向かないんだよ。
手抜きを必死に考えるやつじゃないとプログラマとして失格だとさえ思う。
そのための手段として構造体があったり配列があったりするんだがな。
329仕様書無しさん:02/10/15 04:35
>>322
> 命令なんて数個しか使ってないじゃん。
> どこがどうわからないんだろう?

一体誰が、コードの挙動がわからないって書いた?
COBOL のインストラクションは誰もが認める通り易しいから、そんな事では
迷ったりしない。
いやむしろ、少ないインストラクションの種類でいろいろできてしまうところに
大きな弊害がある。

> 最初のデータ部に惑わされてんじゃないの?

DATA DIVISION が痛いのは確かだが、それだけじゃない。


くだんのソース、COBOLer ソースとして高齢なので、突っ込みどころを考えよう。
330329:02/10/15 04:36
・ 変数名などが、その保存内容を的確に表していない。

・ WT-60DAT 〜 WT-160DAT が、数字が羅列されているのはわかるが、つまり
  何を表すのかサパーリわからない。
  呼び出し元の HTML 見て何とか、おそらく宅急便の送料を定義しているのだ
  ろうと見当をつける事はできるが、断定はできないし、もしそうだとしても
  どの数字が何の値段なのかサパーリわからない。
  料金に改定があった時どう修正するんだ?
  っていうか、これだけの規模のテーブルだったら普通、速度やセキュリティ
  や負荷等の問題が無い限り外部データファイルか DB にする。
  (DB にしたら、このソースのほとんどは SQL で済むし)

・ PROCEDURE DIVISION にいきなり処理が記述してあって、コードを全部読んで
  完全に理解しない限り何をやっているのか判断できない(まともなソースなら
  そんな事する必要は無い)。
  普通はラベルを貼るし、そうでなくてもせめてコメントを振る。
  そういえばこのソース、あるべきコメントがほとんど無い。

・ どこにも定義も説明もされていないサブルーチン "SUBX" が、いきなり使われ
  ている。
  「TinyCOBOL」 とやらに付いてるの?
  まあ、数字を表す文字列を解釈して数値に変換しているんだろうとは、何と
  なくは見当つけられる(にしても、そのサブルーチン名は何だ?)。
  そう断定できないのは相変わらず。
331329:02/10/15 04:37
・ WK-INDEXH と WK-INDEXC の判別処理はまったく同一なのに、ルーチン化せ
  ずにお得意のコピペでやってのけている。
  しかもこの判定には EVALUATE を使えるのに IF 文で頑張っていて可読性
  が著しく低いし、何より判定条件も結果の数値もマジックナンバーだらけ
  で、何をどう判定してその結果どうしているのかがサパーリわからない。
  これがこのソースの一番の問題点。

・ PERFORM を使うべきところで、お得意の GO TO を使っている。
  それもそもそも、コードが構造化されていないから当然と言えば当然。
  だから、コードを全部追って動きを把握しないと、どういう処理をしてい
  るかわからない。
  構造化されていなくても処理を把握できないと言うことは決して無いが、
  しかし理解のために必要な時間が違う。
  それとも、コンパイラが PERFORM 未対応? いやしかし、それにしたって
  もう少し書きようがある。

以下は重要ではないが、

・ ACCEPT の格納先、チェックでは LOW-VALUE かどうか訊いているのに、初期値
  は ALL '$'でいいの?
  ついでに言えば、格納先はお得意の連番名。

・ WT-60DAT 〜 WT-160DAT のデータを切り出すために、WT-60TBL 〜 WT-160TBL
  に移送している(コンパイラが REDEFINES 未対応なのか?)。
  それはいいが、データはみんな同じ形してるんだから、移送先は 60 〜 160
  まで用意しなくたって 1 コで充分なんじゃないの?
  そのせいで本来不要な EVALUATE 仕込んだりしてるし。
332329:02/10/15 04:37
・ どこの処理にも使っていない SW-ERR に、一所懸命フラグを立てている。
  読み手を惑わすのもいい加減にしろ。

・ 「ゆうパック」 の処理は?
  「定型外郵便」 はどこに消えた?

・ 呼び出し元の HTML も出力側の HTML も、!DOCTYPE が無い。
  エレメントの属性値も、呼び出し元は " でくくってるのに出力側はそうして
  おらず一貫性が無い。
  表示できればそれでいいのか?

・ cgi-lib.pl の ReadParse を使っているくせに、「COBOLでのCGI
  プログラミングが出来ました」 とはよく言ったものだ。
  っていうか全部 perl でやりなさい、その方がずっと楽だから。
  ・・・しかし、書いたからにはある程度 perl わかるはずなんだけど、
  なのに敢えて COBOL で書くというのはつまり・・・。
  ・・・えーっと、COBOLer の定義は・・・。
  ・・・。
  この人とは仕事したくないな。


漏れも修行中だからまだ甘いかもしれないが、それでもこれぐらい並べられる。
そしてこういう事は、プログラマなら把握しなければいけない(わからなくて
いいのは 326 の通りただのコーダーだ)。
333329:02/10/15 04:38
>>325
> ほえ?
> データ部なんて判る必要がどこにあるの?

あなたは上に書いたような事を踏まえて言ったか?
まさか、そういうのは SE の仕事だァ、なんて言わないよな?
そもそもこのソースは CGI だが、もしこれを一人で管理するような場合でも、
データ部なんて判る必要はないと言い切るか?

それともし 325=322 なら、「どこがどうわからないんだろう?」 と言った上で
「データ部なんて判る必要がどこにあるの?」 と言い放った事になるが、矛盾して
ないか?

314 は、まだ 500 行程度で収まっているからかわいい。
これが 1 万行だ 2 万行だ来た日には・・・辞めたくもなるわな、本当に辞める
かどうかは別にして。
334329:02/10/15 04:38
まともなプログラマなら、言語が COBOL でも綺麗なソースを書く。
COBOLer は、言語が COBOL でも汚いソースを書く。

書いた本人は、それのどこに問題があるか理解できないから始末に負えない。
314 のようなソースを書いておきながら、「どこがどうわからないんだろう?」
とか言うかも知れないな。
そして COBOLer は COBOL のみならず、他言語でもその 「信念」 を貫く。
困ったものだ。
そう、漏れから席 5 つ離れているあなた、あなただよ。

・・・あれ、スレ違い?


>>328
> あんまりこのページを叩くつもりはないんだが…

叩いてもいいと思うぞ。
あなたが突っ込んでいる通り、問題があるのは確かなんだから。
それが個人の日記サイトとかならともかく、314 は技術系サイトだろう?
335仕様書無しさん:02/10/15 08:03
 3 2 9 必 死 だ な (藁
336仕様書無しさん:02/10/15 08:23
329の説明は分かりやすかった。

それにしても、普段よっぽどひどいめに
あわされてるんだな(w
337329:02/10/15 12:43
>>335
おう必死だよ (涙)

>>336
自分で読み返してみたが、かなり恨みがこもってるな。
338仕様書無しさん:02/10/15 15:18

まー少なくとも >>329 が COBOLer ではないこと、そして COBOLer に
(かなり)酷い目に合わされたコトだけは確かだな(藁。俺も経験あるから同情するよ。

www.coboler.com を叩くスレでも立てるか?w
339仕様書無しさん:02/10/15 15:55
>>329
325 です。いや、ご苦労様。
私は「あのソース読めないの?」と言ってるダケなんだが。

「判らん」と言っている人が読めた上で、中身が許せないと
言っているんなら別に良いです。
サンプルソースに一々突っ込む気も無いし、別にあのサンプル
に従わないといけないいわれも無いし。


340仕様書無しさん:02/10/15 16:41
コボラー ドット コムはCOBOL
のプロ集団を目指します。




恐怖
341329:02/10/15 18:15
>>339
ああ、そういう事を言いたかったのか。

しかし、「ソースを読む」 ってのは 「ソースを理解する」 ことではないんか?
「ソースを追う」 だけだったら、余程の DQN でない限り COBOLer でもできる。
この板に来ている人で、314 のソースを追えない人はヤヴァイぞ。
COBOL 知らない人ならハンデあるが、でも大体の予想はできるだろう。

プログラムがどう動いているのかはわかる。
でも、なんでそう動かしているのかはサパーリわからん。
と、314 からのみんなはそう言いたいのではないか?
あと、

> 別にあのサンプルに従わないといけないいわれも無いし。

まさしくおっしゃる通りだが、厳格に従っているのではないかと疑いたくなる程に
腐ったソース、そしてそれを書く人が溢れているのは確かだ。

>>340
頼むから毒は撒き散らさないでくれと祈るしかない (((( ;゚Д゚))) ガクガクブルブル
342仕様書無しさん:02/10/15 21:45
coboler.comって明らかにネタだろ。
実はcoboler.comのボス[email protected]
だったりして。
343最凶VB厨房:02/10/15 22:18
そのサイト、なんか宗教臭いなぁ。
344仕様書無しさん:02/10/15 22:30
http://www.coboler.com/cobol07.html
> ● 今までのメジャーデビュー
> ・ NHK ニュース特集 残業の実態 (プログラム作成中の姿が映りました)  
(・∀・)イイ!!
345名無しさん@Emacs:02/10/15 22:54

HTMLファイルの命名からして年季が入っているなぁ。

ネタだとしたかかなり芸が細かいぞ。
346329:02/10/15 22:55
>>342
> coboler.comって明らかにネタだろ。

そーだったら嬉しい。
・・・って、

> 実はcoboler.comのボス[email protected]
> だったりして。

ヽ(`Д´)ノ ウワァァン
ところで root@jt4... って何?
347仕様書無しさん:02/10/15 23:10
342が泣かした
348仕様書無しさん:02/10/15 23:23
http://www.coboler.com/cobol01.html
みてみるとネタだと思うんだが...ううむ。

なぜ体育会系なのか?

4.コボルのプログラマー いわゆるコボラーは体力仕事が多い。
残業・徹夜の多いコボラーは体力で乗り切る。気持ち良い汗を流しながらプログラミングが出来る。


ネタにしちゃここまでCOBOLマスターできたらすごい。
349すぷーん ◆ILspoonCC. :02/10/15 23:27
>>348
ネタっぽいねー。
徹夜してかく汗は気持ちいいわけないし。

パソラーってなんだろ。
350Cプログラマ♥:02/10/15 23:31
初めてCOBOLのコード見た。
絶対やりたくねぇ〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜!!!!!!!!!!!
351仕様書無しさん:02/10/15 23:40
>>348
ネタだとは思うけど、割と真実だよ。
バブル以前は、体育会系のコボラーが多かったし。
大量生産できて即戦力、使い捨てできるから溢れてた。
今、どーしてんのか知らんけど。
352348:02/10/16 00:36
ネタだと思うだろ?>ALL

しかし、掲示板なんか見てるとねたに見えない部分もある...
ところでこのコードってtext editorで書くの?
353仕様書無しさん:02/10/16 01:04
 噂に聞くCOBOLとはこのようなモノだったのか・・・
おっそろしい・・・いやマジで。

IF文の羅列あたりでオレの脳のスタックは使い果たされた上に,
最初論理改ページ機能でもあるのかと思った。
どんなエディタで書いたんだろうって真剣になやんだ。

誰かが鼻血出るとか言ってたけど,
ホンマに亀仙人級に鼻血出るな。
354仕様書無しさん:02/10/16 01:06
COBOLでWebアプリってのが、時代錯誤も甚だしくって、よさげ(w
355仕様書無しさん:02/10/16 01:15
COBOLが悪いわけじゃないけどね。
他言語をそれなりに経験している人のCOBOLソースは
ワリとキレイで読みやすい。自信があれば、自分で書い
てみればわかると思うけど。

ただ、DATA DIVISION の特殊なお約束や COBOLの種類に
よる方言なんかが辛いとおもう。ってゆーか方言きつすぎ。

356仕様書無しさん:02/10/16 01:25
このすれが ぜんぶひらがなでかいてあったら よむきがしますか?
こぼるとは、すべてひらがなでかくことによって「だれでもよめる、だれでもかける」と
しゅちょうしているようなものです。
ちなみにもれはがくせいじだいにばいとでこぼるをやらされたことがあり、
よみかきはできました。そのときにじょうきのようなかんそうにおもいいたりました。
357仕様書無しさん:02/10/16 02:57
暇つぶしにこんなことしてる自分に鬱、、、

inline USHORT fast_htnls(USHORT v) {
__asm MOV AX, s
__asm XCHG AH, AL
}

inline ULONG fast_htonl(ULONG l) {
__asm MOV EAX, l
__asm BSWAP EAX
}

inline ULONGLONG fast_htonll(const ULONGLONG& ll) {
__asm MOV ECX, ll
__asm MOV EDX, [ECX]
__asm MOV EAX, [ECX+4]
__asm BSWAP EAX
__asm BSWAP EDX
}
358仕様書無しさん:02/10/16 09:05
>>357 (・∀・)イイ!!
でも fast_htnls() は fast_htons() だよな?
あと、そんな立派なコードでは別に鬱にも会社辞めたくもならん。
359仕様書無しさん:02/10/16 09:08
fast_htnls()は16bitインストラクション
360仕様書無しさん:02/10/16 10:25
役に立つ秘蔵関数群を公開するならイマノウチ。
forceinline void non_operation() { _asm nop }
forceinline void pipeline_flash() { _asm __emit 0xeb _asm _emit 0x00 }
inline void death() { _asm __emit 0xeb _asm _emit 0xfe }
inline void cpu_death() { _asm cli _asm hlt }
inline void wait_for_irq() { _asm sti _asm hlt }
361仕様書無しさん:02/10/16 11:04
>>360
(´Д`)
362仕様書無しさん:02/10/16 11:05
グッジョブ(´Д`)b
363仕様書無しさん:02/10/16 11:29
>>360
このコードが役に立つとは思えん。

non_operation() や wait_for_irq() は使いそうな気がしないでもないが、
それにしたってそういう細かい制御が必要になるソースは、普通フルアセンブラ
で書かないか?
細かい事言えば、nop は no operation の略だ。
あと、wait_for_irq() に sti は必要か?

pipeline_flash() は一体どういうつもりなんだ?
CPU のパイプラインをフラッシュして楽しいか?
あと、これは良く知らんが無条件ジャンプはパイプラインフラッシュするのか?

death() と cpu_death() はどんな場面で使うんだ?
コンピュータ固まらせて楽しいか?
death() は名前だけじゃ何が死なのかわからないし、せめて die() だろ。
つーか __asm _emit 使って分かりづらくしなくても、C で loop: goto loop;
でいいだろ。

・・・ああ、「この会社辞めようと思ったソースコード」 か?
364仕様書無しさん:02/10/16 11:37
Em Am
具体的明確な説明ができないという事は
D7
あなた
Em Am
本当に説明したい内容を理解していないんですよ。
B7
あなた
Em Gmaj7
本当に頭の回転がわるいですね。
Em B7
あなた
Em
自覚しろよ

365仕様書無しさん:02/10/16 11:49
>>342>>348-349>>351-352
ネタでわざわざドメイン取るか? だったら凄いな。
366仕様書無しさん:02/10/16 11:53
>>364
この板で扱ってるのはそのコードじゃない
367仕様書無しさん:02/10/16 12:51
>>548
あのババアなんつったけ?
清川虹子?

高田純次が、清川虹子の 指輪やダイヤのコレクションを拝見する企画。
高田が、高い指輪を口に入れて、清川が激怒してビンタ張ったり、
口から出したガムを ビロ〜ンと指輪にくっつけたり。
それと、なんと言っても、清川のぶ厚い唇に虫メガネをあて、
巨大唇に見せるのは最高だった。(大笑)

もう死んだんだっけ?ウプププ
ぷっぷー!!
368仕様書無しさん:02/10/16 12:56
>>365
ネバースペースという、ネタでドメイン取ってネタで会社経営している(つもり)の人もいることだし。
369仕様書無しさん:02/10/16 13:37
成果物として
フローチャートやらDFDやらジャクソン法で書いた構造化設計書やらを
強要してくるんだがどうしたものか。
言語はJavaね。
UMLは社内規定にないので却下。
規定書の承認欄には昭和と書かれた印が。
370仕様書無しさん:02/10/16 13:48
>>364
ワラタ
・・・つうか、>>366見るまで意味がわからんかった (^^;

>>369
安易だが、CASEツールで自動生成するのではダメ?
371仕様書無しさん:02/10/16 13:52
>安易だが、CASEツールで自動生成するのではダメ?

ドキュメント後付ってこと?
372仕様書無しさん:02/10/16 14:05
>>371
JavaDocは思いっきりドキュメント後付だが?
373仕様書無しさん:02/10/16 14:07
>>372
仕様書が後付になるのか、JavaDocのようなリファレンスが後付になるのかで、
意味が変わってくるな。
374仕様書無しさん:02/10/16 20:14
みんなよけろ。こぼらーだけはゆるせない
375仕様書無しさん:02/10/16 20:24
>>363
メール欄に釣りが入ってませんよ、と
忘れただけ?
376342:02/10/16 21:06
>>346
digしてみるべし。あのサイトかなり色々面白いから。
377仕様書無しさん:02/10/16 21:31
下を見て辛さを紛らわすなんて…憐れ。
378仕様書無しさん:02/10/16 23:16
上司「おい!まじかよぉー!桃井望焼死だってよ!」
379仕様書無しさん:02/10/17 00:02
>>378 スレ違い
380仕様書無しさん:02/10/17 00:23
桃井望って何?
381仕様書無しさん:02/10/17 01:20
>>380
スレ違い
382仕様書無しさん:02/10/17 01:33
>>369
所謂、手段の目的化の典型ですね。いったい何のためにドキュメントを
書くのかと小一時間(ry)。まーどっちにしろ見ないんだろうから同じか。
383MACの勝ち:02/10/17 13:21
void f(int N, int delta) {
int i; // 宣言
for (i = 0; i < N; i++) {
// iを使う
}
for (i = 0; i < N; i++) {
if (...) {
break;
}
}
if (i != N) {
// ...
}
i = N ? delta*2;
// ...
}
384仕様書無しさん:02/10/17 14:02
>>383
何やってるかようわからんが、まずはインデントしる!
っていうか、i = N ? delta*2; ← 文法エラー。
で、何がいかんのだ?
385仕様書無しさん:02/10/17 14:05
>>384
馬鹿みたいなコメントの付け方してるからじゃねーの?
386仕様書無しさん:02/10/17 14:45
>384
文法エラーはともかく
・同じ変数の使いまわし
・一文字変数( N って書かれても意味分からん)
・CだからOKなのだと思うけど、Loopをbreakして
 その時のiが有効だと思うのはちょっといや
結局よくわからん…
387ゾウキンマン:02/10/17 16:49
職場によって閉じカッコのスタイルが異なる。
今回の担当事業所でのコーディング規約では、、

for (cntnow = 0; cntnow < datcnt; cntnow++) {
if (p_segment->seg[cntnow].ptn == -1) {
break;
}
}


のようなスタイル。しかし以前の事業所では以下のようなスタイルが
コーディング規約で定められていた。

for (cntnow = 0; cntnow < datcnt; cntnow++)
{
  if (p_segment->seg[cntnow].ptn == -1)
  {
   break;
  }
}

客先の仕様にのっとってコーディングせねばならないのですが
前者のパターンはまだ場数をさほど踏んでおらず、如何様にしたら
身になじんでくるのだろうか、、エディタを変えるなどの環境で
随分快適になるものでしょうか?

viでshift+%でスコープを確認するときとても苦痛なのです、
両方のスタイルを行き来しておられる先人諸氏はどのように対処して
おられるのでしょうか?

388仕様書無しさん:02/10/17 16:51
>>387
indentとかのソース整形ツール。
389仕様書無しさん:02/10/17 16:54
>>387
変態的なインデントで無い限りは対処できるので問題ない。
どうしても我慢できないなら >>388 だな。
390仕様書無しさん:02/10/17 16:58
>>387
ほう、インデントのないコーディング規約は初めてみた
というのはおいておいて。

実際、続けてみるとわかるけど数週間で慣れる。
どうしても慣れなければ、以下のツールを使って整形したのを提出しろ。
http://www.linux.or.jp/JM/html/GNU_indent/man1/indent.1.html
391ゾウキンマン:02/10/17 17:05

 indent、、早速探して参ります。 

  時にインデントがキッチリ揃っていないと、ドキュメント生成
 ツールが受け付けてくれない事があるのですが、ツールに通した
 あと手で修正すれば済みそうです。

 仕様書無し殿は随分場数を踏んでおられるようですね。
 素早いご返答に感謝致します。
 
392ゾウキンマン:02/10/17 17:07
追伸。 下の例のインデント、私の入力ミスです。
一段下がっております。 ご指摘ありがとうございました。
393仕様書無しさん:02/10/17 18:17
Null切り取り関数

Public Function CatNull(ByVal NulStr As String) As String

猫かYO!?
394仕様書無しさん:02/10/17 18:26
ヌルヌルネコ
395仕様書無しさん:02/10/17 18:31
>>393
> 猫かYO!?
いいえ、じつはNULLを連結する関数です。
396仕様書無しさん:02/10/17 18:47
PussyCutNull...
397仕様書無しさん:02/10/17 19:42
>>396
イタソー
398仕様書無しさん:02/10/17 21:12
ここにソース貼る場合は、インデントを全角スペースで置換してくれ。

ところでお前らお腹空きませんか?
399仕様書無しさん:02/10/17 21:23
>>398
コピペしたものをコンパイルするとき面倒だからやめてくれ。

もう晩飯食ったし。
      _ -‐ ⊇
     /   /
     |  |  _
    ,|  |<::::::::ヽ从_____
    |  |,,,,,;;;;:::::::::,ヘ::::::::::::::::::::::::::::ヽ
    |  | 彡''l/  ∨\l\:::::::::::::::::l   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     |  | /  ̄ ̄   ̄ ̄ ヽ;;::::::::::::| < お腹すいたー。
     |   (              _)::::::::::|   \_________
    |   \⊂ニニ⊃  /:::::::::::|::::::|
 _ー:::\ / / ̄ ̄ ̄/ ̄/ ̄ ̄ ̄|::::::| ̄ ̄
(::::::::::::::/   l___/  / ̄ ̄ ̄:::|::::::| ̄ ̄
 \:::::/            |::::::::::::::::::/|::::::|
   )/             |:::::::::::::::::/ |::::::|
401398:02/10/17 22:55
>>399
そーか。
漏れは別に置換使えばそれほど面倒でないと思うのだが。
それよりも、コンパイルするまでも無い/する気の起きないコードの場合、
見ていてツライんだが。
例えば 383 あたり、そうでないかい?

>>398-399
反応ありがd。
402仕様書無しさん:02/10/17 23:01
こういう Perl のコード。

use MIME::Base64;
%framework = (
'awt' => <<'EOD',
aW1wb3J0IGphdmEuYXd0LmV2ZW50Lio7CmltcG9ydCBqYXZhLmF3dC4qOwppbXBvcnQgamF2YS51
dGlsLio7CgpjbGFzcyBNZXNzYWdlQm94Q29yZSBleHRlbmRzIEZyYW1lIHsKICAgIHByaXZhdGUg
VmVjdG9yIG1lc3NhZ2VzID0gbmV3IFZlY3RvcigpOwogICAgcHVibGljIE1lc3NhZ2VCb3hDb3Jl
KFN0cmluZyB0aXRsZSkgewogICAgICAgIHN1cGVyKHRpdGxlKTsKICAgICAgICB0aGlzLmFkZFdp
bmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgewogICAgICAgICAgICBwdWJsaWMgdm9p
ZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsgU3lzdGVtLmV4aXQoMCk7IH0KICAgICAg
ICB9KTsKICAgIH0KICAgIHB1YmxpYyB2b2lkIGFkZE1lc3NhZ2UoU3RyaW5nIG1lc3NhZ2UpIHsg
bWVzc2FnZXMuYWRkKG1lc3NhZ2UpOyB9CiAgICBwdWJsaWMgdm9pZCBzaG93Qm94KCkgewogICAg
ICAgIHNldExheW91dChuZXcgR3JpZExheW91dChtZXNzYWdlcy5zaXplKCksIDEpKTsKICAgICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IG1lc3NhZ2VzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAg
IGFkZChuZXcgTGFiZWwoKFN0cmluZyltZXNzYWdlcy5nZXQoaSkpKTsKICAgICAgICB9CiAgICAg
ICAgcGFjaygpOyBzZXRWaXNpYmxlKHRydWUpOwogICAgfQogICAgcHVibGljIHN0YXRpYyB2b2lk
IG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIE1lc3NhZ2VCb3hDb3JlIG1jb3JlID0gbmV3
IE1lc3NhZ2VCb3hDb3JlKCJqYXZhLmF3dCIpOwogICAgICAgIG1jb3JlLmFkZE1lc3NhZ2UoIkhl
bGxvLCBKYXBhbiEiKTsKICAgICAgICBtY29yZS5hZGRNZXNzYWdlKCJIZWxsbywgV29ybGQhIik7
CiAgICAgICAgbWNvcmUuc2hvd0JveCgpOwogICAgfQp9Cg==
EOD
);
403仕様書無しさん:02/10/17 23:39
>>384
かちゅ〜しゃのポインタ参照で見るとインデントされてる罠。
404仕様書無しさん:02/10/17 23:44
ここに貼るときは、インデントは&nbsp;に置換してくれ。
405398:02/10/18 01:10
>>404
ああ、その方が便利だな。思い付かなかった。
406仕様書無しさん:02/10/18 02:24
407仕様書無しさん:02/10/18 02:24
大変です。
一万行のメソッドが発見されました。
もう辞めたけど。
408仕様書無しさん:02/10/18 02:24

409仕様書無しさん:02/10/18 12:03
 
410仕様書無しさん:02/10/18 12:41
>407
3000行を見たとき辞めたくなったことはあるけど、
上には上が居るもんだと一人納得
411(^∀^) ウフ :02/10/18 13:38
'バッチグー
goo = Right(CStr(Format(Date, "yyyy")), 1)

>>411
Cstrかけるなら、
Format$つかえと。
413仕様書無しさん:02/10/18 14:01
>>411
処理内容よりもバッチグーは何を意味してるんだ?
414仕様書無しさん:02/10/18 14:43
グーという関数はバッチ処理?
415仕様書無しさん:02/10/18 14:44
ウソクセーナ (;一_一)
416415:02/10/18 14:45
スミマセン
マチガエマシタ。。。
417仕様書無しさん:02/10/18 15:43
>>412
Format$() だろうが CStr() だろうが、外側の Right() で結局 Variant に
戻されるという罠。
418仕様書無しさん:02/10/18 16:09
VB談義

さっぱりわからね〜ぞ( ´∀`)σ)Д`)
419仕様書無しさん:02/10/18 16:14
( ´∀`)σ)Д`)
↑これ面白い顔文字だね
420仕様書無しさん:02/10/18 16:54
419をつついちゃうぞ、ウリウリ( ´∀`)σ)Д`)

と使う顔文字ですな
何気にこのスレにちょっと合ってる予感
421仕様書無しさん:02/10/18 16:56
オマヘ ハ モウ シンデイル( ´∀`)σ)Д`) ハベシッ
422仕様書無しさん:02/10/18 17:00
>>417
最終的にはgooで(略

いつの間にかVBに染まっていく自分・・・辞めた方が幸せかな・・・?
423367:02/10/18 18:34
>>418
さっぱりではなくサパーリと書け。
>>422
Dim goo As Integer
424仕様書無しさん:02/10/18 18:49
VBネタですまんが、仕様書に「&h06」と指定したのだが何を思われたのか「&O6」ってコーディングされた。ゼロじゃなくてオーな。
しかしそれで動くVBもどうかと思うが・・・・・・・・

425仕様書無しさん:02/10/18 19:32
>>424
"&o" は8進数なのれす。動いて当然なのれす。
426仕様書無しさん:02/10/18 20:15
(・∀・) クビニシロ!!
427仕様書無しさん:02/10/18 22:39
setter()? getter()? non non.
うちは toriire〜(). toridashi〜(). です。
428仕様書無しさん:02/10/18 22:44
>427
凄ぇ... 漏れなら規約作ったヤシにありがた〜い御説教だな。


429仕様書無しさん:02/10/18 22:52
int i_nen,i_tuki,i_hi,i_jikan,i_hun;


殺意が沸いた。
430仕様書無しさん:02/10/18 22:58
>>428 COBOLやってたころの規約使っているからなー。
あるときは
void toriire_TORIHIKISAKI_CODE(const char *TORIHIKISAKI_CODE);
char *toridashi_TORIHIKISAKI_CODE();
あるときは
void input_TORIHIKISAKI_CODE(const char *TORIHIKISAKI_CODE);
char *output_TORIHIKISAKI_CODE();
はたまたあるときは
void TORIHIKISAKI_CODE_01(const char *TORIHIKISAKI_CODE);
char *TORIHIKISAKI_CODE_02();
431仕様書無しさん:02/10/19 00:24
 FormReadOnryという名のメソド。
 作ったのは入社10年目のVB厨。
432仕様書無しさん:02/10/19 01:34
>>431
何をするメソッドだ? それによる。
433仕様書無しさん:02/10/19 02:18
>>432
どんなことをするメソッドでもダメだと思うけどなぁ。
まあ、そのくらいで会社やめようとは思わないけど。
434仕様書無しさん:02/10/19 03:19
人のスペル間違いみて自分のスペル間違い直す!
といいたいんだけど、中学レベルの英語くらい・・・って思わせるソースは無条件に鬱になりますなあ・・。
435仕様書無しさん:02/10/19 03:58
>>434
中学レベルならまだマシだYO!!!
関数名や変数名のスペルチェックしてくれるlintキボーン。
437仕様書無しさん:02/10/19 16:05
>>436
ツールで関数名抜き出してから一覧をスペルチェック、でどうか。
438仕様書無しさん:02/10/19 16:16
public class kastamaa_innfoomeishon
public class karento_konekushon

public class konekushon_puuringu implements Runnable {〜
あと、英語で書いたコメントの文法チェックをしてくれて、
「あなたの英語力3点」とか採点してくれるlintキボーン。
440仕様書無しさん:02/10/19 23:43
漏れはプロキシクラスに対する実装クラスをC〜Imprと書いて
後から慌ててImplに直したことがある。……だめぽ?
441仕様書無しさん:02/10/20 01:49
>>411
VB厨です。未だに何が何だか分かりません。
最終的にInt型に格納するのが悪いのでしょうか。

>>Dim goo As Integer
>'バッチグー
>goo = Right(CStr(Format(Date, "yyyy")), 1)
442仕様書無しさん:02/10/20 03:05
>>440
クラスの先頭にCをつけるなんてだめだめですね
443仕様書無しさん:02/10/20 09:48
クラスの先頭はTに決まってンじゃん。
444仕様書無しさん:02/10/20 10:25
>>442
MFCは自動的にそうなる

>>443
何語だ?
445仕様書無しさん:02/10/20 12:38
>>444
DELPHIじゃない?っていうか棒ランド?
446 :02/10/20 12:42
入社後初めて渡されたソースのコメントに"DEGITAL"とあったときは冷えたな。
447仕様書無しさん:02/10/20 18:21
>>444
Type の略だな
>>441
動けば (・∀・)イイ!! ってもんじゃないって事を
肝に命じておきなさ〜い
女性の敵ですよ
449仕様書無しさん:02/10/20 20:00
スペルミスは、たまに混ぜるといい。

ソースパクリの証拠としてその点を挙げることができる。
>>449
「ぎれピカチュウ」 かい。
ソースを原文のままパクる事があるのか?
451仕様書無しさん:02/10/21 03:14
>>450
うちはパクリを推奨されているが。
452名無しさん:02/10/21 10:05
ソースコードではないけど。

データベースに日付をYYMMDD形式のテキストで記録していたとき。
無駄な2000年問題に遭遇したのは言うまでもない。
453莇忽戸解説:02/10/21 10:09
磐井の乱と呼ばれるものの実態は、九州王朝(磐井に本拠を置く政権)が対唐戦で主力が百済に遠征しているとき、
応援で九州まで来ることの出来た近畿王朝軍は、突如反旗を上げ九州王朝に戦いを挑みました。
朝鮮半島南部にいた一部の九州王朝軍は、近畿しら王朝軍に反撃に出、近畿王朝の王を戦死にいたらしめましたが、
唐軍と近畿王朝軍の挟み撃ち状態に近畿王朝軍と休戦し、米倉ひとつの割譲しました。
水上戦に強い倭軍が水上戦に弱い唐軍に敗れたは、九州王朝の二面作戦による戦力低下と見なせます。
このように、九州王朝と近畿王朝の勢力が均衡したのは、7世紀中頃でした。
しかし、近畿政権が日本の覇者になれるには、西暦700年まで時間が必要でした。
この近畿王朝の勢力拡大は、過去より7世紀半島南部の倭人・百済の移民受け入れによる文化的発展の結果でした。
続く、次から本題万葉集。
454名無しさん:02/10/21 10:10
データベース関連でもう一つ。

a = SELECT id FROM table;
while (!a.EOF) {
  b = SELECT moge FROM table2 WHERE id=a.id;
}

こんな感じで、結合せずに、ループ内で毎回SQLを実行していた。
>>451
それは部内とか社内とかの話ではない?
ソースパクリが問題になるのは社外とかの話だろ。
>>453
スレ違い。
>>452>>454
変えてしまえ。
>>441
暗黙の型変換が行われている。
途中でVariant型を経由するため、
繰り返し呼ばれるとパフォーマンスが落ちる可能性が高い。
使用コマンドを変更すれば回避できる型変換を行っている。
457仕様書無しさん:02/10/22 00:39
客からエラーが出たと電話がかかってきた。
「どんなエラーか読み上げてください」と聞いたら、「勇者は死んだ」と。
で、コード見たら:

if(hoge) {
  ...
} else if(fuga) {
  ...
} else {
  /* ここには絶対にこない */
  ::MessageBox(Handle, "勇者は死んだ。", "エラー", MB_OK | MB_ICONERROR);
}
458仕様書無しさん:02/10/22 00:48
>>457
その言葉が受話器越しに聞こえてきた時のアフォさ加減・・・ワラタ
しかしある意味、「ここには絶対にこない」 が実装されてて助かった
とも言える。
459仕様書無しさん:02/10/22 01:13
おしまい?
460495:02/10/22 01:14
漏れが更新してないだけでした。
吊ってきます。
461仕様書無しさん:02/10/22 01:16
>>460
お供してもよろしいですか?
462仕様書無しさん:02/10/22 01:20
>>460
漏れもついて逝きます。
463459:02/10/22 01:29
そして番号も間違えてる罠
464仕様書無しさん:02/10/22 01:32
>>463
漏れも、その罠に一緒にハマってもよろしいですか?
465仕様書無しさん:02/10/22 01:51
>>463
漏れもついて逝きます。
466仕様書無しさん:02/10/22 01:55
>>463
では漏れは、食料調達してきます。
467仕様書無しさん:02/10/22 08:23
>>463
隊長! 敵軍が攻めてきました!
468仕様書無しさん:02/10/22 09:43
>467
敵の戦力を報告せよ
469敵軍:02/10/22 14:36
$w = eval( sprintf( "\$%s{'%s'}", $inftbl, $key));


・・・ナゼ?
470仕様書無しさん:02/10/22 14:50
>>468
伝令!目下、Perl方面で苦戦中!援軍請う!
471仕様書無しさん:02/10/22 15:04


    そして、全滅しました。
472仕様書無しさん:02/10/22 15:18
自軍の再編急げ!
473仕様書無しさん:02/10/22 16:01
敵の別戦力によって本陣が落ちました。

も う だ め ぽ
474仕様書無しさん:02/10/22 16:06
撤退〜!まずは撤退しろ〜!退け〜!
475仕様書無しさん:02/10/22 17:22
隊長! 敵軍の司令官が判明しました!
COBOLer です!!
476496:02/10/22 17:25
先ほどキャッチした敵軍の暗号に追加情報があった。


eval( sprintf( $putfmt, $inftbl));

−−以下別ソースファイル−−
$putfmt = 'foreach $clm ( sort keys( %%%s)) { printf( CFINPUT "%%s,", &get_tradata( $_, $clm)); } printf( CFINPUT "\n");';

−−以下さらに別のソース−−
sub get_tradata {
  local( $str, $key) = @_;

  $w = eval( sprintf( "\$%s{'%s'}", $inftbl, $key));

    :
    :

なんてことない小さなコマンドに、ここまでやるとは…奴はニュータイプか?

くっ すまん、俺はここまでのようだ  あとは頼んだ……ゴフッ
477仕様書無しさん:02/10/22 17:28
四九六等兵!しっかりしろ!まだ乱数表が届いていないのだ!
逝くな!まだ逝くな!
衛生兵!おい、衛〜生〜兵〜!
478469:02/10/22 17:29
やっちまった…

捕虜になる前に逝きます…
479仕様書無しさん:02/10/23 03:35
void DirUp(CString& dirname) {
TCHAR* p = (LPSTR)(LPCTSTR)strName;
p = strrchr(p, '\\');
*p = '\0';
}
480仕様書無しさん:02/10/23 03:51
>>479
意味不明すぎる。
481仕様書無しさん:02/10/23 04:02
>>479
いきなりグローバル使用の引数無視かい。
まあ、'\' より左側の文字列を抜き出したいんだろうが、\ 漢字はどうするんだ。
―ソЫ\噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭xx\\
482仕様書無しさん:02/10/23 09:29
1994年の日本橋の会社での話・・・
void main() {
f5050(foo);
}

int f5050(char *foo) {
f5060();
}

int f5060() {
...
}
※ここ数年Cのコードは書いてないので、ちょっと変かも。

関数名がf+4桁の数字。部長曰く「ココではこのルールで名前を付けるんだよ」だって。
昔のコンパイラーは関数名、変数名は8文字までしか使えなかった名残らしい。
作ってたのはビジネスアプリで制御系じゃない。
スゴイ高圧的な部長で人の欠点をネチネチ言って、反論すると顔を赤くして逆ギレ。
結局半年で辞めました。
483仕様書無しさん:02/10/23 12:41
>482 意味不明の名前付けて「あぁ俺って管理してる。ハァハァ」な感じ。いやーん。
484仕様書無しさん:02/10/23 13:53
英文ライクで抽象的な名称つけるよりは、
数字のほうが客観的で機能的、管理も楽だろうが!

なんて、元コボラーのPMなんかが言いそう。。。
485:02/10/23 17:16
            ___∧_∧____
          /  ( ̄(´∀` ) ̄0   ,) <寝る。オヤスミ。
        /~ ̄ ̄ ̄⌒⌒⌒⌒ ̄ ̄ ̄)'
        / ※※※※※※※※  /
      / ※※※※※※※※  /
    / ※※※※※※※※  /
  / ※※※※※※※※   /
  (____________ノ
486仕様書無しさん:02/10/23 17:18
>>482
英文ライクで抽象的な名称つけるよりは、
数字のほうが客観的で機能的、管理も楽だろうが!
487仕様書無しさん:02/10/23 17:24
>>486
釣氏ですか?でもこれだけは言わせて。

単 語 も 読 め な い じ じ い は 氏 ね。
488仕様書無しさん:02/10/23 18:03
        │\
        │  \≡(`Д´;))≡=    オオッ!
        │   \≡// ))≡=
        │    ≡」」」≡=
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
        │
       >>450
489仕様書無しさん:02/10/23 18:09
>>488 ワラタ
450 が何かしたのか
490仕様書無しさん:02/10/24 01:53
64 名前:名無しさん@3周年 投稿日:02/10/23 17:56 ID:TohAN6+l
>>77
英文ライクで抽象的な名称つけるよりは、
数字のほうが客観的で機能的、管理も楽だろうが!

【国際】米の狙撃犯、怒りの電話で犯行予告…"5人死ぬ""子供も危険""1000万$払え"
http://news2.2ch.net/test/read.cgi/newsplus/1035362268/

これは一体?
491仕様書無しさん:02/10/24 03:43
>>490
あんた誰?
492仕様書無しさん:02/10/24 03:47
管理が楽って誰が管理することを考えてるんだろう。
楽とかいってるということは人間なんだろうな。
関数台帳とか変数台帳とかつけてんのかね。

そんな管理なんてコンピュータが得意なんだし言語によっては
名前空間を分離できたりといった便利な機能あるんだし、
どうしてそういう楽で確実なことをしようとしないのかね。

何のためにコンピュータ使ってんのかな。
人間が楽をするためにコンピュータなり技術なりがあるんだろうよ。
もうそういう視点がないこと自体ソフト屋には向いてないよな。
493仕様書無しさん:02/10/24 04:34
・・・492 がんがれ。
494仕様書無しさん:02/10/24 09:40
英文ライクで抽象的な名称つけるよりは、
ハングル文字のほうが客観的で機能的、管理も楽だろうが!
495( ⌒,_ゝ⌒) ウププ:02/10/24 12:01
VisualBasic変数名 a_bbbCc....cc
 例:m_strFilename

a:適用範囲『英小文字1文字、後ろに_(ハイフン)』
  g_  グロ―バル
  m_  モジュールレベル
  なし プロシージャ内

bbb:データ型『英小文字3文字』
  bln  ブール(Boolean)型
  byt  バイト(Byte)型
  dbl  倍精度浮動小数点数(Double)型
  int  整数(Integer)型
  lng  長整数(Long)型
  sng  単精度浮動小数点数(Single)型
  str  文字列(String)型
  var  バリアント(Variant)型

Cc....cc:名前『先頭英大文字、以下英数自由』
496仕様書無しさん:02/10/24 12:07
>>494
ハングルは....
497仕様書無しさん:02/10/24 12:07
>>495
これぐらい常識だぞ
498仕様書無しさん:02/10/24 12:33
そもそも抽象的の対義語は具体的であるというのは置いとくのか?
499仕様書無しさん:02/10/24 12:36
>>495
これぐらいやっとかんと、無茶苦茶やりおるんよ、やつらVB厨は。
500仕様書無しさん:02/10/24 12:37
英文ライクで抽象的な名称つけるよりは、
ハングル文字のほうが客観的で機能的、管理も楽だろうが!
501仕様書無しさん:02/10/24 12:54
ハングル文字
〔朝鮮語。大いなる文字の意〕朝鮮語の表記に用いられる音節文字。
一〇の母音字母と一四の子音字母を組み合わせて音節を表す。
1446年、李朝第四代世宗が「訓民正音」として公布。諺文(オンモン)。
朝鮮文字。

ハンガリアン記法
・ハンガリアンネーミングやハンガリー記法とも。
・Win・・・と言うよりMicrosoftに毒されたC/C++プログラマ以外にとっては何の事だかさっぱり分からない命名規約。
502仕様書無しさん:02/10/24 13:16
ハングリアン記法
ハングル文字を使用し命名規約で主に北(略
503仕様書無しさん:02/10/24 13:35
シャンガリアン記法
シャンガリアンハムスターを使用した命名規約で(略
504仕様書無しさん:02/10/24 13:37
こぼる
COBOL
【プログラミング】Common Business Oriented Language
・昔からある事務処理用のコンピュータ言語の一種。 業務アプリとかは書きやすいんだけれど・・・。
・20年くらい前のプログラムを継ぎ接ぎしながら未だに使っているという、フランケンシュタインのようなシステムがあちこちにある。
・最近のパソコン化の波でCOBOLプログラマがパソコンでVBとかでプログラムを組むことが増えてきた。
・そういう人のプログラムは例えばVBを使ったとしてもCOBOLライクな書き方の、後から本人でも修正不可能な「およそ人間の作ったものとは思えない複雑怪奇なプログラム」を自信たっぷりに作るから恐ろしい。

・「郷に入っているんだから、郷に従え」と心の中では思っても、なかなか言えません。
・そういえば、某F士通はJavaとCOBOLをくっつけるという暴挙で、余っているCOBOLerの延命に出たし・・・
505仕様書無しさん:02/10/24 14:02
モンゴリアン記法
従わないPGにはチョップを(略

506仕様書無しさん:02/10/24 14:04
>>505
ダイビング・ニードロップも得意です。
507仕様書無しさん:02/10/24 14:16
ボヘミアン記法
世間の慣習などにこだわらず、自由気ままな(略
508仕様書無しさん:02/10/24 14:26
ジャイアン記法
(説明不要なので略)
509仕様書無しさん:02/10/24 14:26
AccessのテーブルをExcelっぽく使うのはやめてくれ〜!
レコードの途中途中に上からのフィールドの合計値が入っている。
A|100
B|300
C|400
T|800←上の合計値

あと削除クエリ使わずにループ使ってレコードを1つ1つ消していくのはやめてくれ〜

データベースってのはなぁ…!!
510仕様書無しさん:02/10/24 14:35
>>508
ほそろしい
511仕様書無しさん:02/10/24 14:43
お前のソースは俺のもの。
512仕様書無しさん:02/10/24 15:09
俺のバグはお前のもの。
513仕様書無しさん:02/10/24 15:16
ジャイアンの歌声のようなソース!!
...考えただけで恐怖で身がすくむ
514仕様書無しさん:02/10/24 15:30
インディアン記法
ウソかかない。
515仕様書無しさん:02/10/24 15:38
>>514
ウソはつかないが、書いたとおりに動くという罠(w
516仕様書無しさん:02/10/24 15:46
          /■\
         ( ´∀`) < ここに来ればコボラーに
       (|_______|)     会えるってきいたんだけど。
        |\__/|
        U   U

517仕様書無しさん:02/10/24 17:13
>>495
プロシージャレベルの変数の名前の例: なしstrFilename
518仕様書無しさん:02/10/24 17:14
>>516
〓〓〓 COBOL屋をけなすスレ 〓〓〓
http://pc.2ch.net/test/read.cgi/prog/1028859171/l50
519仕様書無しさん:02/10/24 20:00
>>511-512

いっそXPの向こうを張ってGP(ジャイアン・プログラミング)。
……多くの企業では既に導入済みなワナ。
520仕様書無しさん:02/10/24 20:41
521仕様書無しさん:02/10/24 20:55
http://ac-cafe.netfirms.com/wipipi/10_c.txt
http://ac-cafe.netfirms.com/wipipi/20_c.txt

なんつーか、吐き気がした。
余力が残っていたらFAQなんかも見て笑ってやってくれ。
522仕様書無しさん:02/10/24 21:30
>492
関数の規模を数えるのが楽なんだと思われ。
だって未だにステップ数で実力測る会社多いし。
523仕様書無しさん:02/10/24 21:45
うちの会社の社内サーバの命名規則

wwwsou01 (soumu)
wwwsou02
wwwjiu01 (jinnji)
wwwjiu02
wwwsew01 (seisan_gijutsu)
wwwseu01
wwwseu02
...

www(wwwサーバ) + so(部署を示す2文字) + u(UNIX) or w(WINDOWS) + 連番
524仕様書無しさん:02/10/24 23:40
>>521
「//charは文字列なので*がいる」
ここでもう吐きました。その先が見られません。
525仕様書無しさん:02/10/24 23:51
新卒クンよぉ。

構造体へのポインタである pData が示す構造内の long 型変数 lUserCount のポインタの書式が

pData->iUserCount

だと?

pDataはポインタだから、iUserCountもポインタだ!

だと?


死ね!
526仕様書無しさん:02/10/25 00:09
>>525
> 構造体へのポインタである pData が示す構造内の long 型変数 lUserCount のポインタの書式が
>
> pData->iUserCount

「long 型変数 lUserCount のポインタの書式」 が何を指すのかいまいち不明だが
これだけなら合っているように見える。
527仕様書無しさん:02/10/25 01:01
CでWINAPIで書かれてて
ヘッダーファイルはGlobals.hというのだけあって
後は数十個のソースファイルがある
すべてのソースファイルの関数、変数がそのヘッダに書いてある
528仕様書無しさん:02/10/25 02:04
全ての実装がヘッダファイル内に
529仕様書無しさん:02/10/25 03:13
>>523
なんか問題ある?
530仕様書無しさん:02/10/25 03:14
&pData->iUserCount

ってことを言いたいの?
531仕様書無しさん:02/10/25 04:16
いや、

struct {
 long iUserCount;
} *pData;

ってのがあったときに、pData->iUserCountの型が(long *)だと
新卒クンが主張してる、といいたいのだろう。
もちろん、(long)であるわけなんだが…
532仕様書無しさん:02/10/25 04:32
つまり、525 は日本語の勉強が足りないって事?
533仕様書無しさん:02/10/25 07:02
>>513

ほげ〜 ってヤツ?

// hoge〜〜〜〜〜〜
534仕様書無しさん:02/10/25 07:32
つまり、533 はユーモアのセンスが足りないって事?
535仕様書無しさん:02/10/25 12:37
>>534
テポドン1発ぐらい何だ 愛知県中島郡 福島昭生 会社員(33歳)週刊金曜日より

 朝鮮民主主義人民共和国(北朝鮮)が8月31日、弾道ミサイル「テポドン」を発射した。
そのテポドンが日本の上空を飛び越え、三陸沖に着弾したという。北朝鮮側はこれを人
工衛星だと主張しているそうだ。
「どちらにしても、日本の安全保障上の脅威だ。北朝鮮はまったくとんでもないことをす
る国だ。許せない」というのが日本政府の見解のようだが、私に言わせれば、怪我人や
死人が1人でも出たのであれば話は別だが、そうでないのなら、そんなに大騒ぎするな
と言いたい。自国が被害を受けた時だけ誇大に騒ぎ立てるのは日本人の悪いところだ。
 朝鮮半島の方々を強制使役したり、虐殺したり、女性たちを強かんしまくる悪の限りを
尽くしてきた戦前の日本。それに比べれば、ミサイルの1発や2発、日本の近海に落とさ
れたぐらい何でもないことだ。日本本土に落下し、死人が出たり、家屋が破損しなかった
だけでも、ありがたく思えと言いたい。
 テポドン発射の件について、北朝鮮に対して強硬に抗議するのもいいが、その前に北
朝鮮に対しても、ちゃんと戦後処理を済ませてからにしてもらいたいものだ。
536仕様書無しさん:02/10/25 12:46
>>535
それはどっちかというとこっちの方が相応しいと思うのだが...

この会社辞めようと思った上司の一言#4
http://pc.2ch.net/test/read.cgi/prog/1034469344/
537仕様書無しさん:02/10/25 17:03
>>536

/*
テポドン1発ぐらい
(略)
してもらいたいものだ。
*/

ならこのスレでいいのかな。
538仕様書無しさん:02/10/25 19:51
float f1 = 0.0f;
switch(ty){
case0: f1 = 0.0f; break;
case1: f1 = 0.0f; break;
case2: f1 = 0.13f; break;
case3: f1 = 0.0f; break;
case4: f1 = 0.0f; break;
case5: f1 = 0.22f; break;
}

これを直すと、怒られる。
539仕様書無しさん:02/10/25 21:07
#define INIT 0
#define DATASET 1
#define PROCEDURE 2
#define SUBMIT 9

for (i = 0; i != SUBMIT; i++) {
 switch (i) {
 case INIT: init(); break;
 case DATASET: dataset(); break;
 case PROCEDURE: procedure(); break;
 default: continue;
 }
}
わからねー。いつも先輩はこんな感じで書きます。
細かいところまでは忘れたけどスタイルはこう。
540仕様書無しさん:02/10/25 21:09
ステートマシンだな!
541仕様書無しさん:02/10/25 21:10
ステートマシン?
542仕様書無しさん:02/10/25 21:17
>>539つづき
たしか処理される順番どおり case 文が並んでなかった。
機能追加要求があると一番後ろに case 文を追記していたなー。

・変更箇所が時系列的に分かりやすい=保守しやすい
・順番の入れ替えは define 一つで制御できる

というのが利点とか言ってたような。
543仕様書無しさん:02/10/25 21:37
init();
dataset();
procedure();
で済むのにな。
「・変更箇所が時系列的に分かりやすい=保守しやすい」 というのは意味がわからん。
順番の入れ替えはそのまんま関数呼び出しの順番を入れ替えれば済むし。
#define SUBMIT 9 が笑える。
544仕様書無しさん:02/10/25 21:48
>>542つづき
awk で #define の行をソートするシェルスクリプトを
後輩に作らせているし。
#define SUBMIT 9 はもっとでかい数だとおもった。9999?
545名無しさん@35周年:02/10/25 22:12
ハイヤーハイヤーとんとんとんとんとんとんとんとんとんとんとんとん
ばらばばらっばばらーばばら ぺんぺん!!
アーイヤーヤーコラ ぺんぺん!!
ソーレ 
http://plaza.rakuten.co.jp/a240a/

546仕様書無しさん:02/10/26 03:11
               無         周
       54  5 :名       ん@35    年
         ハイヤー  ハ しさ     :02/1     と  2:12
          ばらば  ばら イヤーとんと んとん んと 0/25 2
          アーイヤー っばば   ばば  んぺ ん    と んとん
          ソーレ   ヤーコ らー ら ぺ  とんとんと   
        ht tp:/  /pla     ラ ぺんぺん!!  ん!!  んとん と  ん
                za.rak                 /
                    uten.c  o.jp/a  240  a
          彡

(,,ノ゚д゚)ノ 
547仕様書無しさん:02/10/26 03:38
状態遷移関数で、

typedef int (*pfn)();
pfn state_table[3][3] {
S00, S01, S02,
S10, S11, S21,
S20, S21, S22,
};

void DoCmd(int* state, int i) {
*state = state_table[*state][i];
}

こんなの見た。まじで、この関数名だった。
作った本人は、状態遷移虎の巻とか言うのを使って
開発してた。
状態が増えたらどうするんだろ。そのとき、メンテするのは、、、
恐ろしいです。
548仕様書無しさん:02/10/26 04:01
「状態遷移虎の巻」 って何 
549仕様書無しさん:02/10/26 05:27
>>547
うーん、状態遷移表ってのを作って、eventとstateをそれぞれ
数字で表して、それをそのまま実装したらその形になるけどなあ。
その場合、eventやstateが増えたらまず状態遷移表から検討しなおす。
コードをぐちゃぐちゃいじり始めると泥沼なのは明らかだからな。

あまり問題には見えないように思うけど、
考え違いしていたらつっこんでやってください。
550仕様書無しさん:02/10/26 05:56
何にせよ、関数名 DoCmd は DQN
551549:02/10/26 06:28
>>550
そっちかよ(w
それは同意する。
552仕様書無しさん:02/10/26 09:33
>>547
正しくは()が付いているってことでいいよね?
*state = state_table[*state][i]();
()がないのが正しいとしたら、生きていく自信がなくなりそうです。
553仕様書無しさん:02/10/27 00:06
>>543
それなら、こんなんすればええですよ。

class BeforeAfter
{
protected:
  virtual void Before() = 0;
  virtual void Run() = 0;
  virtual void After() = 0;
public:
  BeforeAfter() { }
  virtual ~BeforeAfter() { }

  virtual void Execute()
  {
    Before();
    try {
      Run();
      After();
    } catch(...) {
      After();
      throw;
    }
  }
};
554543:02/10/27 01:48
>>553
明後日の方向へレスなさってますか?
555仕様書無しさん:02/10/27 04:02
>>554
きっと「一昨日出直してこい」と言われて、明後日からやってきたんだよ。
556仕様書無しさん:02/10/27 06:56
>>555
漫☆画太郎が昔そういう読切を描いたっけな。
557仕様書無しさん:02/10/27 15:47
>>547
状態遷移虎の巻っていうのは知りませんが、
state_tableみたいなやつ、手っ取り早いからよく使うんだけど。。。
558仕様書無しさん:02/10/27 18:45
>>557
>>547はテーブルを使うこと自体を言いたいんじゃなくて、
関数名がダメダメということを言いたいのでは。
559仕様書無しさん:02/10/27 19:00
>>558
いや、
> 状態が増えたらどうするんだろ。そのとき、メンテするのは、、、
って書いてあるから違うだろ。
550 書いたのは漏れだが、あれはネタ。
漏れ的には関数直呼びしたくなるけど、テーブルもそう分かりづらいものでも
ないと思う。
560仕様書無しさん:02/10/27 20:36
多分、547はS00というような関数名に文句を逝ってるんだろ?
でも、この場合はいずれにしろ状態遷移図を追わなきゃならんからしょうがないというのが
ひとつの意見だ。
しかし、それを認めてしまうと、COBOLerの、HIPOの構造箱番号がプロシージャ名というのも
OKということになってしまう。
というわけで、やはり、S00ってのは無いだろうということではなかろうか? 良くわからん。
561559:02/10/27 20:51
>>560
ああそうか。
漏れは DoCmd のインパクトに呑まれてて、そこまで気が回らなかったヨ
562557:02/10/27 21:07
>>558
あぁ、そういうことか。それなら納得かも。

563仕様書無しさん:02/10/27 21:12
各stateと各eventに適切な名前を与えて、
state_eventみたいな関数名を与えればOK?
564557:02/10/27 21:31
>>563
関数名は、状態名(番号)・イベント名(番号)に拘らなくても良いような。
状態が違ってても、同じイベントだったら同じ処理に落としたい時とかない?
自分だったら、処理内容に応じた関数名にしまふ。
565仕様書無しさん:02/10/27 21:50
そして、どうしても番号つけときたかったら、コメントでも振っておけばいいんだよな。
566仕様書無しさん:02/10/27 22:49
少数派の様だけど、俺はどっちかってと
状態番号=関数名の方が、デバグしやすかった。
(頭の中で状態番号から関数名に置換するステップが
どうもメンドイ。他人の作ったコードのメンテなら尚更)
567仕様書無しさん:02/10/27 23:18
>>566
仮に S00 〜 S99 だとしてもその方が分かりやすいか?
そもそも状態番号がクソだと思うのだが。
状態そのものをコメントで記述すればいい。
568仕様書無しさん:02/10/28 00:46
数千行のメインに頭から穴までのループやらifやらでインデントが5重くらい。
変数は全て使用する遥か以前か、
別のGrobal.hと言う名を叫ぶも恐ろしいファイルで定義、
2次配列がわけのわからん点字で展開。
とても親切かつ意味不明瞭なコメントが1ステップ置きにもれなくついてくる。

569仕様書無しさん:02/10/28 00:51
>>568
ほぼ既出なので、気の毒だが新鮮味は無い。
しかし、最後の行だけはどうにも痛すぎる。
570仕様書無しさん:02/10/28 01:24
VSSで管理されているのに、#if 0〜#endifによる
変更履歴がこと細かくかかれているソース。

頼むから、200行ぐらいの構成で何重にも#if 0〜#endifが組み込まれていて、
解析していくと結果的に

 return( RET_OK );

だけになる関数なんて、さっさと削除してくれ・・・・
571仕様書無しさん:02/10/28 02:55
>570
コメントアウトによる修正履歴とどっちが痛いかな?
エディタの色分けで見えるだけ、こっちのがマシか。
572仕様書無しさん:02/10/28 09:54
>571
#if - #endif の非表示 or 色分けできないエディタ使ってるか?
573仕様書無しさん:02/10/28 10:14
571じゃないけど、emacsでそれできる方法があったら教えてくだちい。
574仕様書無しさん:02/10/28 13:05
hide-ifdef-modeじゃダメなん?色付けよりはずっと直観的だと思うんだが。
575仕様書無しさん:02/10/28 22:43
スレ違いでスマソだが、>>568は添字を「てんじ」って
読んでる? 私は「そえじ」だと思ってたけど違う
んかな。
576仕様書無しさん:02/10/28 23:00
みそじ、だろ
577仕様書無しさん:02/10/28 23:04
( ´_ゝ`)フーン
578仕様書無しさん:02/10/28 23:58
>>575
ああ、>>568の「てんじ」ってそういうことだったんだな。
俺はまた二次配列の中身が何かの模様か記号みたいなもので
展開されているのかと・・・。(なわきゃあないわな。)
579仕様書無しさん:02/10/29 00:46
>>568
ま、5重インデントなら可愛いもんだ。

しかし、糞プログラマはどうして一行おきにコメントを入れたがるのだろう。
580仕様書無しさん:02/10/29 00:51
>>579
強要されたことあるぞ俺。CMM取ってるのに社内規則だって。
糞会社。
581仕様書無しさん:02/10/29 03:08
添え字派ですがなにか?「てんじ」じゃ変換してくれへん。。
582添削先生:02/10/29 03:39
>>575
「そえじ」で合ってますよ。「添え字」と「添字」のどちらでも構いません。
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%C5%BA%A4%A8%BB%FA&sw=2
583仕様書無しさん:02/10/29 05:58
「てんじ」ってガイシュツやスクツなみに恥ずかしい間違いだと思うぞ・・・
584仕様書無しさん:02/10/29 08:07
568には、是非会議かなんかで「てんじ」と発音し、
横の先輩に「そえじだろ、そ・え・じ」とつっつかれて、
「じゃあ添付ファイルは何て読むんですか?そえふですか!?」と逆ギレして
騒いでほしいものだ
585仕様書無しさん:02/10/29 10:10
>>584
ネタは面白いが、何故 568?
586仕様書無しさん:02/10/29 10:44
> 2次配列がわけのわからん_点字_で展開。
587585:02/10/29 11:09
了解
588仕様書無しさん:02/10/29 17:10
ADOでMDBのデータの更新を行う際に下記の様にコーディングしました。
例えば更新かけたときにエラーが発生した場合どのような形で
エラーを取得すればいいんでしょうか?


lstrPath = App.Path & "\test.mdb"
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & lstrPath & ";"

' レコードセット作成
lstrSQL = "select * from student where name = ""ponta"""
rs.Open lstrSQL, cnn, adOpenForwardOnly, adLockPessimistic

' レコード更新
With rs
.Fields("age") = 20
.Update
End With
589仕様書無しさん:02/10/29 17:19
>>588
On Error Resume Next
590仕様書無しさん:02/10/29 17:40
warata
591仕様書無しさん:02/10/29 17:45
>>588,599
これが会社を辞めようと思ったやりとりですね!
592仕様書無しさん:02/10/29 18:13
On Error Resume Next
なんかの命令
If Err.Number<>0 Then
 MsgBox "なんかの命令で" & Err.Descriptin & "が発生"
End If

このようにエラーハンドラでまとめてエラー処理をするのではなく
なんかの命令の次の行でエラー処理をするのがOn Error Resume Nextの本来の使い方。
これを知らないで煽っていると、スキルがばれる言葉になってしまうので注意。
593仕様書無しさん:02/10/29 19:00
SMILEはもう、嫌ぽ。
594仕様書無しさん:02/10/29 19:02
smellハダイスキ

スルメモダイスキ
595仕様書無しさん:02/10/29 20:21
>>593

SMILE って、α関連か?

いい加減やめろよ(w
先は無いぜ>VB SMILE α系列
596仕様です:02/10/29 20:31
JAVAの開発の時
仕様書には
「エラークラス。エラー番号に対応したメッセージをDLLから読み込む」
と書いてあり ソースを見たら
public static final string ERR001 = "**エラーです";
といった定数軍だった
DLLから読み込む というのは
プロジェクト共通のエラーメッセージリソースのDLLより
ツールを使って JAVAのソースコードに変換する事らしい

ローカライズの目的でエラーメッセージをDLLにしたんだけどな・・・
> このようにエラーハンドラでまとめてエラー処理をするのではなく
> なんかの命令の次の行でエラー処理をするのがOn Error Resume Nextの本来の使い方。
> これを知らないで煽っていると、スキルがばれる言葉になってしまうので注意。

コーディング規約:

「リリース時は全てのSub, Functionの先頭にOn Error Resume Nextをいれること」

原因不明のエラーが出るからだそうな......

一理あるような気もするが激しく間違いのような気もする。VBなんか捨てちまえと思う。
598仕様書無しさん:02/10/29 22:20
下請けで smail α のカスタマイズやったけど酷すぎない?
渡ってくるまでに一つのソースに何人も手を加えているのは勘弁。
おもいっきり動けば OK っていうソース。
オフコンのCOBOL版をVB版に焼き直しただけ。
複数ページにまたがる帳票(A)を印刷しているときに
他の印刷ジョブ(B)が割り込むと
AAABABBB のようにページが混じるのは
1ページ印刷するたびに制御を解放してしまうからだよ。
バグではなかったのか?すごい疑問もちつつ仕事してました。
599593:02/10/29 22:34
>>598
ゴベンナザイ(;;
だってだってO塚の単価が安くて納期が短くて量もかなりあって
毎日終電で何やってるか分からないんだよ。
600仕様書無しさん:02/10/29 22:52
>>599
O塚の方ですか?ご苦労様です。
カスタマイズを下請けに任せちゃっていいんですか?
ショートカットキーの割り当てもプログラマまかせだし。
CTRL−Aから順に見ていって使っていないキーを割り当てるって
やり方していた奴いたけど。大丈夫だった?
つうかこのソースって構造化設計でもなくオブジェクト設計でもなく
見たこともない形式ですね。
グローバル変数を多用するのはCOBOL版のなごり?
同じようなことをやっているソース見て
同じようにまねてカスタマイズするよう指導されていました。コピペが多かった。
会社入ってから初めてプログラムやったという奴ばっかりだった。
「デフォルト?って何?」「エンジン部分ってなんだよ!」ゲラゲラ。
いいのか?それと、やっぱり変数はいまでも連番ですか?
あとは、ビートリーブだっけ?
601仕様書無しさん:02/10/29 22:53
>>593
俺は↓のことかと思った。違うものですか?
http://www.w3.org/AudioVideo/
602仕様書無しさん:02/10/29 23:01
>>599
smail α の販売管理システムだっけ?
売り上げ処理だっけ?VBのBASファイルだっけ?
なんで数千行もあるBASファイルが幾つもあるんだ?
なぜ遥か前方でグローバル変数にセットした値で動作が変わってくるんだ?
仕様書一太郎だっけ?
603仕様書無しさん:02/10/29 23:03
VB で、

CALL POTER

くだらん。
604仕様書無しさん:02/10/29 23:05
>>599
上司が「帳票のココにタイプ別小計を出してくれ。すぐ出来るよな。」
って数千行のソースを頭っから舐めていかないとできませんよ。
このソースでは。
605仕様書無しさん:02/10/29 23:06
>>593 は「SMILE」
>>598>>602は「SMAIL α」
>>601のは「SMIL」
……で、結局>>598>>602の話で合ってんだよね?
606593:02/10/29 23:07
>>600
いや、下請けみたいなもんです。
先輩に関数名とか聞いたけどCOBOL時代の関数名をそのまま使ってるみたいで、詳細は分からないっす。
自分も初心者みたいなもんです、いくらやっててもSMILEじゃ腕が上がる気がしないっす。

>>601
O塚紹介のHPをご覧あそばせ。
607593:02/10/29 23:10
下請けのPGなんで責めないで。(w
でも、もうすぐ転職するから気にしない。
608仕様書無しさん:02/10/29 23:10
>>606
ザブゼロスイッチってなんやねん。
独自のコーディングテクニックみたいだけど・・・
609仕様書無しさん:02/10/29 23:11
>>588

> rs.Open lstrSQL, cnn, adOpenForwardOnly, adLockPessimistic
               ~~~~~~~~~~~~~~~~~~~~
ForwardOnlyってレコード更新ってできたっけ?
Dynasetにしないといけないんじゃないの?
610仕様書無しさん:02/10/29 23:15
>>593
if の条件文が目茶苦茶長いんだけど上司は何もいわなかったのか?
作った奴すら分からないと思うんだけど!
if 文の末尾がが200カラム目とか300カラム目とか。
あなたを責めるわけじゃないけどお話できて光栄です。
611仕様書無しさん:02/10/30 00:01
あらら、以外と多いスマイラ〜
久々の反応だわ(w

とっとと逝って良いよ〜 > スマイルα

早く立ち直ってまっとうな道歩んで下さい>スマイラ〜の方々
あと少しで淘汰されまつ...



ってもう遅いか(w
612仕様書無しさん:02/10/30 00:03
>>609
指定する引数を[adOpenForwardOnly||adDynaset]にしてみたらよろし。










プッ そんな訳ねえだろ。
MSDNぐらい調べろよ。
613仕様書無しさん:02/10/30 00:12
>>611
次のセルにカーソルを動かしたら
直前のセルの値のチェックやって
エラーだったら直前のセルに戻す。
次のセルをゲットフォーカスだっけ?
カレントセルをロストフォーカスじゃいけないのか?
614609:02/10/30 00:46
>>612
確かめてみると…漏れが間違ってるな
ForwardOnlyが更新できないなんてどこをどう勘違いしたのやら…

憑かれてるらしいから
回線切って寝るわ
615仕様書無しさん:02/10/30 01:26
>613
良くある LostFocusの無限ループにはお気をつけアレ〜
回る回るよ時代は回る
616仕様書無しさん:02/10/30 03:51
>>597
> コーディング規約:
> 「リリース時は全てのSub, Functionの先頭にOn Error Resume Nextをいれること」

その次の行に On Error Goto 0 を入れてしまえ。
617BlackAngel:02/10/30 14:27
On シロウト Goto 逝ってよし
End.
618仕様書無しさん:02/10/30 14:36
O塚は困った思い出がたっぷり。イヤン
619仕様書無しさん:02/10/30 15:00
>618 その思いで晒して (・∀・)
620仕様書無しさん:02/10/30 21:37
スマイルは絵に描いたような
cobol like vb program だね。
621 :02/10/30 23:25
int s_e = State.ERROR;
boolean b=isErrorResponse(r)?memoryzeState(s_e):true;return b;


環境がマトモでもコードする人間で、、、
622621:02/10/30 23:27
訂正
memoryze > memorize
623仕様書無しさん:02/10/31 01:28
>>603
…まさか…Cole Porterじゃないよな?
624仕様書無しさん:02/10/31 09:50
自分の会社じゃないんで辞めるも何もないし、
プログラム以前の問題なんだけど…

出向先でプログラム修正させられたどっかのシステムのExcel帳票。
右寄せ表示したい(と思われる)所を
+左寄せをスペースで調整して右寄せっぽく見せていた+
時は目から汗が…。

きっと何か意味があるんだろうな、と思ってそっとしておいた。
625仕様書無しさん:02/10/31 13:00
>>624
VBのラベル表示のセンタリングで、
ラベルの幅とフォントの幅を計算して、文字列の左右に中央寄せになるような
半角スペースを入れてセンタリングしてたプログラムを見たことがあるよ。

ある意味感動した。
626仕様書無しさん:02/10/31 15:41
>>625
 お馬鹿な客が、よくそういうのを要求してくるよ 特に、官公庁
 そんなどうでもいいような仕様を、「これは、大切な部分ですから・・・」
 って言われたときには、ぶっ殺したかったよ
627業 ◆ItkaRMAJ7. :02/10/31 16:02
>625サン
あぁ、漏れもそいうことやったYO!
628仕様書無しさん:02/10/31 17:45
>>625
そんなもん、何日も遊んで
プログラムできました、って言って
プロパティでセンタリング指定するのが正しいのでは?

遊んでて金くれるつってんだから、ラッキーじゃん
629仕様書無しさん:02/10/31 17:52
>>628
ドーイ
いかに手を抜きながら、決められた目的を達成するか、だな。
楽しないでどーすんだっつーの。
630仕様書無しさん:02/10/31 20:55
賢いプログラマは、楽をするために努力する。

愚かなプログラマは、努力を惜しんで苦労する。
631仕様書無しさん:02/10/31 21:29
元々、コンピュータというものの生い立ちを考えれば、自然な思考だよな。
最近のDQN開発者は、簡単に済むことも、わざわざ難しく考える。
アルゴリズムなんて知らないやつ増えてきたし。
ソートするんだってライブラリ任せだしな。
実用云々ではなく、思想の問題なんだが。
632コンパクトドールは電気羊の夢をみるか?:02/10/31 21:47
>452
>データベースに日付をYYMMDD形式のテキストで記録していたとき。
しかもYYが元号の数字で元号がどこにもなかったとき。
#平成10年だったらYYには10がはいり、平成という情報がどこにもない.....
633仕様書無しさん:02/10/31 21:47
634仕様書無しさん:02/10/31 22:06
>631
すいません。素朴な疑問なんですが、
> 最近のDQN開発者は、簡単に済むことも、わざわざ難しく考える。
ってのと
> アルゴリズムなんて知らないやつ増えてきたし。
> ソートするんだってライブラリ任せだしな。
ってのは矛盾するような気がしますが。

「簡単な方法を使え」ってこと?
それとも「難しいことを考えろ」ってこと?
どっちでつか?
635仕様書無しさん:02/10/31 22:26
>>634
さっそく来たよDQNが。
636仕様書無しさん:02/10/31 22:27
>>634
もちろん、ある程度の知識を持っている事は開発者として当然
その上でなるべく簡単で効率的に開発できる方法を選択しろってこと

「よくわからないけど、Webでホニャララ・ライブラリっての見つけたYO!
便利そうだからこれ使って実装しちゃえ!」ってのがDQN
637仕様書無しさん:02/10/31 22:34
よく調べずに
・ライブラリにあるからとりあえず呼んどけ
・ライブラリにないだろうから自分でつくる
なんて愚行を「繰り返す」のがDQN
638仕様書無しさん:02/10/31 22:53
>>634
あのな、言いたいことは、お前が引用した部分じゃなくて、
お前が引用するという意識を持てなかった

>実用云々ではなく、思想の問題なんだが。

ここにあるんだがな。
逝っていいよ。
639仕様書無しさん:02/10/31 23:19
>>638
それ、実力の無いアフォ上司がよく言うセリフだな。
640仕様書無しさん:02/10/31 23:31
>>638
それ、実力のない現場のDQNが、できない言い訳として
正論を吐いた上司をコキおろす際によく言うセリフだな。
641640:02/10/31 23:32
>>639
の間違いだった。鬱
642仕様書無しさん:02/10/31 23:43
>>641=638
図星を突かれて手が震えたのか?
643仕様書無しさん:02/10/31 23:47
(・_・ )?=( ・_・)?
644仕様書無しさん:02/11/01 00:16
ちょっと違うが、リスト構造を実装してたソースで、
最初に要素を追加する処理のコメントに

//初めての挿入

って書いてたのに萌えた。
645仕様書無しさん:02/11/01 00:29
>>644
スレ違い(w

ワラタヨ
646仕様書無しさん:02/11/01 00:40
俺、クイックソートを実装しているライブラリがあるのにもかかわらずバブルソート組み込んでしまう
香具師を知ってるんで、まあ、なんですなあ。
車輪は再生産しないようにしましょう。てか、車輪の特性をよく知って適切な車輪を使いましょう。
647仕様書無しさん:02/11/01 01:16
よくあるんでしょうが、もうたまらないので書きます。

8割近くが引数も戻り値もない関数
一文字フラグがグローバルで宣言されていて、様々な箇所で活躍
コメントがいっさいない
設計書もない

こんな機能にぶち当たりました。
これを解析して、新機能を盛り込まなきゃならない。
前の担当者とも連絡が取れない。

どーすればいいんだよ………
648仕様書無しさん:02/11/01 01:27
>647
作り直す。
649仕様書無しさん:02/11/01 01:29
うん、解析している時間が多分無駄になる。
作り直したほうが早いと思われ。
マジで。

つーか、俺も最近、似たことやった。
ガンガレ
650647:02/11/01 01:36
それが、その機能かなり複雑なヤツなんですよ。
実際に盛り込む新機能はちょっとした物だから、解析の方が早い、らしい。

ちょっとした新機能盛り込むにしても、基本設計作って詳細設計作って
それぞれレビューして、周りを納得させなきゃならない。
時間がないって毎日せかされながら………必死扱いて解析してる。

ただでさえ人手不足なのに、先輩倒れて実家帰ってるし。
もうダメポ
651仕様書無しさん:02/11/01 01:49
奇遇だな。俺もフラグ満載のソースを解析中。
もっと早く作り直しさせるべきだった…。
コメント読んでも何をやりたいのかさっぱりわからん。。
よく今まで動いてたな・・・ある意味、すごい。

if(StatusFlg2 == 0 && StatusFlg2 < 0) // フラグ2がオフのとき
StatusFlg3 = 1; // 状態フラグ4を立てるためのフラグを立てる
}
652仕様書無しさん:02/11/01 01:55
>>651
フラグ2がオフのとき、状態フラグ4を立てるためのフラグを立てるんだろ

コメントどおりに実装されてるよ(w
653仕様書無しさん:02/11/01 01:59
この会社辞めようと思ったソースコード。

10年くらい前の話ですが、
MS-Cでqsort関数使えば数行でできるソートプログラムを、500ステップ
近いコーディングをして1ヶ月以上かかってデバッグして、しかもバグで
まともに動かないソースコードを見た時。
654仕様書無しさん:02/11/01 02:13
>>652
問題は、その条件文って絶対に成立しないと思うんだけど。
1時間近く悩んでたよ。
ちなみに、フラグは全部符号なし8ビット整数型ね。

655仕様書無しさん:02/11/01 02:29
>>654 ワ ラ タ
656仕様書無しさん:02/11/01 03:53
(StatusFlg2 == 0 && StatusFlg2 < 0)
っていう、条件判断を実装できるって、ある意味スゴイ(w
657仕様書無しさん:02/11/01 08:45
ソースコードの30%以上を直さなければならないときはイチから作り直した方が早いんだっけか?
658仕様書無しさん:02/11/01 10:43
>>654
禿げワラ
659仕様書無しさん:02/11/01 11:00
>646
クイックソートとバブルソートは結果が違うので
その人はちゃんと使い分けてるのかも知れませんよ?
660仕様書無しさん:02/11/01 11:30
 JSPのスクリプトレットにあった。

     view.init()
661仕様書無しさん:02/11/01 14:20
>>659
そうかもしれないな。たしかに決めつけは良くないよね。










まあその確率はほぼゼロなわけだが。
662仕様書無しさん:02/11/01 14:28
>>654
符号ありでも成立しないと思われ。

それにしても
>状態フラグ4を立てるためのフラグを立てる
こういう処理が延々と続いてるのか。吐き気がしてくるな。
663( ^,_ゝ^) クス:02/11/01 15:29
Private Function tcnt(t0 As Integer)
Dim cur As Currency

cur = CCur(LenB(StrConv(t0, vbFromUnicode)) / 2)
tcnt = cur

End Function
664仕様書無しさん:02/11/01 21:06
4月から晴れて社会人となる若造なんですが、内定式に出席したとき記念品と一緒に
システム開発ノウハウが詰まったの小冊子(会社オリジナル)を渡されました。
その小冊子のC言語入門の章をみて「失敗したー」と後悔しているのですが
書類にハンコ押したあとに「やっぱり辞退する」なんて無理な話ですよね。

第3章 C言語入門
1 コンビネーションプロセス・・・順次処理のことを述べている
2 スイッチングコントロール・・・if, switch 文のことを述べている
3 ループコントロール・・・while, for 文のことを述べている
4 ジャンプコントロール・・・goto, break 文のことを述べている

独自の用語がバンバンでてくるし、goto の使い方とか普通に書いてある。
665仕様書無しさん:02/11/01 21:15
664です。
ちなみにサンプルソースが void main(void) です。
gets() とかもへーきで使ってます。
第一、用語の意味がわかりません。分かったら誰か教えて。
Webで検索してもヒットしません。

・ダイバー
ダイバーとして登録された・・・

文中に突然出てくる「ダイバー」って何?
666仕様書無しさん:02/11/01 21:21
>>665
gets()はだめなの?
667仕様書無しさん:02/11/01 21:29
668仕様書無しさん:02/11/01 21:33
>>664です。
めちゃめちゃ鬱。
就職していないのに転職活動なんてできないし。
どうしたらいいのやら。
669仕様書無しさん:02/11/01 21:36
>668
内定状態なら辞退しちまえば良い話ではないかと。
なので就職活動をガンガッてください。
670仕様書無しさん:02/11/01 21:47
>>665
void main(void)は別にDOSのサンプルだとよく使われる。
UNIX系と違ってプログラム自体の戻り値を判定する手段がないから別に問題ない。

gets()も記述の仕方がわからないけど、学習用サンプル程度じゃ気にするような問題じゃないよ。

アホらしいのでsage
671仕様書無しさん:02/11/01 21:49
シェルスクリプトのファイル名拡張子を .jcl と頑なにこだわる会社に常駐させられてまつ。
672仕様書無しさん:02/11/01 22:08
>656

IF (A = 0 OR A <> 0) AND B = 0 THEN

とかいう条件文があるソースをメンテしたことがある。
A の条件いらねぇじゃねぇかよ。
673仕様書無しさん:02/11/01 22:57
>>670

ERRLEVEL
674仕様書無しさん:02/11/01 23:37
>>672
Aの存在確認だったりしてな。
675仕様書無しさん:02/11/01 23:55
>>672
VB/VBAだと思うが、もしAがVariant型でNullが入るのなら意味がある。
もっとも普通はIsNullを使うが。
676672:02/11/02 00:12
>675
すまん。型書き忘れてた。
しかも今確かめたら微妙に違ってた。

ご想像の通り Access の VBA なんだが、
A A' ともに Integer で

IF (A = A' OR A <> A') AND B <> B' THEN

という文。

このソースは他にも、2つのテーブルを結合して第3の
テーブルに挿入するためにわざわざ2重ループ使ってたり、
あるフィールドをソートして、ループを回しながら数を数えたり
値が変わったところで何か処理をたり…という
COBOLer の臭いがプンプン漂うものだった。

別に辞めようと思ったわけでもないので sage。
677仕様書無しさん:02/11/02 00:17
古いプロジェクトのVBソースを読んでたら、
INI ファイルの読み込みを独自実装してた。

…いあ、まぁ、いいけどさぁ。
678仕様書無しさん:02/11/02 00:44
>>631
> 最近のDQN開発者は、簡単に済むことも、わざわざ難しく考える。
> アルゴリズムなんて知らないやつ増えてきたし。
> ソートするんだってライブラリ任せだしな。

言っていることが矛盾している。
アルゴリズム知らなくったって、たとえば C++ なら
std::sort() とか使えば難しいこと知らなくてもソートできる。
std::sort() 関数をテストする必要もまずない。
アルゴリズムを知っていたって、その方がシンプル。
書くコードが減ればバグも減る。テストも減る。
679仕様書無しさん:02/11/02 00:58
>>678
>>634-
馬鹿の一つ覚えみたいに、内容を理解しないまま API を使うなってことだろ。
680仕様書無しさん:02/11/02 01:20
>>678
また来たよ、DQNが。
理解できないんだろうけど。
こういうヤツラが、今のシステム開発最前線にいたり、
設計やってるかと思うと寒気がする悪寒。
681仕様書無しさん:02/11/02 01:21
>>678は、「木を見て森を見ず」なタイプ。
682仕様書無しさん:02/11/02 01:24

gotoを恐れなく使えるようになってから後藤不要論を語るべし
683仕様書無しさん:02/11/02 01:33
GTO
684仕様書無しさん:02/11/02 01:50
goto か…
多重ブロック抜け位なら使ってるかな。それも内部ブロックを別関数にして
return 抜けすればいいんだけど。
685仕様書無しさん:02/11/02 02:04
現在主流の言語はライブラリがそろっているから学習には向かない。
かといってマイナーな言語では情報が少なすぎる。

そこで情報処理技術者試験を受けることを推奨する。
>>685
> 現在主流の言語はライブラリがそろっているから学習には向かない。

何を学習するかによる。ライブラリが多すぎて覚えるのが大変、と言う
より大抵のライブラリは覚える気がおこらんだが、主流になりそうなも
のを知っておくと、重宝される。高度なアルゴリズムより、今後設計にフォーカ
スしていくと考えるべき。

他はおおむね同意
687仕様書無しさん:02/11/02 02:35
>>686
ライブラリだけ覚えてアルゴリズムをしらないから学習に向かないって言ってるんだよ。
688仕様書無しさん:02/11/02 02:40
>>687
最近ってアルゴリズム知らない奴でもいっぱしにメシ食ってけるんだよなー。
良い世の中になったというかなんと言うか… 奥村本一つ一つ動かしてた頃が
懐かC。
689仕様書無しさん:02/11/02 02:49
>>688
おぉ、同志よ。。。
だからこそ、素養のいい技術者が必要なわけだが、
いまはどこも安いからなぁ。
スキルのある少数の人間を高く使うより、
ブビ厨あがりの安い人間を大量に使ったほうがいいらしい。
690仕様書無しさん:02/11/02 02:55
>>689
> ブビ厨あがりの安い人間を大量に使ったほうがいいらしい。
当然だろ。吉野屋に高級レストランのシェフを使ってどうする。
691仕様書無しさん:02/11/02 03:05
>>690
納得。
692堕天使姫子:02/11/02 03:23
数百メガの mdb
ファイルサイズ増えるから コメントいっさい禁止
しかも変数名、関数名のほとんどが日本語
当然 仕様書もドキュメントも無し。最初に作った会社は引き上げ
693仕様書無しさん:02/11/02 03:27
>>692
完全デスマーチだね。
八甲田山詣でしとけ
694仕様書無しさん:02/11/02 06:38
>>692

最適化してもそのサイズ?
そもそもそんなサイズをAccessで扱おうと言うのが無謀では…
695仕様書無しさん:02/11/02 07:20
・COBOL85
IF A NOT = B OR C
THEN
処理1
ELSE
  処理2
END-IF
696仕様書無しさん:02/11/02 08:07
いまの業務に携わって8ヶ月
いまだ、引数のある関数を書いたとがありません。戻り値もありません。
グローバル変数がすべて。
関数を呼ぶまえにグローバル変数をセットする場合もあれば
関数内で得た結果をローバル変数にセットする場合もある。
ソースも修正箇所を消してはいけないからコメントアウトだらけ(#if 0と/*〜*/)。
/* D.2002.11,02 ID.97S237 */ ... A.追加、D.削除、 ID.社員番号
#if 0
...
#endif

CMも流している著名な販売管理システムでもこんなものか・・・
期待して損した。

#ちなみに言っておくけど勘定奉行ではないよ。
697仕様書無しさん:02/11/02 08:33
/* D.2002.09.01 ID.97S999 */
#if 0
int main(int argc, char *argv[])
#endif
/* D.2002.11.02 ID.97S237 */
#if 0
/* A.2002.09.01 ID.97S999 */
int main(void)
#endif
/* A.2002.11.02 ID.97S237 */
int main(void)
{
...

修正前に戻すとなったらこんな感じ。
698仕様書無しさん:02/11/02 08:34
間違えた。こうだ。

/* D.2002.09.01 ID.97S999 */
#if 0
int main(int argc, char *argv[])
#endif
/* D.2002.11.02 ID.97S237 */
#if 0
/* A.2002.09.01 ID.97S999 */
int main(void)
#endif
/* A.2002.11.02 ID.97S237 */
int main(int argc, char *argv[])
{
...
699仕様書無しさん:02/11/02 09:45
>>696
コメントアウトで修正なんてざらだろ。
CVS使ってるのにコメントアウトで残すとか。
ホスト時代の慣習に捕らわれすぎなヤシは結構多い。
特に頭の固いお偉いさんとかはな。
700仕様書無しさん:02/11/02 10:09
>>699
ファイル全部をコメントアウトっていうのもあった!
7000行ちかくだ!

先頭の #if 0 を見逃して解析するはめになったこともある。
#if 0 〜 #endif の色を変えたり、不可視にすることはVC++では無理ですか?
秀丸とかだとできるんでしょうか?
701仕様書無しさん:02/11/02 10:12
>>700
無理。コンパイルして中間ファイルのサイズを調べてみるとか。サイズが極端にちいさければあやしいと・・・
702仕様書無しさん:02/11/02 10:30
>>698
眩暈が・・・。
703仕様書無しさん:02/11/02 10:32
>>670 プッ
704仕様書無しさん:02/11/02 11:08
/******************************************************
* ○○殿○○システム○○処理
*
* 1993年02月20日 作成
* 1993年02月21日 修正
* 修正内容 〜〜〜〜〜〜〜
* 1993年02月21日 修正
* 修正内容 〜〜〜〜〜〜〜
* 1994年12月23日 修正
* 修正内容 〜〜〜〜〜〜〜

500行くらい。
705仕様書無しさん:02/11/02 11:11
>>704
ファイルの先頭に書いてあるの?関数ごと?
ファイルの先頭なら別にかまわないと思うけど
706仕様書無しさん:02/11/02 11:55
>>704

俺は全角の英数字は嫌いだ。
707仕様書無しさん:02/11/02 12:40
679-680 は、printf() や atof() 等を使うのはいいが数値と数字の変換くらい
自前でできるようになるべきだ、と言っているのか?
708仕様書無しさん:02/11/02 12:58
>>707
そうです。
709仕様書無しさん:02/11/02 13:02
>>707
いや、printf()も自前で書けと。
710707:02/11/02 13:06
>>708
そうなのか・・・。
ヤヴァイ、漏れ浮動小数点値の入出力できねーよ・・・。

しかしまさか、10 で割ったり 10 で掛けたりして 「変換できますた」 なんて
言わないよな。
それはバブルソート書いといて 「クイックソートできますた」 と言っている
のに等しい。
711仕様書無しさん:02/11/02 13:22
>>701
コンパイルしないでもプリプロセッサにかければ、
#if〜#endifは消えるよね。

コメントも消えるけどナー
712板違いクン:02/11/02 13:28
>>711

プリプロセッサって、「マクロ展開後のソースを見る」のが目的だと
思ってましたが、他の使用法(趣旨)もあるのでしょうか?
713仕様書無しさん:02/11/02 13:40
long foo(long a)
{
if( a == 0 )
{
a = 0x00000000;
}
以下略
}

なにがしたんだか
714安中弘樹:02/11/02 13:46
パチンコで社長に負けたとき
715よしりん:02/11/02 13:49
>>713 ウエイトとか・・。
716安中弘樹:02/11/02 14:12
チンコの長さで課長に勝った時
717仕様書無しさん:02/11/02 14:35
>>711
>他の使用法(趣旨)もあるのでしょうか?
他の趣旨:マクロを展開してコンパイルできる状態にする。
718仕様書無しさん:02/11/02 15:06
>>717
おなじじゃん。(^^;
719仕様書無しさん:02/11/02 16:16
>>716に関連して。俺の水泳の先生、超巨大だった。赤ちゃんができたときにはびっくりした。
720仕様書無しさん:02/11/02 18:00
>>700
mule系ならできそうな気がする
721仕様書無しさん:02/11/02 18:15
Global i; 'ループカウンタ
722仕様書無しさん:02/11/02 18:26
>>715
パッと見は何だこりゃ系のソースでも、
組みこみだと意味があったりするから侮れないですね。

大抵ハードがタコなのをソフトで何とかした結果だったりするんだけど。
723仕様書無しさん:02/11/02 18:26
1つのソースコード(*.c)に関数1〜2個。
それが200個近くある。

しかもソースコードの名前が
s_1.c
s_2.c
s_3.c
s_4.c
s_5.c
s_6.c
s_7.c
・・・・(以下略)
724仕様書無しさん:02/11/02 18:33
>>722
うん、そう。一見無意味に見えるものを取り去っただけで動かなくなったりね。
でもそういう部分にはコメント入れるよ。そういうところにこそコメント入れないと。
725仕様書無しさん:02/11/02 18:34
>>723
フェイントで、 s_23 あたりが抜けていると最強だな
726仕様書無しさん:02/11/02 18:35
>>718
「ソースを見る」と「コンパイルできる状態にする」
という違いがあるが、何か?
727仕様書無しさん:02/11/02 18:42
>>726
一応、そのコメントは予想しておりましたです。(^^;;
728仕様書無しさん:02/11/02 18:50
>>713
最適化で消えてしまう罠
729仕様書無しさん:02/11/02 18:51
>>728
それなら、最適化の影響を受けない記述子(何だっけ?忘れた・・・)を
使えばよいのでは?
730仕様書無しさん:02/11/02 18:52
>>726-727
そもそも 712 の
> プリプロセッサって、「マクロ展開後のソースを見る」のが目的だと
が間違ってると思われ。
副次的にそのような効果はあるが、「コンパイルできる状態にする」 以外に
プリプロセッサの目的はない。
731仕様書無しさん:02/11/02 18:54
>>728
713 のソースはそうなのか?
組み込み系であればこそ、最適化 OFF にするなんて事はせずに、素直に
__asm nop を入れると思うが。
732仕様書無しさん:02/11/02 19:01
>>731
nop1個の調整が必要になる様な場面であれば、
そもそもフルアセンブラで記述しそうなものだが。
733仕様書無しさん:02/11/02 19:03
何にせよ、713 のソースは DQN
734仕様書無しさん:02/11/02 19:11
LPSTR szBuffer_used_for_stream_data_from_serial_to_local;


なげ〜よ
735仕様書無しさん:02/11/02 19:24
>>734
長さの割に情報量が無いような。
書くとしたら szStreamBuf_Serial2Local だけどこれでもまだ長い。
もしローカル変数だったら単に buf でいいな。
736734:02/11/02 19:31
>.735
「C言語の変数名は意味がわかるように書く」を拡大解釈しすぎて、アホみたいに長い変数名を
書くヤツがいるんだよ。

szInBuf

って速攻で直したけどね。
737仕様書無しさん:02/11/02 20:01
>>729
volatile
738仕様書無しさん:02/11/02 20:05
volatile を使いこなすと組み込みプログラマ的にかっこいいかな。

739仕様書無しさん:02/11/02 20:59
volatile修飾が必要なリソースは最初に定義するので
使いこなす程には使わないと思われ。
740仕様書無しさん:02/11/02 21:06
変数名がみんなa00とかc01とかで、しかも変数宣言が見当たらないので
「まさかグローバル?」と思って調べてみたら……

#define DEFINE_VARS\
 int a00, a01, a02, ... a19;\
 char c00, c01, c02, ... c19;\
 char *p00, *p01, *p02, .. *p19;\
(以下略)

と定義してあって、全部の関数の先頭に漏れなく DEFINE_VARS が入れてありました。
グローバル変数じゃないだけマシ……と思えばいいのか?
741仕様書無しさん:02/11/02 21:37
初期化されてないのは嫌かも
742仕様書無しさん:02/11/02 22:05
名前だけで充分イヤだ
743仕様書無しさん:02/11/02 23:02
>>720
M-x hide-ifdef-mode
ってmeadowでは使えんの?
744仕様書無しさん:02/11/03 00:02
>>740
今すぐ辞職届け用意して連休明けたら即その会社辞めれ。
空前絶後のDQNソースだよ。それ。んな酷いの見たことねぇよ。
745仕様書無しさん:02/11/03 00:04
>>738
コンパイラのバグのせいで使わざるを得ない状況に遭遇しました。
そのバグをメーカーに直させると別の所がバグってて、結局は古いヴァージョン
のコンパイラで、volatileを使ってごまかすのが最善という結論に至りました。
ちなみに、組み込み機器系のコンパイラ。
746仕様書無しさん:02/11/03 00:16
>>745
組み込み用コンパイラなんてそんなもんだ。
そういう現実を知らない奴は「VCなんてバグだらけ」なんて
バカなこと言ってるけどな。
747仕様書無しさん:02/11/03 00:16
>>744
いや、ある意味最先端なのかも・・・
748仕様書無しさん:02/11/03 00:19
>>747
こういうのってネタなの? マジなの?
そんなコードで社会が動いているなんて、恐ろしすぎる。
749747:02/11/03 00:27
>>748
関数の戻り値を一切使わずにグローバル変数で関数の結果を受け取っている
PGは本当に見たことがある。それも不思議発見のスポンサーの仕事で・・・
750仕様書無しさん:02/11/03 00:33
>>748

>関数の戻り値を一切使わずにグローバル変数で関数の結果を受け取っている
>PGは本当に見たことがある。

Oh!TUKA の販売管理システムがそうだった。
751仕様書無しさん:02/11/03 00:36
>>750
まあ、拡張する可能性が全くなくて、マルチスレッドをゼッタイに
つかわなくて、先々に渡って仕様を完全に管理できるようなカンペキ
な体勢なら、カマワンと思うけど・・・・

でもそういう体制を作れる程度に優秀な人間が集まってたら、
そんなことせんよね(藁
752仕様書無しさん:02/11/03 00:37
COBOLerは他の言語やってもCOBOLer。リファクタリングが必要。
753仕様書無しさん:02/11/03 00:50
Oh!TUKA の販売管理システムのように糞ソースのソフトを晒して下さい。
754仕様書無しさん:02/11/03 01:00
>>752
職種についてリファクタリングですね。

・・・あー、それができれば見通しよくなって、アホな火吹き
プロジェクト激減するんだろうなあ・・・
755仕様書無しさん:02/11/03 01:14
リファクタリングよりディスカーディングきぼんぬ
756仕様書無しさん:02/11/03 01:43
>>700
遅レスだが、VC++.NETなら、#if〜#endifを畳めるよ。
757仕様書無しさん:02/11/03 04:23
昔やった仕事でPOSだけど、
五千桁位のレコード数百件のファイルが十数種類
それが1日数十個
こんなことザラ?
3年しかやってないから分からない
758仕様書無しさん:02/11/03 05:12
よくわからんけど大規模な POS ならそんなもんかと思う
759仕様書無しさん:02/11/03 10:30
リファクタリング禁止!

この不況なのに合理化・効率化なんかしたら仕事がなくなるだろ!
760仕様書無しさん:02/11/03 11:03
だから、ディスカーディング
761仕様書無しさん:02/11/03 11:19
まずは使い物にならなくなったオヤジをディスカード…
762仕様書無しさん:02/11/03 12:30
>757
ありがd

アレはきつかった
他の余計な仕事もあるし良く分からんで眠いし
初心者で更にスパゲッティ大量生産だったし(w

辞めて良かった
後任者スマソ
763仕様書無しさん:02/11/03 12:31
ありゃ
>758ですた
764仕様書無しさん:02/11/03 12:36
動けばいいんだよ、動けば
765仕様書無しさん:02/11/03 13:04
その油断に足元をすくわれるぞ。
766仕様書無しさん:02/11/03 13:18
テストさえきちんとすれば問題ない。
767仕様書無しさん:02/11/03 13:20
>>766
確かに。テストが一番大事
768仕様書無しさん:02/11/03 13:34
テストの中でも特に情報処理技術者のテストが一番大事。
769おいおまえら:02/11/03 13:36
うちの会社はそろそろアジア系の方々をユニットに加えてきました。
僕チン達日本人はもう用ナシですか?
( ´-`)チュンチュン
770転職希望:02/11/03 13:48
HDLのソースなんですが、
フィードバックしている順序回路、トラップのある組み合わせ回路、
バス表記しないレジスタ、外部をプルアップすればいいだけなのに、
わざわざANDゲートを8個もならべてるなど多々、、、
合成してみたら、やっぱり
 a = (b & b)| c
みたいな回路が多数作られていました。

ここ書き直したほうがいいんじゃないですか?
って聞いたら、実績があるから変更なし!と言い張る、、、
さすがに組み合わせ回路のバグは、クレームが来たから修正したけど、、

みなさん、こんな製品は買わないようにしましょう。
771仕様書無しさん:02/11/03 14:17
>770
買わないようにしたいのはヤマヤマなのですが、
見た目には判らないので特徴とかヒントをちょーだいな。
772仕様書無しさん:02/11/03 14:17
>>770
動いていて問題が無いものは変えたくないと思うのは仕方が無い。
その修正でどの程度影響があってどの程度のテストをやり直さなければいけないか見積もって再度交渉してみれば。
773仕様書無しさん:02/11/03 14:18
ちゃんと動けばいいんだよ、ちゃんと動けば
774仕様書無しさん:02/11/03 14:21
読みやすさも無視ですか?
775仕様書無しさん:02/11/03 14:31
つーか、変更の為のコストを何時割くか、という話のよーな気もするな・・・
776仕様書無しさん:02/11/03 14:40
>>770
ハードは遅延があるからなー。あとコストの問題も。
下手に直すと動かないことがよくあるのでテストは綿密にやらないと。
777仕様書無しさん:02/11/03 14:43
売り上げデータ(3000件/日)
商品マスタ 200万レコード

while(商品マスタ!=EOF){
 while(売り上げデータ!=EOF){
  if(商品マスタ.商品番号 == 売り上げデータ.商品番号){
   商品マスタ.商品名を取得
  }
 }


こんなのでも納品してしまう我が社っていったい。
778仕様書無しさん:02/11/03 15:00
>>777
うちも10万個のデータチェックするのに二重ループ使ってるコードを
納品したことあるよ。
お客さんから「この程度のデータでこんな遅いわけないでしょ?
もしかして単純にループ二重にして処理してない?」という突っ込み
が入って作り直したけど。
779仕様書無しさん:02/11/03 15:02
>>778
のようなツッコミに「調査します」と切り返すようでは甘いな
780仕様書無しさん:02/11/03 15:06
To>>778 From>>777
1ヶ月の受け上げを計上する処理は
バッチで金曜の25:00から何時間もかけて
処理するような仕様になった。

うまく動いているから修正対象にならない。
というか直したいけど上からGoが出ないのでX。
テストが時間がかかってしょうがない。
781778:02/11/03 16:47
>>779
いや、営業はその処理のためのマシン提供しろとか処理中張りついて監視しろ
とかゴネられたらしいし。技術としてもそんな恐ろしいコード実運用で走らせ
たく無かったしね(他の処理に影響与えかねん)。
782仕様書無しさん:02/11/03 16:49
>>778
そういうつっこみを入れられるお客さんを相手にしたいものよ。
783仕様書無しさん:02/11/03 18:48
777のどこがおかしいのかアホの783に教えてあげて
784仕様書無しさん:02/11/03 18:51
>>783
ネタニマジレス
SQLのSELECT文を調べてください。ヒント:テーブル結合
785783:02/11/03 18:57
struct {
int 商品番号;
} 商品マスタ;
かとオモタテタ(w
786仕様書無しさん:02/11/03 19:01
>>785
ひょっとして、コードレビューで擬似コードを使うのを認めないクチ?
787仕様書無しさん:02/11/03 19:02
>>783
この際、テーブル結合というのは考えないものとして
商品マスタと売り上げマスタのネストが逆なのが問題だろ!
売り上げマスタを基軸として商品マスタから商品名を参照するのが普通。
商品マスタを基軸にしたら馬鹿みたいにおそくなる。
788仕様書無しさん:02/11/03 19:04
>>787
約2年で逆転するよ。
789仕様書無しさん:02/11/03 19:12
>>788
お前は無能か?もしくは未経験者?

売り上げデータの累積件数のほうが多くなるからか?
月次処理とか締め日処理で
計上したり履歴として退避したりするからそれはない。

その「2年」というのは、会社が繁盛して
月に200万件以上の売り上げがあるって言っている?
んなわけないか。・
790仕様書無しさん:02/11/03 19:16
>>789
アイタタタ。>>777からは以下の要件は推し量ることはできないよ。思い込みはケガのもと。
>月次処理とか締め日処理で
>計上したり履歴として退避したりするからそれはない。
791仕様書無しさん:02/11/03 19:36
>>790
釣れた。
792仕様書無しさん:02/11/03 19:40
>>791
20分間、顔真っ赤にして、考えに考え抜いたレスが「釣れた」か?
793仕様書無しさん:02/11/03 19:42
>>791
(^∀^)ゲラゲラ
794仕様書無しさん:02/11/03 19:45
>>792
4分間、顔真っ赤にして、考えに考え抜いたレスが
「20分間、顔真っ赤にして、考えに考え抜いたレスが「釣れた」か? 」か?
795クールダウン中:02/11/03 19:47

┌──────────────────────―─┐
│                                    |
│                                    |
│                /■\                    |
│               (´∀`∩)                   |
│               (つ  丿                |
│                ( ヽノ                    |
│                し(_)                |
│                                    |
│             Now Onigiring. ...               |
│                                    |
│                                    |
│         しばらくおにぎりでお待ちください。        |
│                                    |
└───────────────────────―┘
796仕様書無しさん:02/11/03 19:48
釣りは要らないぜ。ソースをください。
797仕様書無しさん:02/11/03 20:39
ちと遅レスだけど。

>>723
スタティックリンクを考慮したライブラリならそれで正解(ファイル名は
ひどいけど)

理由:
スタティックなライブラリにはオブジェクト(*.oとか*.obj)の単位で格納
され、実際に実効可能ファイルとリンクされる時にもオブジェクト単位
でリンクされる。従って、1つのオブジェクトになんでもかんでも詰め
込むと、使いもしないシンボルまでリンクされてしまって無駄。

まぁ最近のコンパイラだと未使用シンボルを取り除いてくれたりするし、
メモリもたっぷりあるからほとんど困らなかったりするが、移植性を
考慮するとやっぱりソース分割しておいた方が無難。

昔(DOS時代)「libcのソースはなぜこんなに分割してるんだ?」と疑問
に思った事があって、分からなかったんで先輩から教えてもらった。
聞いてなるほどなと思ったよ。
798仕様書無しさん:02/11/04 00:16
>723は、
>1つのソースコード(*.c)に関数1〜2個。
>それが200個近くある。
ここまでは仕方ないけど、ファイル名が…
って感じだと思われ
799仕様書無しさん:02/11/04 01:21
>>797
関数ごとに #ifdef〜#endif でくくって、ファイルは適当にまとめるという方法もありますな。
初めて見た時、Makefileを見るまで意味がわからなかった。

800仕様書無しさん:02/11/04 12:21
Dim Yatteru As Boolean

If Yatteru = True Then



Else

 …

End If

もっとまともな変数名つけろよ
801仕様書無しさん:02/11/04 14:10
>>800
そうは言ってもたとえばJavaだと「isXxx」とかつけるからあんまり変わらない。
If やってる = True Then
じゃないだけましと思えばどうか?

・・・だめか。
802仕様書無しさん:02/11/04 14:34
>>795
ワラタ。
・・・パクっていい?
803仕様書無しさん:02/11/04 17:38
>>800
センス無いとは思うが、会社辞めるほど酷いコードとは思わんな。
804仕様書無しさん:02/11/05 00:12
>>802
モナー板でよく見るコピペなので、パクってもいいかと。
805仕様書無しさん:02/11/05 00:52
Onigiring がいいよな。
アフォっぽくて。
806仕様書無しさん:02/11/05 08:54
>>800
なんで

If Yatteru Then

って書かないのか不思議だな。。
それから、isXxx は普通メソッドかフィールドに使うんだから

オブジェクト名.isXxx

となってよく意味の通る命名規則だということを801はわかっているんだろうか。。。
807仕様書無しさん:02/11/05 11:29
>806
If Yatteru Then
これは見づらくなるので800推奨のところもあるからいいと思う。
でも確かにこの変数名はちょっとヤバいな(藁
808仕様書無しさん:02/11/05 11:36
801がYatteruことと言えば
809名無しさん:02/11/05 11:48
If Jimmy.YatteruYatteru Then
810名無しさん:02/11/05 11:48
If Jimmy.YatteruYatteru() Then

こっちの方がいいか。
811仕様書無しさん:02/11/05 11:49
辞めようとまでは思わなかったけど
IDia/2なんて何度も書くくらいなら
const double IRad=IDia/2;
くらい定義しておけ

同じ処理何度もやることがわかるなら自分で関数作れ
俺が作るのをただ使ってるだけじゃなしにさ

まぁそいつのほうが辞めたんだけども
812仕様書無しさん:02/11/05 19:37
KomittoFuragu
確かに意味が分からないわけではないのだけど…

813仕様書無しさん:02/11/05 21:06
>>828
関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
814仕様書無しさん:02/11/05 21:35
>>813
明後日の方向にレスなさってますか?
815仕様書無しさん:02/11/05 21:59
828がどんな軽率なレスするのか今から楽しみだね
816仕様書無しさん:02/11/05 22:20
緊張するなあ
817仕様書無しさん:02/11/05 23:58
816=828 かい。
818仕様書無しさん:02/11/06 04:08
ん、デジャヴ?
819仕様書無しさん:02/11/06 09:22
ターイホ。

......ケーサツな発言。
820仕様書無しさん:02/11/06 09:25
  If OrderDet.RecordCount = 0 Then
    Set OrderDet = Nothing
    Exit Function
  End If
821仕様書無しさん:02/11/06 09:41
>>819
ツマラン。氏ね。
822仕様書無しさん:02/11/06 09:53
>>820
これまた何が言いたいのかわからんコードだ。
823仕様書無しさん:02/11/06 11:31
>>820
あーーーーーーーーーーーーーーーーーーーーーーーーほ?
824やっぱり最高:02/11/06 11:49
program main
parameter (n=1000000)
integer*8 isum
do k = 1,10
do j = 1,100
isum=0
do i = (k-1)*n+1,k*n
isum = isum + i
enddo
enddo
print *,isum
enddo
end


825仕様書無しさん:02/11/06 12:14
>823
これなに?
826仕様書無しさん:02/11/06 12:24
>>823
オマエモナ
827仕様書無しさん:02/11/06 12:24
>>824
ところでこれなに?
828たま:02/11/06 12:25
志村がババァのヅラかぶって聖歌隊でジャジーなギターカッティングにのせて、ひたすら『アーア』とか
『げっ』とか連発するやつ、また聞きたいなぁ。どっかに音源残ってないかなぁ
誰か、知ってる?
829仕様書無しさん:02/11/06 12:25
>>824
その言語名を教えてください。
830828:02/11/06 12:26
誤爆しました
失礼しました
831仕様書無しさん:02/11/06 13:10
第2章まで
C言語です

よろしくお願いします。
832仕様書無しさん:02/11/06 13:25
>>824
何となくはわかるが・・・。

const int n = 1000000;
long long isum;
for(int k = 1; k <= 10; k++) {
 for(int j = 1; j <= 100; j++) {
  isum = 0
  for(int i = (k - 1) * n + 1; i <= k * n; i++) {
   isum += i;
  }
 }
 cout << isum << endl;
}

500000500000
1500000500000
2500000500000
3500000500000
4500000500000
5500000500000
6500000500000
7500000500000
8500000500000
9500000500000

何をするプログラムなんだ?
833仕様書無しさん:02/11/06 13:54
>>832
仕事しろよ
834自業自得ですが:02/11/06 13:57
朝からトラブル発生!!
今日はずっと傷害対応
どんどん仕様が・・・
なんていうか、「思想の無い実装はあらゆる設計に劣る」という感じでしょうか。(毒)
835仕様書無しさん:02/11/06 14:07
834 って誰?
836仕様書無しさん:02/11/06 14:10
837仕様書無しさん:02/11/06 14:16
>>835-836
ワラタ
838仕様書無しさん:02/11/06 14:43
>>828
関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
839仕様書無しさん:02/11/06 14:51
>>838
激ワラタ
840仕様書無しさん:02/11/06 15:13
>>838
そんなに誤爆にカッカすることないじゃんよ
仕事のストレスですか?
841仕様書無しさん:02/11/06 15:14
>>838
> いくら匿名掲示板だからといって軽率すぎますよ。
オマエモナー

証拠品のスレ違いレス
http://pc.2ch.net/test/read.cgi/prog/1033317733/813
842仕様書無しさん:02/11/06 15:17
840 と 841 は何をカッカしてるんだ?
838 は、813 があったからネタで書いただけだろ。
843仕様書無しさん:02/11/06 15:47
> 志村がババァのヅラかぶって聖歌隊でジャジーなギターカッティングにのせて、ひたすら『アーア』とか
> 『げっ』とか連発するやつ、また聞きたいなぁ。どっかに音源残ってないかなぁ
懐かしいねえ。
覚えてるよ〜、オモシロカタヨ
844840:02/11/06 15:52
   ∧∧
   /⌒ヽ)   スマソ・・・イッテクル・・・ ツイデニ・・・クビモツッテクルヨ
  i三 ∪   
 ○三 |
  (/~∪
  三三
 三三
三三
845仕様書無しさん:02/11/06 15:56
840が人生辞めようと思ったスレ
846仕様書無しさん:02/11/06 16:09
遺棄炉!
847仕様書無しさん:02/11/06 16:24
>>846
読みがイキロでも、誤字がアレすぎて慰めになってねえYO!
848仕様書無しさん:02/11/06 16:28
>>840=>>844
死ぬほど落ち込むミスか?

まあ全て悪いのは、>>813の誤爆レスだがな
849841:02/11/06 16:34
>>848
その通り!813が全ての悪の元凶。俺は全然悪くない。
850仕様書無しさん:02/11/06 16:40
いや、841 はただの DQN だと思うが。
何度読み返しても。
851仕様書無しさん:02/11/06 16:54
なんでさー
ret = TRUE;
if (A == NULL)
  ret = FALSE;
if (B == NULL)
  ret = FALSE;
return ret;

if (A == NULL)
  return FALSE;
if (B == NULL)
  return FALSE;
return TRUE;
に修正するのは諸手を挙げて賛成なのに,オレが指摘した
if (A == NULL)
  hoge;
if (A != NULL && B == NULL)
  hage;

if (A == NULL)
  hoge;
else if (B == NULL)
  hage;
に修正するってのは不可なんだろうか?
オレの指摘っておかしい?
852仕様書無しさん:02/11/06 16:58
else if は使用禁止
853仕様書無しさん:02/11/06 17:03
>>851
関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
854仕様書無しさん:02/11/06 17:04
else使う時点で失格
855仕様書無しさん:02/11/06 17:05
>>853はコピペ
856仕様書無しさん:02/11/06 17:17
hoge; で A に NULL がセットされている罠 
857856:02/11/06 17:18
すまん、逆。
つーか、どうせネタだから勘弁して (;´Д`)
858仕様書無しさん:02/11/06 17:28
>>851
これ、Cのソースなの?らしくねぇかも。
つーか「ifやelseのぶら下がり」は褒められたモンじゃないなぁ...
おかしくはないんだけどねぇ〜
859仕様書無しさん:02/11/06 17:30
COBOLer のにおいがぷんぷんする
860仕様書無しさん:02/11/06 18:57
>>851
Cにおいて
if (A == NULL)
  hoge(&A);
if (A != NULL && B == NULL)
  hage(&A);

if (A == NULL)
  hoge(&A);
else if (B == NULL)
  hage(&A);
にしようとしているなら、先輩の言っていることは正しい。(君が間違っている)
861851:02/11/06 20:05
詳しい事情も知らずに人を非難するんじゃねえ!糞どもめ。
862仕様書無しさん:02/11/06 20:35
>>861
詳しい事情も書かずに何を言っている。
863仕様書無しさん:02/11/06 21:07
>>851 , >>860
No1
{
if (なんたら1)
処理1
else if(なんたら2)
処理2
}

No2
{
if (なんたら1)
処理1
if(なんたら3)
処理2
}

No2の方がわかりやすい。と思うのはおれだけ?
1Step1命令(ここでは判断文か。)がイイと思うけど。
No1では複数Step読んで、初めてわかる判断文はちょっと・・・。
どっちかって言えばNo2だと思う。Simple is Best。
誰か、マジレス期待。
864仕様書無しさん:02/11/06 21:14
>>863
状況による。
処理1と処理2が絶対に続けて処理を行わないことを示したい場合、No1を使う。
処理1と処理2が続けて処理を行う場合がある時はNo2を使わざるえない。
865仕様書無しさん:02/11/06 21:15
>>863
つ〜ことは、switch case文はなしですか。そうですか。
866仕様書無しさん:02/11/06 21:49
>>865
851 を switch で書けと?
867861:02/11/06 22:12
else ifの方が処理が速い
分かった?
ポンコツ君たち
868仕様書無しさん:02/11/06 22:13
N88BASICにて、二回Noにするとバグるコード

処理A


これでよろしいですか?(Y/N)
if Yes then return
全く同じ処理A


これでよろしいですか?(Y/N)
if Yes then return
ここから違うサブルーチンが始まる
869仕様書無しさん:02/11/06 22:14
処理が速いのはわかってるって。
870仕様書無しさん:02/11/06 22:15
>>867
(´∀` ) マターリ ね
871仕様書無しさん:02/11/06 22:15
>>868
それよりも、N88 が稼動している事に驚き。素直に。
872868:02/11/06 22:21
「この会社」じゃなかった。でも辞めたいのは真実
873仕様書無しさん:02/11/06 22:58
>>870
歴史修正主義は欧州諸国では重大な犯罪です。
874仕様書無しさん:02/11/06 23:06
>>873
明後日の方向にレスなさってますか?
875仕様書無しさん:02/11/07 00:20
goo = Right(CStr(Format(Date, "yyyy")), 1)

これのどこが悪いのか教えて下さい。
変数名ですか?
876仕様書無しさん:02/11/07 00:26
>>875
>>411-417 を読んで分からないと言ってるわけか?
877仕様書無しさん:02/11/07 00:52
ていうか、右端一文字が欲しいなら

Format(Date,"y")
でいいじゃねえか
878仕様書無しさん:02/11/07 00:55
cppソースファイル1つにつき、グローバル変数が90個以上付いてくる。
しかも、コンパイルで警告出まくり、実行したらランタイムエラー。
このコードを元に設計してと言われても、何がなにやら意味不明で・・・
グローバル変数名、b1,b2・・・b8とか、bb1,bb2・・・bb8とかなんで、
変数の意味が不明。更に、define定数の嵐で、コード解読不能です。
あと、各関数の頭にint i, x, y, z, ii, xx, yy, zz;って書いてあるんですが、
どうも使われていないようなんです・・・辞めて良いですか?
879仕様書無しさん:02/11/07 02:30
>>877
ネタですか?

ところで、
For i = 1 To 8: Debug.Print Now, String(i, "y"), Format(Now, String(i, "y")): Next
を実行したら不思議な気持ちになったよ。
880仕様書無しさん:02/11/07 02:33
>>878
工期が押してないのなら、むしろやりがいのある仕事だと思われ。
クソコードをクリーンにできるんだから。
クソコードをクソコードのままメンテしろというのならつらいが。
881仕様書無しさん:02/11/07 02:40
>>866-867

>>865は「複数Step読んで、初めてわかる判断文はちょっと・・・」
に反応したネタだと思われ。ネタにマジレス(・A・)カコワルイ
882仕様書無しさん:02/11/07 09:29
>>881
関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
883仕様書無しさん:02/11/07 09:53
>>882
私はボンバー 鼻くそボンバー
あなたもボンバー 鼻くそボンバー
884仕様書無しさん:02/11/07 10:36
            ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` )< >>883を捕まえますた
          /,  /    \___________
         (ぃ9  |
          /    /ヽ(`Д´)ノ ←>>883
         /   ∧_二二つ
         /   /    人
        /    \
885仕様書無しさん:02/11/07 10:43
>>884
し め 殺 せ !
886仕様書無しさん:02/11/07 10:51
>>885
関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
887仕様書無しさん:02/11/07 10:52
            ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` )< 過激派の>>885をしめ殺してみますた
          /,  /    \___________
         (ぃ9  |
          /    /ヽ(゚Д。)ノ ←>>885
         /   ∧_二二つ
         /   /    人
        /    \
888仕様書無しさん:02/11/07 10:54
>>887
関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
889仕様書無しさん:02/11/07 10:59
            ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` )< みんな、>>888みたいにコピペばかりしてちゃだめだぞ!
          /,  /    \___________
         (ぃ9  |
          /    /ヽ
         /   ∧_二二つ
         /   /    ∵
        /    \    ;__(゚∀。)ノ←>>888
890仕様書無しさん:02/11/07 12:17
   ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( ´Д` )< ダウンサウジングしますた
 /,  /    \___________
(ぃ9  |ヽ(`Д´)ノ< また糞コードだよウワァン
/   ∧_二二つ
891仕様書無しさん:02/11/07 14:28

    Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ( ・∀・)<  おまえら、おちけつ。
   (    )  \_____________________
プ>| | |
   (__)_)
892仕様書無しさん:02/11/07 14:46
何だこのインターネットは
893仕様書無しさん:02/11/07 16:48
>>1-892
関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
894仕様書無しさん:02/11/07 16:52
>>893
もっと効果的に使え。
895仕様書無しさん:02/11/07 16:56
┌────────────────────
│あ、どうもスイマセン、>>893がお騒がせしました・・・
└───v────────────────
     /⌒\ っ   /\
    /'⌒'ヽ \ っ/\  |
    (●.●) )/   |: | すぐ連れて逝きますんで・・・
     >冊/  ./     |: /
   /⌒   ミミ \   〆
   /   / |::|λ|    |
   |√7ミ   |::|  ト、   |
   |:/    V_ハ   |
  /| I         | ∧|∧
   и .I      N /⌒ ヽ) >>893
    λヘ、| I .NV  |   | |
      V\W   ( 、 ∪
              || |
              ∪∪
896仕様書無しさん:02/11/07 16:59


       必   死   ?

897仕様書無しさん:02/11/07 17:10
>>893
もっと効果的に(番号を)使え!
898仕様書無しさん:02/11/07 17:33
            ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` )< みんな、寝る前に歯をみがけよ!
          /,  /    \___________
         (ぃ9  |
          /    /ヽ
         /   ∧_二二つ
         /   /    ∵
        /    \    ;__(。Д゚)_←>>897
899仕様書無しさん:02/11/07 17:49
マの住人は学生ばっかりだな。
900仕様書無しさん:02/11/07 17:57
__(。Д゚)_←>>899=学生
901仕様書無しさん:02/11/07 18:16
             /ヽ       /ヽ
            / ヽ      / ヽ
  ______ /U ヽ___/  ヽ
  | ____ /   U    :::::::::::U:\
  | |       // ___   \  ::::::::::::::|
  | |       |  |   |     U :::::::::::::| 最悪…
  | |      .|U |   |      ::::::U::::|
  | |       | ├―-┤ U…..:::::::::::::::::::/
  | |____ ヽ     …..:::::::::::::::::::::::<
  └___/ ̄ ̄      :::::::::::::::::::::::::|
  |\    |           :::::::::::::::::::::::|
  \ \  \___      ::::::::::::::::::::::::|
902仕様書無しさん:02/11/07 18:19
貴様!学生だな!?
    ∧ ∧_
    _(,,゚Д゚)ヾ____                   ∧∧
    | ∨/| ̄    < |つ||━━━━━━       (゚д゚,,)
   i | // |  i_  < |                   |つ つ  
  ○|||//.  |   | ̄ ̄                  @|  |
   | ||=∞=|   |                     ∪∪
  l_|  i  |__|
 /    |   ヽ
 L__⊥___」
  /Y_l   〈_Yヽ
903仕様書無しさん:02/11/07 18:25
いつからここは AA スレになったんだ・・・
・・・884 からかゴルァ
904仕様書無しさん:02/11/07 19:14
それじゃ、俺が今日ほのぼのしちゃったコメントを貼ってやるぞ



// 順番に処理をしていく



  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( *´∀`) < そうね。順番にね。
 (つ   つ  \________
905仕様書無しさん:02/11/07 20:39
>>902

> 貴様が臭ぇだな!?

風呂に入れよ。
906仕様書無しさん:02/11/07 22:46
>>878じゃないですけど。
>>880 仕様書がなくても同じこと言えます? オレならイヤだなぁ…
907880:02/11/07 22:53
>>906
実績ありますが何か?
908仕様書無しさん:02/11/08 00:37
>>904
コメント行が
// 順番に処理をしていく
のみなんですが、AAもコメントアウトしないの?
909仕様書無しさん:02/11/08 00:49
>>908
904 は C++ や Java でないから大丈夫だよ。
910仕様書無しさん:02/11/08 08:12
>>904
DSPのプログラムではないらしいことは解った。
911仕様書無しさん:02/11/08 10:17
昨日あったクライアント先の人は、その中で一番まともな人みたい。
ちなみに今日オレがうへぇと思ったソースはこんなやつ。
if (strcmp(str, HOGE) == 0) {
  hoge(str);
} else if (strcmp(str, HAGE) == 0) {
  hage(str);
} else if (strcmp(str, FOO) == 0) {
  foo(str);
} else if …
延々else ifが20個以上も続くヤツ。

オレならきっと
struct functable {
  char *id;
  void (*func)(char *);
};

struct functable table[] = {
  {BAR, bar},
  {FOO, foo},
  {HAGE, hage},
  …
}
こんな配列*1を用意して
p = bsearch(str, table,
      sizeof(table)/sizeof(struct functable),
      sizeof(struct functable),
      strcmp);
p && p->func(str);
とかすると思うなぁ。
ここまできたら趣味の問題?
912仕様書無しさん:02/11/08 10:50
>>911
あっ、それ俺やってる。
3つぐらいだけど。

if(!strcmp(str, "HOGE")) {
  hoge(str);
} else if(!strcmp(str, "HAGE")) {
  hage(str);
} else if (!strcmp(str, "FOO")) {
  foo(str);
} else {
  goto Error;
}

こんな感じ。
913仕様書無しさん:02/11/08 12:04
>>911
> ここまできたら趣味の問題?

異常ではないのだろうか。
鈍感になっているのか・・・理解出来ない。
目にチカチカとしみて鼻の奥がツ〜ンとなり大きなクシャミが出る。
断わっておくが私はアレルギー性鼻炎ではない。
これは「趣味の問題」と言って済まされるのだろうか。
914仕様書無しさん:02/11/08 12:16
>>911
かえって保守性が落ちるよ。
新しくデータを追加するとき、入れる場所を間違えたら動かないじゃん。
テーブルを生成するスクリプトでも書けばいいかもしれないけど、
たかだか20くらいのデータでそこまでするのもどうかと思うし。
915仕様書無しさん:02/11/08 12:34
>>914
順番に並んでいるか検査するアサートを入れれば良い。
916仕様書無しさん:02/11/08 12:54
つか、俺なら設計が悪いとか言い出すかも。
917仕様書無しさん:02/11/08 13:09
俺はif文好きだけどな。
918仕様書無しさん:02/11/08 13:42
俺はgosub〜returnが好きだけどな。
919仕様書無しさん:02/11/08 14:05
>>913=異常者(無職)
920仕様書無しさん:02/11/08 14:42
>>914
そういうヤシに限って、ソースをコピペした後ジャンプ先や、変数名を
修正し忘れてる香具師は多い。

VBのような腐った言語だと、変数名をタイプミスしても、デフォルトで新たな
variant型の変数が定義されたと判断するので、コンパイルエラーにもならない。

保守性うんぬん言ってるヤシに限って、ロクにテストのプランも立てていないし、
テスト手順も一通り走らせてみて問題がなければOKと判断してたりするから、
エラー処理などの例外処理コードが腐っている業務アプリは多い。

921920:02/11/08 14:44
>>914
追加。

テーブル自体がスクリプト(計算)で生成できるものなら、わざわざテーブル
を作る必要はない罠。
922仕様書無しさん:02/11/08 15:16
>>921
そうか?
923仕様書無しさん:02/11/08 15:17
>>920
論点ずれちまうが、VBでもOption Explicit必須にさせるだろ。
924920:02/11/08 15:29
>>923
客先が無知なのはある程度仕方ないとしても、そうでもないトコ多いみたい
よ。 実際、漏れそんなコードの保守みたいな仕事やったことある。
しかもコメントや資料もろくになし。

少なくとも、ある会社はそんなソフト使って生命保険を売り込んでいたのも
また事実。
925仕様書無しさん:02/11/08 15:52
// →栗でポップアップメニュー

あ、コメントだった・・。
926仕様書無しさん:02/11/08 17:42
>>925
異常ではないのだろうか。
鈍感になっているのか・・・理解出来ない。
目にチカチカとしみて鼻の奥がツ〜ンとなり大きなクシャミが出る。
断わっておくが私はアレルギー性鼻炎ではない。
これは「あ、コメントだった・・。」と言って済まされるのだろうか。
927仕様書無しさん:02/11/08 17:51
>>920
つーかVBに限らず業務アプリに限らずエラー処理や例外処理コードが腐っているのは多い。
まともにエラー処理を考えている人が少ないし、ちゃんとした技術が確立している人もすくない。
雑誌や書籍でまともに扱っている本は少ないし、良くあるサンプルコードでは省いてやがる。
ちゃんとしたエラー処理の書き方を知らない人は多いはずだ。
928仕様書無しさん:02/11/08 17:56
正直、エラー処理っていらないと思う
929仕様書無しさん:02/11/08 18:01
>>928
ネタですか?
930仕様書無しさん:02/11/08 18:06
実際俺のコードのエラー処理は不十分だとは思うなあ.
Assertって使い方よくわかんないし.

ありえない値とかはelse使って吸収しちゃうしな.
if〜except文書くのはDB開くときくらいだ.

あ、使ってるのはDelphiね.
931仕様書無しさん:02/11/08 18:15
>>907 そゆ仕事を「やりがいある」と言い切れる
前向きなあなたがうらやますぃです。
いや、煽りとかじゃなくマジで。
932仕様書無しさん:02/11/08 18:34
悪いことは言わん。↓コレ読んどけ。

「Visual Basic バグ退治法 ISBN4-7973-0963-6」
933907:02/11/08 18:59
>>931
そうか? やり遂げると気分いいぞ。
そう高水準な技術を使ってるわけでもないのに敬われるし。
934仕様書無しさん:02/11/08 18:59
何故年寄りが糞コードを書くか、わかった気がする。
935仕様書無しさん:02/11/08 19:13
>>932
それ読んだ。でも正直言ってその程度じゃ不十分。
936920:02/11/08 19:45
>>927
『学校で教えてくれませんでした。』って言ってるヤシがいたな。 しかも
驚くことに本人曰く、CS(Computer Science)のMBA持ってるんだそうな。

Webで検索したりMLで教えてもらったサンプルコードのコピペで『できました』
って言うてるヤシ多いんとちゃうか?
937仕様書無しさん:02/11/08 19:52
>>935
オメデトウ!とっとと次のステップに逝けや。
938仕様書無しさん:02/11/08 19:55
>>937=932
次のステップに逝ってるからこその 935 の発言じゃないか?
自分の紹介したものが不十分と言われただけで、不機嫌になるなよ。
939仕様書無しさん:02/11/08 20:02
>>938は逝ったつもりになってるだけにIモナー
940仕様書無しさん:02/11/08 20:46
>919
VBなら、ふつー Opetion Explicit するよな? いや、ひょっとしてキミが
言っているVBはVisual BASICの事じゃないのか?

やろうと思えば、C言語の方がよっぽど腐った書き方ができるぞ。
VBは宣言(?)した時点で初期化されることが保証されているが、C言語はそうではない。
941業 ◆ItkaRMAJ7. :02/11/08 20:48
>936サン
ごめんなさい。
942仕様書無しさん:02/11/08 20:57
このスレを見ていると会社を辞めたくなる。自分のレベルの低さに
申し訳なくなって…(⊃д`)
943仕様書無しさん:02/11/08 21:06
>>940
やらないよ。Option Explicit宣言なら当たり前だけど。
944仕様書無しさん:02/11/08 21:11
>>930
Assertはエラー処理とは何の関係もないです。

場所でこういった条件が成立していなければならない、
それ以外はバグだ、ってときにAssertをいれてチェックするのです。

Assertはいざバグだ、ってなったときにはそのUnitと行番号を表示して
プログラムを停止します。

バグとエラーは違います。バグは絶対にそのようなことが起きないように
取り除かねばなりませんが、エラーは起き得るのでリカバリしなければなりません。
945仕様書無しさん:02/11/08 21:52
>>942
よし、辞めろ。

 今 す ぐ に
946仕様書無しさん:02/11/08 21:55
>>945
あ、キミ、明日から会社に来なくていいから。
さみしくないように>>942も一緒にしといたから。
じゃ、残業が付く前にさっさと帰ってね。
947仕様書無しさん:02/11/08 22:00

お  前  ら  オ  チ  ケ  ツ  。
948仕様書無しさん:02/11/08 22:05
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
949仕様書無しさん:02/11/08 22:50
>>936
それは100%ウソだな。
CS の MBA(経営学修士) が取れる大学なんて
この世にない。
950仕様書無しさん:02/11/08 23:35
COBOLのバッチプログラムで、
500件ごとに進捗を表示するのに
普通なら除算して余りを計算するところを

IF I = 500 OR 1000 OR 1500 OR 2000 OR
2500 OR 3000 OR 3500 OR 4000
THEN

なんてやっているのがあった

951仕様書無しさん:02/11/08 23:44
>>950
ご愁傷様だが次スレよろしく。
952仕様書無しさん:02/11/08 23:48
>>950
あ、1 に 「質問する前に Web で検索しろ」 って書いといて。
あと 「丸投げ/宿題おとこわり」
953仕様書無しさん:02/11/09 00:00
>>950
割り算はコストが高い(高クロック消費)って言うのを聞きかじって
そうしたのかな?
こーゆう全体を見た結果なのか、思いつき思い込みでこうなってるのか
分からないプロが一番嫌だね。
954仕様書無しさん:02/11/09 00:01
コンパイラ作る立場として
糞ソースは参考になるよ
955仕様書無しさん:02/11/09 00:05
>>953
わり算がイヤなら変数を用意するかなぁ。
956仕様書無しさん:02/11/09 00:11
エラー処理って、きっちり分かってる人は少ないよな。
(俺もえらそうなことはいえない)

エラーの種類分け
 ・プログラムエラー
 ・実行時例外
 ・システム例外
対応方針
 ・発生しないようにプログラムコードを書く
 ・発生した場合に、実行停止しないように続行するよう記述する
 ・発生した場合に、実行を即時停止する
 ・安全な方に回避する
対応方法
 ・エラーメッセージをそのまま出力する
 ・ユーザーには詳細を見せない(管理者のみ見られるようにする)
 ・ユーザーに詳細を見せる
 ・フラットファイルに出力する
 ・データベースに出力する

たかだか3種類の軸を設定しても、いくらでも選択肢を想定できる。
すべてのシチュエーションを完璧にカバーするのは難しい、っつーか無理に近い。

でも、「見えないようにするのがエラー処理」と考えている奴が多いのも確か。
エラーを見せるのも立派なエラー処理なのに。
957 :02/11/09 00:22
CS(Computer Science)のMSだったらな・・
958仕様書無しさん:02/11/09 00:39
>>956
プログラムエラーと実行時例外はどう違いますか?
959仕様書無しさん:02/11/09 00:52
プログラムエラーって普通、論理エラーの事を指さないか?
ユーザーエラーでもないしな。
960すぷーん ◆spoonLv.3M :02/11/09 01:01
>>956
まぁ同意なんだが、エラーを出さないのも同じように重要かと。
いちいちダイアログが出るのは正直ウザイ。

メカ系ではメカストップが付いてるので、いちいちエラー処理を書かないこともある。
未だにエラー処理は悩むので、コーディング規約よりエラー規約を
プログラマレベルで統一するのも意味あるかもです。

ま、無理だろうけど。
961仕様書無しさん:02/11/09 01:01
>>956
何かの本(UMLモデリングのエッセンスだったかな?)で、

「例外とは事前条件が満たされているのに、
事後条件を満たすことができなかった場合である」

と書いてあるのを呼んだ覚えがあります。
しかし、その中の実行時例外とシステム例外に、
どのような違いがあるか分からないので教えていただけませんか?
もしくは出典を・・・
962958:02/11/09 01:03
1+1と入力して3がでる、という類のものがプログラムエラー?
バグ?
どうやって、実行時にみつけるの?
963958:02/11/09 01:06
>>960
「規約」ではなくて「仕様」にするべきと思われ。
964920:02/11/09 01:09
あんまエラーの分類については意識したことないんだが、O除算エラーや、
short×short=shortでオーバーフローとかはどれなんだ?

malloc失敗とか、ファイルオープン失敗は実行時エラーなのか?
965すぷーん ◆spoonLv.3M :02/11/09 01:10
>>963
「仕様」では当たり前すぎるような気がする。
○○という場合には△△といったテンプレートのような存在が出来ればいいなぁ、と。


これって「仕様」じゃないよね。
966仕様書無しさん:02/11/09 01:11
ユーザーエラーとかシステムエラーとか論理エラーとかいろいろあるけど
どれがどれに当てはまるのか良く分からない。
まあ、完全にわからないというわけでもないんだがこれらの違いによって
書くエラー処理の方法が変わる気がしない。
エラーは全部throwで例外を発生させればいいんじゃないかと思う。
967仕様書無しさん:02/11/09 01:12
まぁまぁ、エラーもバグもどっちが出たって
上から怒られんだから、どっちでも大差ないって
968920:02/11/09 01:14
>>966
漏れは、例えば数字入力するエディットボックスで、英文字キー押した途端、
例外発生して終了するようなソフトは使いたくないぞ。
969仕様書無しさん:02/11/09 01:15
>>967
ユーザーエラーは上から怒られない。発生しないに越したことはないが
発生するのは避けられないからその時どうするかというのは重要。
というか話に参加しないならでてくんな。
970958:02/11/09 01:16
>>965
>○○という場合には△△といったテンプレートのような存在が出来ればいいなぁ、と。
それなら設計段階の規約で、プログラマで統一するものではないような。

>>967
仕様としてエラーをだすなら怒られないよ。
971仕様書無しさん:02/11/09 01:19
>>968
トラップすれば良い。
内部でバグが発生した場合、例外発生して終了するだけじゃ問題解決の手がかりが残らない。
メッセージを表示するとかログを取るとかするはず。
だから最終的にはすべてのエラーはトラップされるのが良いと思う。
そのエラーのトラップの処理で十分吸収できると思うけど。
972971:02/11/09 01:20
あれ? トラップという言い方はおかしいのかな? キャッチと言った方が良いのかな?
973920:02/11/09 01:27
>>971
ネタか? キー入力ならisdigit(c)とかマスク処理するやろ。 何でも
かんでも例外をスローされたら堪らんぞ。
974仕様書無しさん:02/11/09 01:34
>>973
当然だわな。そのルーチン内でハンドリングできないようなエラーなら、
上に例外をthrowするしかないだろうけど。
975956:02/11/09 01:38
きちっとした、こうやるとよいぞっていうドキュメントは見たことが無い。
自分で考えても、なんかびしっと決まらない。
要件が場合によってばらばらだから、一般化しにくいものなのかもしれない。

そんな中で、この文書は「一般論として」よくまとまっていると思う。
 EJB例外処理のベスト・プラクティス(developerWorks)
   http://www-6.ibm.com/jp/developerworks/java/020802/j_j-ejbexcept.html

976920:02/11/09 01:39
>>974
言語処理系にもよるけど、プログラム全体の処理に関わるエラーはスロー
するけど、関数の呼び出し元で結果判断できるようなエラーは戻り値で
返すようにしない?
977参考:02/11/09 01:58
978仕様書無しさん:02/11/09 02:17
エラー処理については以下が基本。
1)エラーの捕捉は捕捉が可能な箇所で(通常は低レベルな層)
2)エラーの処理(判断)は、より判断材料が揃っている高レベルな層で

エラー処理の面倒さというのは、以下のような点にあるように思う。
・上記の二条件を満たそうとすると、必然的にエラーの上層への
 伝播が必要となる。言語レベルで例外機構をサポートしているならば
 これはさほど問題ではないが、Cのようにそれをサポートしない言語や
 C++のように例外が後付けで導入されたため、例外に関する仕様その他が
 腐っている言語もある。
・高レベルな層がエラーに(親切に)対応するには
 -どのようなケースでどんなエラーが発生する可能性があるか
 -それは回復可能なエラーか。どのような回復手段が望ましいか
 といった点を考慮する必要が有る。
これには低位な層の実装への知識や上層・下層間のかなり緊密な連携が
しばしば必要になるが、云うまでもなくカプセル化の概念には真っ向から
反する。

現実世界のアナロジーで考えれば、上司への報告は、階層を経る毎に
抽象度や粒度が変化するであろう。取りあえずthrowすれ、という
中間管理職は有能とは見なされない。
# が、各層で一々エラー処理をやるのはやっぱり面倒....
979仕様書無しさん:02/11/09 02:46
978 にはおおむね疑問だが、

>          言語レベルで例外機構をサポートしているならば
> これはさほど問題ではないが、Cのようにそれをサポートしない言語や
> C++のように例外が後付けで導入されたため、例外に関する仕様その他が
> 腐っている言語もある。

これには疑問だな。
直ちに適切なエラーコードを return すればいいだけだ。
それとも、戻り値をチェックするのに不満があるのか?

例外が使えるとスッキリ書けるのは確かだけど。
980仕様書無しさん:02/11/09 02:55
漏れのホスト、スレ立てられない。
981 の人頼む。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。
プログラマを悩ませるソースコード。
COBOL ライクなソースコード。(゚д゚)マズー
をつらつらと綴っていって頂戴。

質問する前に Web で検索してね。
あと、丸投げ/宿題おとこわり。

■過去スレ
この会社辞めようと思ったソースコード
#1http://mentai.2ch.net/prog/kako/997/997104873.html
#2http://pc.2ch.net/prog/kako/1001/10010/1001076034.html
#3http://pc.2ch.net/prog/kako/1015/10158/1015861447.html
#4http://pc.2ch.net/test/read.cgi/prog/1021560641/
#5http://pc.2ch.net/test/read.cgi/prog/1029120005/
#6http://pc.2ch.net/test/read.cgi/prog/1033317733/

■関連スレ
この会社辞めようと思った上司の一言
#1http://mentai.2ch.net/prog/kako/992/992259973.html
#2http://pc.2ch.net/prog/kako/1003/10034/1003497181.html
#3http://pc.2ch.net/test/read.cgi/prog/1024763650/
#4http://pc.2ch.net/test/read.cgi/prog/1034469344/
この会社を辞めよーかなーなんて思った上司の一言
#5http://pc.2ch.net/test/read.cgi/prog/1036592708/
981ななし:02/11/09 02:58
>直ちに適切なエラーコードを return すればいいだけだ。
戻り値の取りうる値がすべて正常値のときはどうすればいい?
int div(int a,int b){ return a / b;}
なんかは。

>それとも、戻り値をチェックするのに不満があるのか?
ある。
めんどくさい。
982仕様書無しさん:02/11/09 03:03
>>981
次スレ。

> int div(int a,int b){ return a / b;}
戻り値の取りうる値がすべて正常値の関数は普通、絶対にエラーが無いか、書かない。

> めんどくさい。
まあ同意するけど、仕事でやる時にまでブーブー文句言う程ではない。
983リアル厨房:02/11/09 03:18
そうか、戻り値ありの関数にはエラーコードを返させれば
良かったんだ。何も知らなかった。
今までは、エラー検出時にはソフトウェアリセットの操作bitを
叩いて自爆するように組んできたんだけど、少しは考えるか。
Device設計するハード屋には必ずソフトリセット機能による
完全復帰を要求してるし。
984仕様書無しさん:02/11/09 03:19
985仕様書無しさん:02/11/09 03:20
>>984
986984:02/11/09 03:23
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 1000取りたい!
\________ _______
                  |/
             ∧,,∧∩
          目ミ ゚Д゚ ミ
            || (ミ  ミ
          ||  ミ  ミ〜
           ||  ∪ ∪
987仕様書無しさん:02/11/09 03:25
        まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )

http://big.freett.com/scheme_a/num1000.swf
988リアル厨房:02/11/09 03:26
>983
デバッグ初期のボードなんか、意味も無く初期リセットを繰り返すので、
LEDが全点灯/消灯を繰り返すもんで、美しいぞ。
バグったって分かり易いだろう!
989984:02/11/09 03:26
今だ! 1000ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
990仕様書無しさん:02/11/09 03:44
今だ! 3ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
991仕様書無しさん:02/11/09 03:46
          アヒャーー
      ∧∧
     (゚∀゚ )⌒ヽ ≡≡ = = -
    ,.、,,U‐U^(,,⊃_       /i ≡≡≡ = = -
   ;'゚∀゚ 、、:、.:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i = ≡≡≡ = = -
    '、;: ...: ,:. :.、.:',.: .:: _;.;;..; :..‐'゙  ̄  ̄
     `" ◎ ''`゙ ◎ ´´   - = ≡ = = -
992仕様書無しさん:02/11/09 03:47
  アヒャーー
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚∀゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
993仕様書無しさん:02/11/09 04:02
    (⌒, -- 、⌒)     / ̄ ̄ ̄ ̄
  _  Y      Y  _ < 1000getレースですか?
 ミ \| ・  . ・| / 彡 \____
    @ゝ.  ^  ノ@
994仕様書無しさん:02/11/09 04:03
                /)
             、2)Y⌒  ⌒フ   +
           ッ-i'´       ⌒フ
           (´ ,.-゙ー-、     ろ、
        * シ彡ノ"ミVv    )
      *    ノノノノ"ヽヽヽミ   シ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
.          ,l')∩  ∩ |)|ヾ ミ  < 1000!!
           ,○)、 ▽  ノjl| YY゙    \_______________
           {_∃ `l____/⌒'i|           
            ̄ Yl"゙⌒lY |  +
              ,ト|__/ハ i、           
           ,iニiニiニユ ゙h,,)
           ノtYTYヾ\
          /''フ''''ー<"ヽ、
           /__ノ     \ノヽ、
          (__)     ゞ__)
995仕様書無しさん:02/11/09 04:04
。1000取り合戦に遅れちゃうよ〜〜〜
。   ∧_∧。゚
 ゚  (゚ ´Д`゚ )っ゚
  (つ   /  アァァァァ
    |  (⌒)
   し⌒^
996仕様書無しさん:02/11/09 04:06
1000!!!
997仕様書無しさん:02/11/09 04:06
  _∧ ∧ ∧  ワーイ          _∧ ∧ ∧  マテー
 (_・ | (・∀・)            (_・ | (´∀`) 
   | Ю⊂)_√ヽ            | Ю⊂)_√ヽ   
   (  ̄ ∪ )^)ノ           (  ̄ ∪ )^)ノ
    || || ̄|| || ≡≡≡≡        || || ̄|| || ≡≡≡≡ 
    || ||  || || パカッパカッ      || ||  || || パカッパカッ
998仕様書無しさん:02/11/09 04:07
1000!!!
GETTTTOOOOOoooo...
999仕様書無しさん:02/11/09 04:07
1000
1000仕様書無しさん:02/11/09 04:07
                    /:|.             /:|
                   / .:::|            /  ::|
                  |  ...:::|_          /   :::|
                 i       ̄ ̄⌒゙゙^――/   ::::::|
                /                  :::::::::\
                /|・\           ./・>    :::::::::\
               /ミ\ \         / /彡 i し./:::::::\
               /  ミ\.\ヽ|||liiiii||/ /./彡   ノ (::::::::::::::::::\
              /    ミ\\|||iii||l//彡     '~ヽ  :::::::::::::::\
             /        ̄    ̄,,、          /:::::::::::::::::.\
..  ガ━━━━━/  \ /  ,,____ _,/ ̄ \ \    /::::::::::::::::::::::::::::\━━━━━ソ!!!!!
           \    |.. | /└└└└\../\    /:::::::::::::::::::::::::::::::::/
             \    ∨.|lllllllllllllllllllllllllllllllllllllllll|  /::::::::::::::::::::::::::::::::::/
              \   |.|llllllllllll;/⌒/⌒   |    ::::::::::::::::::::::::/ 
                \ |.|lllllllll;   ./ .   . |    :::::::::::::::::::/
                /  |.|llllll|′  /    . |    | ::::::::/|
                /  |.|llll|    |     .∧〔   / ::::::::::::::::\
              / }.∧lll    |    ../ /  /   :::::::::::::::::\
             /   /| \┌┌┌┌┌/./ /:::      :::::::::::::::::\
           /    ( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄ /:::::::::::         ::::::::::\
          /     ヽー─¬ー〜ー――― :::::::::::::
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。