ちっ、3か。
6 :
仕様書無しさん :02/09/30 02:53
どんなコードを相手にするにしても、だ。 曰 | | ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ノ__丶(〃´Д`)_ < まあ呑めや。 ||伊||/ .| ¢、 \_________ _ ||佐||| | .  ̄丶.) \ ||美||L二⊃ . ̄ ̄\ ||\`~~´ (<二:彡) \ ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄ . || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
class Oppai; とかあってビックリだったよ。 俺が書いたんだけど。
9 :
仕様書無しさん :02/09/30 06:46
COBOLライクなソースコード。(゚д゚)マズー ワロタ。アゲ。
10 :
仕様書無しさん :02/09/30 16:02
私はアホです。
スレマチガエマシタ。
12 :
仕様書無しさん :02/09/30 16:36
ソースコードじゃないけど、会社のトイレで「SEXしたい」とか「○○ちゃん好きだ」なんて 厨房なみの落書きを見つけた私はスレタイどおりの行動をとった方が良いですか?
そういう時は、「by○○(部長の名前)」とか「by◎◎(先輩の名前)」を 書き足しておくのが、親切心というもの。
おながいします メソッド全体を try { 〜 } catch (Exception e) {} (catchでは何もしない)で囲まないで下さい 複数からアクセスするファイルを扱う*インスタンスメソッド*にsynchronizedを付けて排他したつもりにならないで下さい おながいします
17 :
仕様書無しさん :02/10/02 00:00
char *p; int *ii; &ii = (int *)p; なんでもかんでもキャストすればえーっちゅうもんじゃないっつうねん
┌─────────────────────────┐ │☆☆☆☆☆☆☆―おいらの胸の心の愛 ―☆☆☆☆☆☆☆│ │☆ ┏━┓┏┳┓ ┏┳━━━┳━┓┏┓ ☆│ │☆ ┣━┫┃┃┣┳━━┛┣━┳┓┣━┛┃┃ ☆│ │☆ ┗━┛┣╋┛┗┳┓┏┛ ┃┣┛ ┃┃ ☆│ │☆ ┏━━┛┣┓┣┛┃┃┏━┛┃┏━━┛┃ ☆│ │☆ ┗━━━┛┗┛ ┗┛┗━━┛┗━━━┛ ☆│ │☆ ┏┳┓┏┳┓ ┏┳━━┳┳┓ ☆│ │☆ ┃┃┣┛ ┗┳━┛┃ ━ ┃┃┃ ☆│ │☆ ┃┃┣┓┃┏┻┓┏┫┏┓┃┃┃ ☆│ │☆ ┗┫┃┗┫┃ ┃┃┗┛┃┃┃┗┓ ☆│ │☆ ┗┛ ┗┛ ┗┛ ┗┻┻━┛ ☆│ │☆ ▼▼▼▼ ☆│ │☆ 本日 PM 3:00 開演 場所 空地 ・__・ ☆│ │☆ 来ないやつは殺す 〇 ☆│ │☆ 3 .☆│ │☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆│ └─────────────────────────┘
いっ、逝きます!
23 :
仕様書無しさん :02/10/02 01:49
javaなんだが,200個くらいのオブジェクトからキー(文字列)で検索するのにVectorに突っ込んでIteratorで一つ一つ検索している.... てか、まずHashtable使えよ。普通に。 それで「おそくて使い物にならんよー」とかいってみたり、Hashtableつかったらどう?てな話したら「いやあ、あんまり かわらんよ」といってみたり(やってみろよだまされたと思って) とりあえず計算量とかいう言葉を大学で習わなかったんだろうなあ。
>>23 Hashtableも使わないでほしいです。
CollectionsFrameworkの項を嫁。
ジャイアンリサイクル?
26 :
仕様書無しさん :02/10/02 12:27
ちょっといい話し。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− あちこちから悲鳴が聞こえる泣き叫ぶ子供。瓦礫と化した家に押しつぶされる日本人。 「助けて…」という声が絶え間なく聞こえている。しかし被災した神戸の住民は、放心 したように黙って座り込んでいるだけだ。あまりのショックに下敷きになっている人を 助けることさえ忘れているのだ。 「今助けるけん。まっとんしゃい!」 こう叫んだのは共に住民として神戸に住む在日韓国人達だった。自分も血を流し怪我を しているにも関わらず救助活動を続けた。 「ぜったい助けるけん。がんばっとー!」こうして懸命な救助活動の末助け出された人 達は1万人以上にものぼる。助けられた中学生の女の子は「在日韓国人の人がいなかっ たら間違いなく死んでいた」と涙を流した。村山首相を始め救助活動の遅れが多くの助 けられる人たちの命を奪った。「助けるのは当たり前けん! 私ら同じ住民やもん!」 オモニ達は目に涙を浮かべていた。
またデマ流しているチョソがいる。
28 :
VB-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:\\"}; ・・・・・え〜と( ̄▽ ̄;)
「コーディングの早さ」で最適化されています。 そんなんばっかだウワァァン
30 :
仕様書無しさん :02/10/02 20:21
自分の作ったソースをみて辞めたくなった事があるな
>>30 自分の作った伝統醤油を見て悩む職人になりたいねー(w
>>26 てかそのチョソの人がしゃべってるのは何弁なん?
神戸はそんな言葉しゃべりません。
>>32 「神戸の言葉なんか喋らんけん!私らチョソやもん!」
Servlet/JSPの話ですが、 ・メンバ変数が String[] para = new String[3000]; だけのオブジェクトをJavaBeanと言い張って、 ・そのオブジェクトをセッションオブジェクトに格納して、 ・コメントに規則を記述しその規則に従って使え、 とのたまうリーダーの下で仕事しています。しかも ・そのオブジェクトはHTMLテキストの一部を保持して(これは状況次第で許されるかも) ・しかもそのHTMLテキストをサーブレットが生成しています。 さらに ・クラスライブラリを使えば10行でできるソートを自力で実装(しかもバブルソート) ・DBの正規化をしません。 ・設計しません。クラスは場当たり的に出現します。 ・何を言っても聞きません。「よく知らない」 「こういう方法もありだろう。美意識の問題だ」 「私は前回もこの方法でやってきた」と返されます。
>>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 俺も良く使う。メンバ変数の方が通りがいいから。
フィールドって言うと「?」な反応されるんで。
>36 ThisとかThatがついてる妙なセンスにワラタ AAA_TO_ZZZとかはサフィックスなんだろね。 もっとないの?
>>35 よく混同します。JavaとC++を両方やっていた時期が長かったので。
Javaなら「インスタンス変数」か。
あと、C++やC#で「スーパクラス」「サブクラス」っていったり。
「基底クラス」「派生クラス」なんて、意識しないと言えません。
>24 嫁んだ。どもありがと。 でも、なぜ使わないでほしいになるかがよくわからんのだが....要はHashMap使えってことでしょうか? #もっと別のこといってたらすまん HashMapとHashtableの違いは 1 nullをkeyや値として許すか否か 2 HashtableはThread safeであるせいで性能的にHashMapのほうがいい くらいだと思うんだけど、正直使うことを否定されるほどの理由になるほどの ものも読み取れなかったんだが.... ま、Collection APIが導入される時点でHashtableやVectorや Emuratorがdeprecatedになっていればすっきりしたね、とは思うが....
>>オブジェクトをJavaBeanと言い張って JavaBeanはJavaBeanじゃないの? EJBじゃないけど
>>24 Hashtable の親クラスである Dictionary クラスの API ドキュメントに
>注: このクラスは現在使われていません。新しい実装では、このクラスを拡張しないで Map インタフェースを実装してください。
って書かれているから、 Map を実装した HashMap の方が良い、というコトなんではないあろうか。
スレッドセーフにする必要があるなら、Collections#synchronizedMap(Map m)を使えば良いし。
45 :
仕様書無しさん :02/10/03 12:38
ポインタなんかなくていいよ
C++Builder4で作ってたソフトで、警告168個出てたのに先輩はけろっとしてます。
47 :
仕様書無しさん :02/10/03 19:16
age
>>46 VC++6.0は警告レベル最大にすると標準C++ライブラリヘッダ内で
警告がたーんと出るんだよなぁ。(VC++.NETは使ったことないから知らん)
C++Builderはそんなタコなことないの?だったらそれだけでうらやますぃ。
その先輩が英語のメッセージを読めなかったってやつだ。(w
>>46 ある子会社からの納品物の動作がおかしい。
試しにコンパイルしたら、キャストがらみの警告多発。
ぎょっとして、チェックしたら「よくわからないところはとりあえずキャスト」だった。
クレーム出して1週間で作り直せつーたが、結局1ヶ月かかってた。
なお、納品までの期間は1ヶ月。
クレームぶつけまくって、¥は半分以下にしてやったらしい>営業
ちとスレ違いなのでさげ
>42 いや、それは問題ないのでは?だって、HashtableはMapもimplementしてる。
>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つ宣言してる。 「現在の値」を更新する前に、その値を「直前の値」に保存したりとかするんじゃないのか。 というか、「次の値」ってのが一番意味不明だな。処理を予測して代入するのか?
>>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
>> 54, 55 どこから、そんなばかな規約が出てくるのか、小一時間問い詰めたい。 COBOLER?
>>54 そういうのってこの板でよく見かけるけど、
んな馬鹿な会社がほんとにあるの?
66 :
デジタル土方 :02/10/06 00:19
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){ おいおい代入と比較が一致してないぞ○○
>> 68 >> 「スイッチ使え」は switch じゃなくてフラグ値による分岐だったことは これわからないんですが、 if (flag == 1) { ... } else if (flag == 2) { みたいな意味? それとも文字通り if (flag == 1) goto FLGA1; if (flag == 2) goto FLAG2; goto ERROR; FLAG1: ... みたいなもの?(って、さすがにそれは無いですよね)
>>69 それもイタイなぁ。
それって結局、構造化プログラミングを受け入れたくないということ?
やっぱり COBOLer か BASICist ですか?
>>73 >(って、さすがにそれは無いですよね)
どうだろうね…。
そんなネタレベルの話ですら、ひょっとしたら実在するのかもって思えるのが
この業界の恐ろしいところだ。
76 :
某電機メーカー系 :02/10/07 02:44
ウェッブアプリケーションの開発に乗り出した今日この頃。 ...はいいけど、バカの一つ覚えみたいに何でもかんでもJSPにコードScriptletで書くのはやめい。 ...「ふつー、カスタムタグとかServletとかつかいません?」といったら、 「いやこれならソースコード行方不明になったりしないから...」なんだそうな。
>>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
82 :
仕様書無しさん :02/10/07 11:19
>>81 何があったかわかんないからなんじゃないの?
例えば78はinput.datがなかった場合でも「ディスクに障害が...」だもの。
ファイル名をソースに直書きなのも今一つ。10てん。
# クイックハックなら別だが...
84 :
VB-Slime :02/10/07 13:16
If year = 2000 Or year = 2004 Or year = 2008 Or year == 2010 Then LeapFlg = TRUE Endif ・・・・・2000年は閏年じゃなかったと思ったけどな・・・・(そういう問題ではない)
>>82 これがおかしいと思わない俺の頭が問題なのはともかくとして理由は?
職場によってエラーの書き方はまちまちだけど、
これはローカルルールとしては問題ないと思うんだが。
ファイル名がソースに直書きなことを言いたかった訳じゃないみたいだし
>>84 2000年は400年に一度の閏年だ、よって問題ない(w
87 :
仕様書無しさん :02/10/07 13:24
88 :
仕様書無しさん :02/10/07 13:26
あれ?2010年って閏年なの?(藁)
90 :
VB-Slime :02/10/07 13:39
そう、そういう問題じゃないんだよぉぅ>86 >89 >85 エラーの書き方が、じゃなくて、ファイルオープンエラー=ディスクエラーと してしまっている考え方がアレなんだと思うけど。
>>90 じゃあ「ファイルに障害が発生しました。」ならばいいってこと?
「ファイルが開けませんでした」でいいんじゃないの。
93 :
仕様書無しさん :02/10/07 14:13
「不正な処理を行ったので強制終了しました。これは仕様です。」 魔法の言葉で万事解決
95 :
仕様書無しさん :02/10/07 14:27
>>78-80 これを書いたヤツ以外で何が悪いのか明確に回答出来るの実は居ないんじゃないのか?
96 :
仕様書無しさん :02/10/07 14:33
97 :
仕様書無しさん :02/10/07 14:44
>>95 >これを書いたヤツ以外で何が悪いのか明確に回答出来るの実は居ないんじゃないのか?
ヴァカですか?
的外れなメッセージ表示させてるんじゃねぇヴォケがっ!!! てことじゃないの?
99 :
VB-Slime :02/10/07 14:46
う〜ん。 業務内容によると思うけど、"r"で開いたらエラーだったってことは (1)存在するはずのファイルが存在しない (2)ファイルがあるけど開けない(物理的にクラッシュ?) のどっちか、に大別されると思うんだな。 >78-80はすべてを(2)の場合にしてしまっているから問題視されてると 思うわけで。 (1)の場合だったら、その前のステップで生成されるべきファイルを 生成していない、すなわちバグって可能性もあり得るでしょ。 ・・・・・ごめん。なんか自分でもうまく書けないや⊂⌒~⊃。Д。)⊃
>>99 (3)ファイルは存在するが、読みとり権限が無いため開けない
(4)内部バッファを確保する領域がない
(5)OS上で一度にopenできるファイル数を超えてファイルをopenしようとした
で、
>>99 はどんなエラーメッセージが適切だと思うの?
>>100 (6)占有ロックされてて開けない
というのもOSによってはあるな。
物分かりの悪くてすまないがやっぱりわからん。 エラーメッセージなんてローカルルールでこう書けと決まっている場合があるから 多少的外れでも気にしない。 どうせオペレータには原因がわかったところでどうしようもないし、 こっちがエラーメッセージだけでエラーを判断するわけにもいかないしね。 大体エラーメッセージにはわざと詳細を書かないようにすることもある。 下手に「○○ファイルが存在したため、ファイルの更新ができませんでした」とか書くと、 消していいかの確認も取らずにご丁寧に○○ファイルを消してくれる人もいるし。
103 :
仕様書無しさん :02/10/07 15:35
おっとご指名が。 >100 偉そうな高説を垂れておいて恐縮ですが、自分がやってる業務の場合だと メッセージすら出さない場合がほとんどですた。 ファイルがない ↓ 初期値で作る ↓ 処理続行(ユーザーにはエラーを知らせない) になっちゃうから。勿論、デバッグ用のログにはerrnoの内容を吐き出しますけどね。 そゆ意味では>81さんの困惑も解らないではないです。 話題を引っ張ってスマソ
>>81 「エラーメッセージに詳細を書かない」というのと
「あいまいなエラーメッセージ」を出すというのは天と地ほどの違いがあるぞ。
前者は問題が少ないけど、後者は問題ありまくりだろ。
でもって今回の問題は後者だったって訳だ。
あぁ、何が言いたいのかやっとわかったよ。>105ありがとう でもこれって単純にコピぺ後の修正ミスなだけじゃん。 こんなので辞めたくなるなら俺何回辞めてるだろう ウチではエラーメッセージに関数名入れるんだが10%はあてにならんし(w
>>102 詳細を書かないようにすることもあるだろうけど、ウソのメッセージはよくないでしょ。
>>78 の場合なら"致命的なエラーが発生しました\n"あたりでいいんじゃないの?
プログラムの内容や使われ方にによっても違ってくると思うけど
>"リードエラー:ディスクに障害が発生しました。\n"
と、表示するのが適切な状況が思いつかない。
うちの会社の場合は関数番号と関数内通番をログに書きこんで終了だな。
>>107 そうだよな、知らない奴が見たらビビって HDD を交換してしまうかも
しれない。
漏れなら「ファイル `%s' がオープンできませんでした」とするかな。
何の役にも立たんけど。
>>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;
むしろ、 return ((unsigned)d < 0x10 ) ? "0123456789ABCDEF"[d] : -1; の方が。
>>114 は読み易いので却下、112のように読みにくく理解しにくい
コードを書くのがすばらしい。
7行スレのノリで短縮。 return"123456789:BCDEFG"[d<16?d%16:16]-1; まぁ、実際の仕事で使ったらまずいけどなー。
ズル休みかよ!
>116 112のコードと動作が違うと思うが。
>>118 いや、"123456789:BCDEFG"[16]は'\0'が入っているので-1を返す。
だが、'9'のあとには':'があることを前提としたコードだな
>119 そこではない。 d < 0 の 場 合 は ど う な る の さ。
>>78 >>108 の
>そうだよな、知らない奴が見たらビビって HDD を交換してしまうかも
これ見て、やっとわかりまつた。(w
あー、よかった。職業プログラマにならなくて。
>>120 d がもともとunsignedで定義されていることを祈るか,unsignedにキャストすれば済む
ことでは。ところで
>>112 と
>>114 ってそんなに読みやすさに違いあります?
そんなソースねーだろ、ネタばっかしだな! と思ってたけど、ここ数日のログを見ていると現実なんだなあと認識を改めますた
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
渇いたのどには、牛乳は健康に悪いそうです。
VBだと思うけど、こんなに面倒なことしなきゃいけないの?
128 :
仕様書無しさん :02/10/08 17:45
>>124 もしかして、この関数は、どんな値でもTrueを返す関数?
俺はVB使ってないからわからないけど、 TextBoxって値が書き込まれていなかったらnullか""が入ってるってこと? ようするに、どっちかの可能性があるんだよね? それとも、インスタンスがないって可能性があるってこと? わざわざこんな関数つくる必要があるのかなと、 そこが面倒くさそう。
>>126 VBは確か短絡評価はしない為、orを使う方が駄目コード
しかし、
>>124 のコードは値に対してIsNullを使い、
オブジェクトに対して""との比較をしている
>>126はVBじゃないよ
>>130 やっとわかった。ありがとう。
ということは、これはタダの間違いってこと?
コンパイル?時にエラー(VBではなんと言うのだろう)ださんのかな?
オブジェクト名を書いたときってデフォルトでプロパティーというかフィールドというか
なんかが、参照されたりするわけじゃないの?
>>102 まさかおまえ errno を知らないなんて言わないよな?
>>131 これVBじゃないの?なんなの?
BEGINとか見たら一発で何の言語かわかるけど・・・。
SPLとかしらんよな・・・。
>>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。だからこの場合は問題ない。
>>135 False返す?
値を設定して返さなかったらFalseなの?
VBって恐ろしいなぁ。
137 :
仕様書無しさん :02/10/08 18:13
>>130 オブジェクトと比較してるんじゃなくて、デフォルトプロパティ(.value)の
値と比較してるんでしょ。
で、結局124は何を言いたかったんだろう。 コードだけ書いてもわからん。
>>136 なにが恐ろしいの? ちゃんと仕様通りの動きだけど。
つーか元発言者ももうちょっと何か書き込めよって感じだな。
>>139 VBの仕様ではそのとおりなんだろうねぇ。他の言語でもあるけど。
いや、できれば明示的に失敗したことを返すコードを書けばいいのに
と思うわけですよ。
たぶん1行だろうし。
#こういうこというと、「下らんコーディング規則作りやがって」とかいわれるんだろうなぁ。
それぞれの言語で書き方が違っていいとおもう。 デフォルトでfalseならそれでよし
>>143 明示的に失敗したコードって何よ?
関数の名前(ちょっと気に入らないが)から推測できる動作としてTrue/Falseを返すだけでいいだろ。
""であるかNullであるかを区別するコードを返すかどうかは仕様によることだし。
× 明示的に失敗したコードって何よ? ○ 明示的に失敗したことを返すコードって何よ?
return FALSE とかじゃないの?
VBだと 関数名=返り血 なのかな
>>148 そう。気持ち悪いんだけどね。まぁ、そういう言語ということで。
ちなみにVB.NETではreturnになった。
ああ、別にVBを馬鹿にしてるわけじゃないよ。
単純にデフォルトでこうなるっていう仕様を知ってる人のみに通用する書き方と、
ちょっとした手伝いでもわかるようにするかき方があると思うのですよ。
>>124 のソースの最後に
mFuncCheckNullTextbox = False
とかいてあったらわかりやすいのに。といいたかったんですよ。
VBではこういう書き方はしないほうがよいことでもあるわけ?
ここでも問題になってるデフォルトのプロパティーとかも、
ちゃんとかいてればもっとわかりやすいじゃないですか。
省略しても問題ない環境と、そうでない環境の差だろうと思ってますが。
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
>>153 ,154
Nullと""違いはいいの? (
>>135 参照 )
それともそういうコードなの?
>>151 >>152 俺も明示的に0で初期化するけどね。わかりやすいコードを書く人は大抵やってると思う。
でもやらないからといって間違いでもない。それだけのことだね。
C言語でstatic変数を明示的に初期化するかしないかと同じような話だね。
>>155 文字列とNullとの結合ではNullが空文字に型変換(キャスト)される。
ただ
>>154 はあまりやりたくないね。理由はわかりにくいから。
よくわかってない人にとっては空文字足してもなんもかわらんじゃんと思うだろうし。
俺は実際にやらないけど
>>154 をさらに突き進めるとこうなったり。
mFuncCheckNullTextbox = Not Len(objTextbox.Value & "")
num = (rand( ) / (RAND_MAX / 5) );
>>156 いやいや、そういうことではなくて、
>>135 によると、nullと""(空文字)は別物ということらしいけど、
そのコードでnullと""どちらも判定できるの?
VBのこと知らんからホントにわからない。
>>157 そうなんですよ。誰も間違ってるとは言ってないのに、
なぜか突っかかってくるんですよ。
見た目すっきりと、見易さって違うと思うんですけどね。
>>158 わかりました。
&は文字結合なんですね・・・・。それすらもわからんかったのです。
で、結局124は・・・ってもうどうでもいいか。
つぎは>>160について語ってくれ!
RAND_MAXってなんだ? そもそも何をするコードなんだ?
乱数を導き出してるのはわかるが、 こんなコード会社で必要なのか?
ていうか、そもそもテキストボックス型の引数を受け取る 必然性が見えないというのはネタにマジレスなんだろうか。
>>168 それだ!
で、番号があとのほうの奴にはあたらないように/5ということかな?
たしかに、
>>124 の関数の存在意義すらわからんね。
DB上でもNULLと""は別物だと思った
TextBoxってTextプロパティじゃないの? ネタ?
あと関数化するなら、 objTextBoxがNothingかどうかのチェックも入れたほうがいいね。
>>160 これは「ハイレベルすぎて辞めようと思った」例か?
man rand に書いてあるくらい普通のコードだが。
>>160 「5」 がハードコードされてるのが気に入らないのか。
>>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言語の方がよっぽど恐いと思うぞ。
>>180 まぁ、そうかもしれん。
が、設定する癖は身につくから。普通はやらない。
VBから入った人間が他の言語で失敗する原因でもあるな。
Macの良さに気づかないやつの方が身障だな
>>374 の掲示板で頑張ってWinは良いって主張してる
やついるけど、色々書いては、ことごとく潰されてるな
見苦しいね
183 :
仕様書無しさん :02/10/09 12:56
++i++
>183 ・・・・・・マジ?
>>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。だからこの場合は問題ない。
問題ないといえばないですが、可読性の観点で望ましくないでしょう。
状況によっては、コントロールの参照なのか、プロパティの参照なのか
わかりにくくなる場合もあります。
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 ってのがあったとき。 ああ、辞めたさ。
>>188 そんなもので会社を辞めてたらきりがないぞ
# $deta, $dat, $dataが混在するソースを保守してる者より
huragu は実際に見たときには目の前暗くなった(w あと、一文字変数はもう見ただけで (,,#ノ゚д゚)ノ ≡≡≡≡≡≡≡≡≡≡≡≡ ┻━┻
SQLClass っていうクラス名もイヤだった
>>190 ループカウンタは、i、j、k、l、m、n・・・ですが何か?
ループカウンタって、どうして「i」から始めるんだろうね?
>>112 return (d >= 0 && d <= 0xF) ? d["0123456789ABCDEF"] : -1;
>>152 安全側に倒すのは悪いことではないし、そう書くのは自由。
ただし重いループの処理を書く場合は、False とわかっている変数に
False を代入するような事をやるべきではない。
何故か、戻り値設定のコスト、VB の 1 ステートメントの重さを全く
考えない人が多い。
>>183 それコンパイル通らない。
>>186 > 問題ないといえばないですが、可読性の観点で望ましくないでしょう。
> 状況によっては、コントロールの参照なのか、プロパティの参照なのか
> わかりにくくなる場合もあります。
既定のプロパティは指定しても省略しても実行速度に差はないので、
書くのが面倒でなければプロパティ名は書いた方が良い。
しかし、コントロール名だけしか記述しなくても、空文字列 "" と比較
すればオブジェクトの既定のプロパティを使用して文字列値に変革される
事はVB の厳格な仕様。
カスタムコントロールを使用していて、既定のプロパティがどれだか
すぐに判断つかないような問題はあるかも知れないが、少なくとも
「コントロールとプロパティのどちらを参照するのか」 という疑問は
発生し得ないし、そういう所でつまづくような人は VB を知らないと
断言できるので、(それが臨時雇いとしても) 触らせてはいけない。
>>193 i は iterator (反復子) の頭文字。
>193 FORTRANでは変数I〜Nが型を指定しない場合は整数型 (他は実数型(だっけ?))として扱われる。 それで、その時代にループカウンタとしてI〜Nがよく使われたらしい。 で、Cでi〜を使うのもその名残。
>>194 1ステートメントのコストが問題になるような
VBの重いループってなにがあるの?
>>194 代入のコストまで気にする人は当然プロシージャコールのオーバーヘッドも(略
1ステートメントのコストどころか、ループの中でSELECTのSQL投げまくるヴァカも多数存在するし。
>>195 それ逆。ループにIとかJがよく使われるから、I〜Nが整数型になった。
i,jの元は計算機科学じゃなくて数学だろうな。行列の成分表示A=(a ij)とか。
数学の方でなんで i なのかっつうたら、iterator だからだろうけど。
200 :
仕様書無しさん :02/10/09 16:53
>>198 プロジェクト管理者か上司から指摘されない限り、一生そのまま
(DQNの自覚症状なし)だと思う。
# 指摘されたからって、賢くなるとは限らないが。
>>196-197 すまそ、突っ込まれて冷えた。
確かに今の PC だと、通常は気にする必要ないな。
VB2 + 486 のレベルで考えてた。
でもいずれにせよ、124 のようの場合で False の代入が無いから
といって、読むのに困ることがあるか?
困らない気がする。
「気持ち悪い」という理由だけで戻り値のセットをしているのは
逆に気持ち悪い気がするが・・・これは宗教戦争になるのか?
Dim i, i, j As Integer
Dim i, j, k As Integer
>>201 多分終わりのない戦争になるだろうな・・・
いろんな言語・環境を行ったりきたりするならあった方が安心するし
どうしても無駄な記述に思えるならコメントで書いていてもいいんじゃないかと思ったりする。
特にパフォーマンスや規約などに問題がない限り安全方向にふるのが今のオレのスタイル。
>>200 プロジェクト管理者や上司が指摘してくれるような事があるのか?
>>203 それ、kしかIntegerにならない。
C屋がよく陥る罠だ。
209 :
仕様書無しさん :02/10/09 18:15
>>206 DQNとわかっていても、簡単に切れない状況なら、「指導」するのでは?
>199 そうだったのか。指摘サンクス。
>>194 >>195 iで始まるのって"Integer"のことだと思ってた。
でも数学の方は"Integer"の気がするんだけど。
>>203 なまじ、コーダーの期待通りに動くから始末が悪いな。
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 ); いいけどさ・・・。
[SysInit.c] ~~~ @Echo Off If Exist C:\SetEnv\SysInit.Flg Goto End Call C:\SetEnv\SetEnv.bat SysInit :End 「ソースコード」のうちに入る・・・かな? このファイルはどう使われたのだろう・・・。
あ、ズレ太。 強調したかったのは、ファイル名の拡張子。
/* 16進定数 */ #define A 10 #define B 11 #define C 12 #define D 13 #define E 14 #define F 15 うああああ。
#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();
>>217 ネタですか?
それとも、暗号の一種??
えーっと、この場合oo4oは・・・
221 :
仕様書無しさん :02/10/10 12:22
ヘッダーファイルを知らんのか?と言いたくなるソースと現在格闘中。 共通する変数や関数はすべてソース(*.c)の頭で宣言。外部宣言だけで 1000行超・・・・extern宣言なんて言うにゃ及ぶ・・・・ ファイルをまたいで汎用的に使いまくる変数や関数なら、ヘッダに まとめてincludeすりゃいいのに・・・・何考えてんだーヽ(`Д´)ノ
224 :
仕様書無しさん :02/10/10 14:26
>>222 ヘッダー厨も困るとおもいまつ。
自分のソース一本コンパイルするときに
なぜかプロジェクト全体がターゲットに・・・
コーヒー休憩取れちゃうよ(泣)
>>224 いわゆるひとつの makeドラマですな w
>224 あ、それもちゃぶ台投げたくなるなー。
227 :
〜(゜、。)〜 :02/10/10 15:40
using System; class sample { static void Main() { Console.WriteLine("Hallo, Warld"); } }
>>227 > Hallo, Warld
何語だろう・・・?
strncpy()の代わりにmemcpy()使うのって普通でしか?
>>211 私はindexだと思ってました。当時iteratorなんて知らなかったし。
以前うちの会社は 「革新的な開発方法論につき納期半分コスト半分保守費用半分で出来る」 ・・・とか言ってた。 単に役員がデムパなだけなんだが、どうしてくれよう。
誤爆スマソ
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より大きいのさ……
>233 カ(テジ)ナさん?
>>228 Halloの方はドイツ語だたりする(同じ意味)。
>>234 つーか、その関数になんの意味が・・・?
>>234 2.2360679って5の平方根だよね。
つー事は2の時は5の平方根を返すってことだから、えーと、えーと
ナニニツカッテルンダロ?コノカンスウ
>>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」なんだよ。
>>239 別に rand() 使わなくても、sqrt(2) より fast_sqrt(2) の方が
遅いことがわかった。( ゚Д゚)ポカーン
>>240 いや、最適化しなければfast_sqrt(2)の方が速いと思われ
239のコードを.cとしてコンパイル。(cout関連はprintfに書き換え。) sqrt() = 370, fast_sqrt() = 361 P2 266MHz Win2000 VC6++Sp5 (cl -O2 -Ob2)
>>241 最適化なし (Debug デフォルト) で、
sqrt(2) = 1005, fast_sqrt(2) = 1112 だったが。
>>242 アセンブリリストを見ればわかるが、≫242 のコードは最適化すると
sqrt() や fast_sqrt() を呼んでくれない。
どっちも単なる rand() の呼び出しだけになるので等価。
実行結果のチックがずれてるのはバックグラウンドジョブのせい。
ちなみに最適化すると、sqrt() は関数呼び出しではなく fsqrt 命令に
インラインでアセンブルされるので速い。
fast_sqrt() も最適化オプションによってインライン展開されるが、
コードサイズがでかくなるし、そもそも switch が比較命令と分岐命令に
置き換わるので遅い。
>>243 >最適化なし (Debug デフォルト) で、
>sqrt(2) = 1005, fast_sqrt(2) = 1112 だったが。
デバグ情報取っても同じ?エディットコンティニューとか
自分でやってみるか.. 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)
>>245 なるほど確かにそうなる。
漏れもまだまだ修行が足りない。
しかし、余程怪しげな事してない限り、リリースビルドで最適化無効
ってあるか??
最適化無効も無いわけじゃないが、 fast_sqrt()が十分痛いことには変わりなく
普通テーブルにするしな(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が、全てコメントアウトされているソース。 見にくいから、コメントアウトして色変えてるんだってさ。
assertなんていらないと思う
>251 ワラタ
255 Get !?
256 :
仕様書無しさん :02/10/12 05:36
0x100げとずさ
さるプロジェクトでは、assertをエラーチェック関数だと思っている方々が assert(fp=fopen(hogehoge,"r")) なんてのを多用するため、 リリースバージョンでもDEBUG付きでコンパイルする取り決めになっておりました。
>257 カコイイ!!
>257 アタマワルイ!!
260 :
仕様書無しさん :02/10/12 17:29
独学ですがC/C++/Javaとやってきて 就職した会社で最初に携わった仕事がCOBOLだった。 採用条件ではC++またはJavaと聞いていたので その点を問いただしたところ 「人手がなくて困っているから申し訳ないがお願いしたい。 これからはオープン系システムへシフトしていくからずっとってわけじゃない。」 と言われ3年経過。。。 最近になってようやくJavaの仕事にありつけたと思ったら クラス名、メソッド名が管理コード+通し番号だった。 COBOLERがJavaに焼き直したものだった。 はっきり言って萎えた。俺の3年はなんだったんだ。。。
>>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) {
……
っていうか、これでは仕事にならないのでは?
//俺の仕事。俺の作品。盗むなよ。
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やっている会社ってこうなんですかねー?
>>そんな感じに近い。 まじっすか? なーんてね。COBOLerの仕様書を前、見たことがあったけど、 構造化した箱毎に通し番号がついてたから、あれを忠実にメソッド名にしてんだろうな。 とりあえず、移植の部分は、ある意味しょうがないからガンガレ。 新規案件/追加のところから、OOしてくしかないだろ? そのためには、新規の案件 拾わなきゃならないし、既存の部分をちゃんと作ってJavaでの納入実績を上げるしか ないじゃん。
>>261 なんか国家機密の暗号みたいだ・・・。
機密関係のプログラムって変数で内容を悟られてはいけないってことで
こんな風に書くとかってあるのかなぁ。
>>266 企業情報が盗まれないようにソース読みにくくするための基本だよ。
関数や変数の名前をすべてIとlと1の16文字くらいの名前にしたり。
もっともそのまま開発するわけないけどね。
268 :
仕様書無しさん :02/10/13 02:45
俺はそういうソースを「血が通ってない」と呼ぶ。 保守性を品質の尺度にしていれば、そんなソースは納品できないはずだが。
血の通ってるシステム作りたいね〜 銀行開発なんてもう…
IBMがらみだとそうなりますな。 向こうがコボラーかどうかは知らないんですが 少なくともソースそのものは書けそうもない。
package sarina; package alice; package yuuka; package runa; 何のためにこうなってるんだか知らないんですけど 「アリスパッケージのxxxxってクラスの〜」とか聞くの めっちゃ恥ずかしい・・・うぅ、勘弁してほすぃ
272 :
仕様書無しさん :02/10/13 03:30
runa?
VBでLabel1,Label2,Label3.......Label523とかいうのが延々と設定されているのはたまにあるよな ラベルだからいいだろ、と思うのは早とちり。 Text1,Text2,Text3...Text82なんて当然!の会社も多い
>>273 VB .NETでは、コントロール配列が無くなって
そんな感じのソースが増えそうな悪寒
「コントロールの配列」型のフィールドを作って、それにコントロールへの参照を並べておけば、配列のように(ってか配列で)アクセスできますよ。 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使って、ビルド専用のソースを作ればいいじゃん。
開発中からんなことやると、後々メンテできなくて地獄を見るんだよ。
メンテ用ソースは、金庫にでも入れときゃいい。
>>278 開発途中のソースが流出したらどうする?
開発できなかったらどうする?
>>278 開発者が死んだり逃亡したりして、残された人に責任移ったらどうする?
ネタをネタと(以下略
>>279 ソースが流出するような管理をしている企業に、
流出しては困るような案件がくることは無いから安心しる。
>>281 そのために、メンテしやすいソースとドキュメントを残せ。
と、マデ゙レスしてみるペスト
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
>>284 ちゃんとおかしいと思う所を明記しろよ。
どっちにしろFalseが返る? &エラー処理無し? 'コネクションが開いていたり接続中だった?
暇
<A HREF="どーやって
>>30 みたいにハイパーリンク張るの?">
どーやって>>?ってハイパーリンク張るの?
</A>
>>288 >>30 のどこにもハイパーリンクは無いだろ。
30 :仕様書無しさん :02/10/02 20:21
自分の作ったソースをみて辞めたくなった事があるな
つか、
>>284 みたいなVB特有っぽい話されても
さっぱりわけわからんのは俺だけか?
はーい、おいらも分かりませーん。
えーっと。DB関係はよーわからんが、つまり、DB名の指定がアレだってこと?
追記。 >284さん教えてけれ、上二つで宣言した関数は使用してるの? 外部変数で Private m_cnn As New ADODB.Connection と宣言しているにもかかわらず、Initialize関数で Set m_cnn = New ADODB.Connection と重複しているのがアレなの? あぁぁぁADOは苦手じゃ。
わざわざアホでも分かるコメントがアレって事?
あぁ、あれか。 /* a を b に代入 */ b = a; とかいうコメントか。見りゃ分かるっちゅーねん。
>>293 ほう、つまり
>>284 は
void main( int argc, char *argv[] )
{
int a = 0;
int b;
/*各種初期化*/
a = 0;
b = 0;
/*引数の判定*/
・
・
・
}
という関数を見たら会社を辞めたくなるのか。
そんなやつ、こっちから願い下げだな。
>292 うちの会社はDB名は内容の如何に関わらず 「ナッパ」や「ベジータ」などの名前を適用します。
298 :
仕様書無しさん :02/10/13 20:28
299 :
仕様書無しさん :02/10/13 20:53
>>295 たしかに、ふつうの人には「見ればわかる」んだけど、だいぶ以前、
「小熊ちゃん」スレで、「比較演算子と代入演算子の区別がつかない
DQNには有効なコメント」って指摘があったような気がする。(^^;
/* 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; /*引数の判定*/ ・ ・ ・ てなかんじではないかと。
>>1 >COBOLライクなソースコード。(゚д゚)マズー
今現在COBOLで開発をやらされているんだけど、COBOLのソースは書いちゃダメ?
仕事なら仕方がないな。 ただ、COBOLしか知らないくせに自分は優れたPGだと思っている奴や、 COBOLの書式は世界で最も素晴らしいものだと思っているような上司や先輩がいれば、 鼻で笑ってやれ
>>304 COBOLそのものじゃなくてCOBOL的なスタイルを他の環境へ引きずって逝くのが
問題だと思われ。
いや、COBOLERから見た、この会社辞めようと思ったソースコードというのも 知りたいぞ
確かに貴重な声かも。
まず、変数名に通し番号が振られていないソースだろー。 あと最近流行りのOOなんて論外だねー(以下省略
>307 それは多分、漏れらの逆だろ(w
>>309 小文字が使われているソースが先頭だとおもふ
COBOLの中にSQLが埋まっているのは気持ち悪いです。
>>307 >いや、COBOLERから見た、この会社辞めようと思ったソースコード
こーゆーやつじゃないの??
for(map<string, map<string, string>>::iterator itrMap = RegMap.begin(); itrMap != RegMap.end(); itrMap++)
{
...
}
>314 ハゲドウ
>>314 ・・・すげぇ、本当に何がなんだか分かんねぇや。
実はコボルってかなり能力高くないと出来ないんじゃない?
真面目に組んだら教科書通りの構造化プログラミングを具現化することに なるからなあ。 他の言語のようなウルトラCも出来ないかわり、訳解らんバグも出にくい。 それがCOBOL。
>>318 314のようなコードはウルトラCとは言わんのか
あんなコードでバグが出たらデバッグするより会社辞めるゾ
漏れもCOBOLやるがあんな酷いコードは氏んでも書かない
COBOLerから見た「辞めようと思った」は
「能力的についていけないから」「周りCOBOL知らなくて仲間いないから」
の場合だけかと思ってた。
>>314
>303 うちの会社は戻り値longですが、何か?
>>314 読んだけど、命令なんて数個しか使ってないじゃん。
どこがどうわからないんだろう?
最初のデータ部に惑わされてんじゃないの?
>>322 つうかその長いデータ部がわからんってことだろ
>>314 COBOLerすげぇ・・・
ある意味ここまでがんばれるなら
その集中力で他の言語さくっと覚えられると思うんだが。
>>323 ほえ?
データ部なんて判る必要がどこにあるの?
>>325 あんた、ただのコーダーで、プログラマですらないだろ。
>>314 COBOL全然知らないんだけど、なんとなくBasicとアセンブラが思い浮かんだ。
>>314 あんまりこのページを叩くつもりはないんだが…
>4.変数・宣言・代入・構造体・配列 など全く聞いた事無くても OK
> (そんな理屈っぽい事は関係ないんです。)
これだけはちょっとどうかと思った。
理屈とかそういうんじゃなくて、たとえば配列とか構造体は
ある一塊のデータ群をまとめて扱えたら便利だよね、というところから
きているのであって、理屈のためにあるオモチャじゃないんだが。
全てのCOBOLerがこういう風に考えているわけじゃないんだろうが、
なんかものすごく努力してるように思えるなあ。
構造体を使わない(知らなくてもいい)ってのは本来一塊のデータであるものを、
ひとつひとつばらばらに、それぞれケアしてやるってことだろ。努力だよな。
努力するやつはプログラマには向かないんだよ。
手抜きを必死に考えるやつじゃないとプログラマとして失格だとさえ思う。
そのための手段として構造体があったり配列があったりするんだがな。
>>322 > 命令なんて数個しか使ってないじゃん。
> どこがどうわからないんだろう?
一体誰が、コードの挙動がわからないって書いた?
COBOL のインストラクションは誰もが認める通り易しいから、そんな事では
迷ったりしない。
いやむしろ、少ないインストラクションの種類でいろいろできてしまうところに
大きな弊害がある。
> 最初のデータ部に惑わされてんじゃないの?
DATA DIVISION が痛いのは確かだが、それだけじゃない。
くだんのソース、COBOLer ソースとして高齢なので、突っ込みどころを考えよう。
・ 変数名などが、その保存内容を的確に表していない。 ・ WT-60DAT 〜 WT-160DAT が、数字が羅列されているのはわかるが、つまり 何を表すのかサパーリわからない。 呼び出し元の HTML 見て何とか、おそらく宅急便の送料を定義しているのだ ろうと見当をつける事はできるが、断定はできないし、もしそうだとしても どの数字が何の値段なのかサパーリわからない。 料金に改定があった時どう修正するんだ? っていうか、これだけの規模のテーブルだったら普通、速度やセキュリティ や負荷等の問題が無い限り外部データファイルか DB にする。 (DB にしたら、このソースのほとんどは SQL で済むし) ・ PROCEDURE DIVISION にいきなり処理が記述してあって、コードを全部読んで 完全に理解しない限り何をやっているのか判断できない(まともなソースなら そんな事する必要は無い)。 普通はラベルを貼るし、そうでなくてもせめてコメントを振る。 そういえばこのソース、あるべきコメントがほとんど無い。 ・ どこにも定義も説明もされていないサブルーチン "SUBX" が、いきなり使われ ている。 「TinyCOBOL」 とやらに付いてるの? まあ、数字を表す文字列を解釈して数値に変換しているんだろうとは、何と なくは見当つけられる(にしても、そのサブルーチン名は何だ?)。 そう断定できないのは相変わらず。
・ 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 仕込んだりしてるし。
・ どこの処理にも使っていない SW-ERR に、一所懸命フラグを立てている。 読み手を惑わすのもいい加減にしろ。 ・ 「ゆうパック」 の処理は? 「定型外郵便」 はどこに消えた? ・ 呼び出し元の HTML も出力側の HTML も、!DOCTYPE が無い。 エレメントの属性値も、呼び出し元は " でくくってるのに出力側はそうして おらず一貫性が無い。 表示できればそれでいいのか? ・ cgi-lib.pl の ReadParse を使っているくせに、「COBOLでのCGI プログラミングが出来ました」 とはよく言ったものだ。 っていうか全部 perl でやりなさい、その方がずっと楽だから。 ・・・しかし、書いたからにはある程度 perl わかるはずなんだけど、 なのに敢えて COBOL で書くというのはつまり・・・。 ・・・えーっと、COBOLer の定義は・・・。 ・・・。 この人とは仕事したくないな。 漏れも修行中だからまだ甘いかもしれないが、それでもこれぐらい並べられる。 そしてこういう事は、プログラマなら把握しなければいけない(わからなくて いいのは 326 の通りただのコーダーだ)。
>>325 > ほえ?
> データ部なんて判る必要がどこにあるの?
あなたは上に書いたような事を踏まえて言ったか?
まさか、そういうのは SE の仕事だァ、なんて言わないよな?
そもそもこのソースは CGI だが、もしこれを一人で管理するような場合でも、
データ部なんて判る必要はないと言い切るか?
それともし 325=322 なら、「どこがどうわからないんだろう?」 と言った上で
「データ部なんて判る必要がどこにあるの?」 と言い放った事になるが、矛盾して
ないか?
314 は、まだ 500 行程度で収まっているからかわいい。
これが 1 万行だ 2 万行だ来た日には・・・辞めたくもなるわな、本当に辞める
かどうかは別にして。
まともなプログラマなら、言語が COBOL でも綺麗なソースを書く。
COBOLer は、言語が COBOL でも汚いソースを書く。
書いた本人は、それのどこに問題があるか理解できないから始末に負えない。
314 のようなソースを書いておきながら、「どこがどうわからないんだろう?」
とか言うかも知れないな。
そして COBOLer は COBOL のみならず、他言語でもその 「信念」 を貫く。
困ったものだ。
そう、漏れから席 5 つ離れているあなた、あなただよ。
・・・あれ、スレ違い?
>>328 > あんまりこのページを叩くつもりはないんだが…
叩いてもいいと思うぞ。
あなたが突っ込んでいる通り、問題があるのは確かなんだから。
それが個人の日記サイトとかならともかく、314 は技術系サイトだろう?
3 2 9 必 死 だ な (藁
329の説明は分かりやすかった。 それにしても、普段よっぽどひどいめに あわされてるんだな(w
まー少なくとも
>>329 が COBOLer ではないこと、そして COBOLer に
(かなり)酷い目に合わされたコトだけは確かだな(藁。俺も経験あるから同情するよ。
www.coboler.com を叩くスレでも立てるか?w
>>329 325 です。いや、ご苦労様。
私は「あのソース読めないの?」と言ってるダケなんだが。
「判らん」と言っている人が読めた上で、中身が許せないと
言っているんなら別に良いです。
サンプルソースに一々突っ込む気も無いし、別にあのサンプル
に従わないといけないいわれも無いし。
コボラー ドット コムはCOBOL のプロ集団を目指します。 恐怖
>>339 ああ、そういう事を言いたかったのか。
しかし、「ソースを読む」 ってのは 「ソースを理解する」 ことではないんか?
「ソースを追う」 だけだったら、余程の DQN でない限り COBOLer でもできる。
この板に来ている人で、314 のソースを追えない人はヤヴァイぞ。
COBOL 知らない人ならハンデあるが、でも大体の予想はできるだろう。
プログラムがどう動いているのかはわかる。
でも、なんでそう動かしているのかはサパーリわからん。
と、314 からのみんなはそう言いたいのではないか?
あと、
> 別にあのサンプルに従わないといけないいわれも無いし。
まさしくおっしゃる通りだが、厳格に従っているのではないかと疑いたくなる程に
腐ったソース、そしてそれを書く人が溢れているのは確かだ。
>>340 頼むから毒は撒き散らさないでくれと祈るしかない (((( ;゚Д゚))) ガクガクブルブル
342 :
仕様書無しさん :02/10/15 21:45
そのサイト、なんか宗教臭いなぁ。
345 :
名無しさん@Emacs :02/10/15 22:54
HTMLファイルの命名からして年季が入っているなぁ。 ネタだとしたかかなり芸が細かいぞ。
>>342 > coboler.comって明らかにネタだろ。
そーだったら嬉しい。
・・・って、
> 実はcoboler.comのボス
[email protected] > だったりして。
ヽ(`Д´)ノ ウワァァン
ところで root@jt4... って何?
342が泣かした
348 :
仕様書無しさん :02/10/15 23:23
>>348 ネタっぽいねー。
徹夜してかく汗は気持ちいいわけないし。
パソラーってなんだろ。
初めてCOBOLのコード見た。 絶対やりたくねぇ〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜!!!!!!!!!!!
>>348 ネタだとは思うけど、割と真実だよ。
バブル以前は、体育会系のコボラーが多かったし。
大量生産できて即戦力、使い捨てできるから溢れてた。
今、どーしてんのか知らんけど。
ネタだと思うだろ?>ALL しかし、掲示板なんか見てるとねたに見えない部分もある... ところでこのコードってtext editorで書くの?
353 :
仕様書無しさん :02/10/16 01:04
噂に聞くCOBOLとはこのようなモノだったのか・・・ おっそろしい・・・いやマジで。 IF文の羅列あたりでオレの脳のスタックは使い果たされた上に, 最初論理改ページ機能でもあるのかと思った。 どんなエディタで書いたんだろうって真剣になやんだ。 誰かが鼻血出るとか言ってたけど, ホンマに亀仙人級に鼻血出るな。
COBOLでWebアプリってのが、時代錯誤も甚だしくって、よさげ(w
COBOLが悪いわけじゃないけどね。 他言語をそれなりに経験している人のCOBOLソースは ワリとキレイで読みやすい。自信があれば、自分で書い てみればわかると思うけど。 ただ、DATA DIVISION の特殊なお約束や COBOLの種類に よる方言なんかが辛いとおもう。ってゆーか方言きつすぎ。
このすれが ぜんぶひらがなでかいてあったら よむきがしますか? こぼるとは、すべてひらがなでかくことによって「だれでもよめる、だれでもかける」と しゅちょうしているようなものです。 ちなみにもれはがくせいじだいにばいとでこぼるをやらされたことがあり、 よみかきはできました。そのときにじょうきのようなかんそうにおもいいたりました。
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 }
>>357 (・∀・)イイ!!
でも fast_htnls() は fast_htons() だよな?
あと、そんな立派なコードでは別に鬱にも会社辞めたくもならん。
fast_htnls()は16bitインストラクション
役に立つ秘蔵関数群を公開するならイマノウチ。 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 }
グッジョブ(´Д`)b
>>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;
でいいだろ。
・・・ああ、「この会社辞めようと思ったソースコード」 か?
Em Am 具体的明確な説明ができないという事は D7 あなた Em Am 本当に説明したい内容を理解していないんですよ。 B7 あなた Em Gmaj7 本当に頭の回転がわるいですね。 Em B7 あなた Em 自覚しろよ
>>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
>安易だが、CASEツールで自動生成するのではダメ? ドキュメント後付ってこと?
>>371 JavaDocは思いっきりドキュメント後付だが?
>>372 仕様書が後付になるのか、JavaDocのようなリファレンスが後付になるのかで、
意味が変わってくるな。
みんなよけろ。こぼらーだけはゆるせない
>>363 メール欄に釣りが入ってませんよ、と
忘れただけ?
>>346 digしてみるべし。あのサイトかなり色々面白いから。
下を見て辛さを紛らわすなんて…憐れ。
378 :
仕様書無しさん :02/10/16 23:16
上司「おい!まじかよぉー!桃井望焼死だってよ!」
桃井望って何?
>>369 所謂、手段の目的化の典型ですね。いったい何のためにドキュメントを
書くのかと小一時間(ry)。まーどっちにしろ見ないんだろうから同じか。
383 :
MACの勝ち :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; // ... }
>>383 何やってるかようわからんが、まずはインデントしる!
っていうか、i = N ? delta*2; ← 文法エラー。
で、何がいかんのだ?
>>384 馬鹿みたいなコメントの付け方してるからじゃねーの?
>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+%でスコープを確認するときとても苦痛なのです、 両方のスタイルを行き来しておられる先人諸氏はどのように対処して おられるのでしょうか?
>>387 変態的なインデントで無い限りは対処できるので問題ない。
どうしても我慢できないなら
>>388 だな。
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!?
ヌルヌルネコ
>>393 > 猫かYO!?
いいえ、じつはNULLを連結する関数です。
PussyCutNull...
ここにソース貼る場合は、インデントを全角スペースで置換してくれ。 ところでお前らお腹空きませんか?
>>398 コピペしたものをコンパイルするとき面倒だからやめてくれ。
もう晩飯食ったし。
_ -‐ ⊇ / / | | _ ,| |<::::::::ヽ从_____ | |,,,,,;;;;:::::::::,ヘ::::::::::::::::::::::::::::ヽ | | 彡''l/ ∨\l\:::::::::::::::::l / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | | /  ̄ ̄  ̄ ̄ ヽ;;::::::::::::| < お腹すいたー。 | ( _)::::::::::| \_________ | \⊂ニニ⊃ /:::::::::::|::::::| _ー:::\ / / ̄ ̄ ̄/ ̄/ ̄ ̄ ̄|::::::| ̄ ̄ (::::::::::::::/ l___/ / ̄ ̄ ̄:::|::::::| ̄ ̄ \:::::/ |::::::::::::::::::/|::::::| )/ |:::::::::::::::::/ |::::::|
>>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 ああ、その方が便利だな。思い付かなかった。
?
大変です。 一万行のメソッドが発見されました。 もう辞めたけど。
?
409 :
仕様書無しさん :02/10/18 12:03
>407 3000行を見たとき辞めたくなったことはあるけど、 上には上が居るもんだと一人納得
411 :
(^∀^) ウフ :02/10/18 13:38
'バッチグー goo = Right(CStr(Format(Date, "yyyy")), 1)
>>411 Cstrかけるなら、
Format$つかえと。
>>411 処理内容よりもバッチグーは何を意味してるんだ?
グーという関数はバッチ処理?
415 :
仕様書無しさん :02/10/18 14:44
ウソクセーナ (;一_一)
スミマセン マチガエマシタ。。。
>>412 Format$() だろうが CStr() だろうが、外側の Right() で結局 Variant に
戻されるという罠。
VB談義 さっぱりわからね〜ぞ( ´∀`)σ)Д`)
419 :
仕様書無しさん :02/10/18 16:14
( ´∀`)σ)Д`) ↑これ面白い顔文字だね
419をつついちゃうぞ、ウリウリ( ´∀`)σ)Д`) と使う顔文字ですな 何気にこのスレにちょっと合ってる予感
オマヘ ハ モウ シンデイル( ´∀`)σ)Д`) ハベシッ
>>417 最終的にはgooで(略
いつの間にかVBに染まっていく自分・・・辞めた方が幸せかな・・・?
VBネタですまんが、仕様書に「&h06」と指定したのだが何を思われたのか「&O6」ってコーディングされた。ゼロじゃなくてオーな。 しかしそれで動くVBもどうかと思うが・・・・・・・・
>>424 "&o" は8進数なのれす。動いて当然なのれす。
(・∀・) クビニシロ!!
427 :
仕様書無しさん :02/10/18 22:39
setter()? getter()? non non. うちは toriire〜(). toridashi〜(). です。
428 :
仕様書無しさん :02/10/18 22:44
>427 凄ぇ... 漏れなら規約作ったヤシにありがた〜い御説教だな。
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();
FormReadOnryという名のメソド。 作ったのは入社10年目のVB厨。
>>432 どんなことをするメソッドでもダメだと思うけどなぁ。
まあ、そのくらいで会社やめようとは思わないけど。
人のスペル間違いみて自分のスペル間違い直す! といいたいんだけど、中学レベルの英語くらい・・・って思わせるソースは無条件に鬱になりますなあ・・。
関数名や変数名のスペルチェックしてくれるlintキボーン。
>>436 ツールで関数名抜き出してから一覧をスペルチェック、でどうか。
public class kastamaa_innfoomeishon public class karento_konekushon public class konekushon_puuringu implements Runnable {〜
あと、英語で書いたコメントの文法チェックをしてくれて、 「あなたの英語力3点」とか採点してくれるlintキボーン。
漏れはプロキシクラスに対する実装クラスをC〜Imprと書いて 後から慌ててImplに直したことがある。……だめぽ?
>>411 VB厨です。未だに何が何だか分かりません。
最終的にInt型に格納するのが悪いのでしょうか。
>>Dim goo As Integer
>'バッチグー
>goo = Right(CStr(Format(Date, "yyyy")), 1)
>>440 クラスの先頭にCをつけるなんてだめだめですね
443 :
仕様書無しさん :02/10/20 09:48
クラスの先頭はTに決まってンじゃん。
444 :
仕様書無しさん :02/10/20 10:25
>>444 DELPHIじゃない?っていうか棒ランド?
入社後初めて渡されたソースのコメントに"DEGITAL"とあったときは冷えたな。
>>441 動けば (・∀・)イイ!! ってもんじゃないって事を
肝に命じておきなさ〜い
女性の敵ですよ
スペルミスは、たまに混ぜるといい。 ソースパクリの証拠としてその点を挙げることができる。
>>449 「ぎれピカチュウ」 かい。
ソースを原文のままパクる事があるのか?
ソースコードではないけど。 データベースに日付をYYMMDD形式のテキストで記録していたとき。 無駄な2000年問題に遭遇したのは言うまでもない。
453 :
莇忽戸解説 :02/10/21 10:09
磐井の乱と呼ばれるものの実態は、九州王朝(磐井に本拠を置く政権)が対唐戦で主力が百済に遠征しているとき、 応援で九州まで来ることの出来た近畿王朝軍は、突如反旗を上げ九州王朝に戦いを挑みました。 朝鮮半島南部にいた一部の九州王朝軍は、近畿しら王朝軍に反撃に出、近畿王朝の王を戦死にいたらしめましたが、 唐軍と近畿王朝軍の挟み撃ち状態に近畿王朝軍と休戦し、米倉ひとつの割譲しました。 水上戦に強い倭軍が水上戦に弱い唐軍に敗れたは、九州王朝の二面作戦による戦力低下と見なせます。 このように、九州王朝と近畿王朝の勢力が均衡したのは、7世紀中頃でした。 しかし、近畿政権が日本の覇者になれるには、西暦700年まで時間が必要でした。 この近畿王朝の勢力拡大は、過去より7世紀半島南部の倭人・百済の移民受け入れによる文化的発展の結果でした。 続く、次から本題万葉集。
データベース関連でもう一つ。 a = SELECT id FROM table; while (!a.EOF) { b = SELECT moge FROM table2 WHERE id=a.id; } こんな感じで、結合せずに、ループ内で毎回SQLを実行していた。
>>441 暗黙の型変換が行われている。
途中でVariant型を経由するため、
繰り返し呼ばれるとパフォーマンスが落ちる可能性が高い。
使用コマンドを変更すれば回避できる型変換を行っている。
457 :
仕様書無しさん :02/10/22 00:39
客からエラーが出たと電話がかかってきた。 「どんなエラーか読み上げてください」と聞いたら、「勇者は死んだ」と。 で、コード見たら: if(hoge) { ... } else if(fuga) { ... } else { /* ここには絶対にこない */ ::MessageBox(Handle, "勇者は死んだ。", "エラー", MB_OK | MB_ICONERROR); }
>>457 その言葉が受話器越しに聞こえてきた時のアフォさ加減・・・ワラタ
しかしある意味、「ここには絶対にこない」 が実装されてて助かった
とも言える。
おしまい?
漏れが更新してないだけでした。 吊ってきます。
そして番号も間違えてる罠
>>463 漏れも、その罠に一緒にハマってもよろしいですか?
467 :
仕様書無しさん :02/10/22 08:23
>467 敵の戦力を報告せよ
$w = eval( sprintf( "\$%s{'%s'}", $inftbl, $key)); ・・・ナゼ?
>>468 伝令!目下、Perl方面で苦戦中!援軍請う!
そして、全滅しました。
自軍の再編急げ!
敵の別戦力によって本陣が落ちました。 も う だ め ぽ
撤退〜!まずは撤退しろ〜!退け〜!
隊長! 敵軍の司令官が判明しました! COBOLer です!!
先ほどキャッチした敵軍の暗号に追加情報があった。 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)); : : なんてことない小さなコマンドに、ここまでやるとは…奴はニュータイプか? くっ すまん、俺はここまでのようだ あとは頼んだ……ゴフッ
四九六等兵!しっかりしろ!まだ乱数表が届いていないのだ! 逝くな!まだ逝くな! 衛生兵!おい、衛〜生〜兵〜!
やっちまった… 捕虜になる前に逝きます…
479 :
仕様書無しさん :02/10/23 03:35
void DirUp(CString& dirname) { TCHAR* p = (LPSTR)(LPCTSTR)strName; p = strrchr(p, '\\'); *p = '\0'; }
>>479 いきなりグローバル使用の引数無視かい。
まあ、'\' より左側の文字列を抜き出したいんだろうが、\ 漢字はどうするんだ。
―ソЫ\噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭xx\\
482 :
仕様書無しさん :02/10/23 09:29
1994年の日本橋の会社での話・・・ void main() { f5050(foo); } int f5050(char *foo) { f5060(); } int f5060() { ... } ※ここ数年Cのコードは書いてないので、ちょっと変かも。 関数名がf+4桁の数字。部長曰く「ココではこのルールで名前を付けるんだよ」だって。 昔のコンパイラーは関数名、変数名は8文字までしか使えなかった名残らしい。 作ってたのはビジネスアプリで制御系じゃない。 スゴイ高圧的な部長で人の欠点をネチネチ言って、反論すると顔を赤くして逆ギレ。 結局半年で辞めました。
>482 意味不明の名前付けて「あぁ俺って管理してる。ハァハァ」な感じ。いやーん。
英文ライクで抽象的な名称つけるよりは、 数字のほうが客観的で機能的、管理も楽だろうが! なんて、元コボラーのPMなんかが言いそう。。。
___∧_∧____ / ( ̄(´∀` ) ̄0 ,) <寝る。オヤスミ。 /~ ̄ ̄ ̄⌒⌒⌒⌒ ̄ ̄ ̄)' / ※※※※※※※※ / / ※※※※※※※※ / / ※※※※※※※※ / / ※※※※※※※※ / (____________ノ
486 :
仕様書無しさん :02/10/23 17:18
>>482 英文ライクで抽象的な名称つけるよりは、
数字のほうが客観的で機能的、管理も楽だろうが!
>>486 釣氏ですか?でもこれだけは言わせて。
単 語 も 読 め な い じ じ い は 氏 ね。
│\
│ \≡(`Д´;))≡= オオッ!
│ \≡// ))≡=
│ ≡」」」≡=
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
>>450
管理が楽って誰が管理することを考えてるんだろう。 楽とかいってるということは人間なんだろうな。 関数台帳とか変数台帳とかつけてんのかね。 そんな管理なんてコンピュータが得意なんだし言語によっては 名前空間を分離できたりといった便利な機能あるんだし、 どうしてそういう楽で確実なことをしようとしないのかね。 何のためにコンピュータ使ってんのかな。 人間が楽をするためにコンピュータなり技術なりがあるんだろうよ。 もうそういう視点がないこと自体ソフト屋には向いてないよな。
・・・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:名前『先頭英大文字、以下英数自由』
そもそも抽象的の対義語は具体的であるというのは置いとくのか?
>>495 これぐらいやっとかんと、無茶苦茶やりおるんよ、やつらVB厨は。
500 :
仕様書無しさん :02/10/24 12:37
英文ライクで抽象的な名称つけるよりは、 ハングル文字のほうが客観的で機能的、管理も楽だろうが!
ハングル文字 〔朝鮮語。大いなる文字の意〕朝鮮語の表記に用いられる音節文字。 一〇の母音字母と一四の子音字母を組み合わせて音節を表す。 1446年、李朝第四代世宗が「訓民正音」として公布。諺文(オンモン)。 朝鮮文字。 ハンガリアン記法 ・ハンガリアンネーミングやハンガリー記法とも。 ・Win・・・と言うよりMicrosoftに毒されたC/C++プログラマ以外にとっては何の事だかさっぱり分からない命名規約。
ハングリアン記法 ハングル文字を使用し命名規約で主に北(略
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の延命に出たし・・・
モンゴリアン記法 従わないPGにはチョップを(略
ボヘミアン記法 世間の慣習などにこだわらず、自由気ままな(略
ジャイアン記法 (説明不要なので略)
509 :
仕様書無しさん :02/10/24 14:26
AccessのテーブルをExcelっぽく使うのはやめてくれ〜! レコードの途中途中に上からのフィールドの合計値が入っている。 A|100 B|300 C|400 T|800←上の合計値 あと削除クエリ使わずにループ使ってレコードを1つ1つ消していくのはやめてくれ〜 データベースってのはなぁ…!!
お前のソースは俺のもの。
512 :
仕様書無しさん :02/10/24 15:09
俺のバグはお前のもの。
ジャイアンの歌声のようなソース!! ...考えただけで恐怖で身がすくむ
514 :
仕様書無しさん :02/10/24 15:30
インディアン記法 ウソかかない。
>>514 ウソはつかないが、書いたとおりに動くという罠(w
516 :
仕様書無しさん :02/10/24 15:46
/■\ ( ´∀`) < ここに来ればコボラーに (|_______|) 会えるってきいたんだけど。 |\__/| U U
>>495 プロシージャレベルの変数の名前の例: なしstrFilename
>>511-512 いっそXPの向こうを張ってGP(ジャイアン・プログラミング)。
……多くの企業では既に導入済みなワナ。
>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は文字列なので*がいる」
ここでもう吐きました。その先が見られません。
新卒クンよぉ。 構造体へのポインタである pData が示す構造内の long 型変数 lUserCount のポインタの書式が pData->iUserCount だと? pDataはポインタだから、iUserCountもポインタだ! だと? 死ね!
>>525 > 構造体へのポインタである pData が示す構造内の long 型変数 lUserCount のポインタの書式が
>
> pData->iUserCount
「long 型変数 lUserCount のポインタの書式」 が何を指すのかいまいち不明だが
これだけなら合っているように見える。
527 :
仕様書無しさん :02/10/25 01:01
CでWINAPIで書かれてて ヘッダーファイルはGlobals.hというのだけあって 後は数十個のソースファイルがある すべてのソースファイルの関数、変数がそのヘッダに書いてある
全ての実装がヘッダファイル内に
&pData->iUserCount ってことを言いたいの?
いや、 struct { long iUserCount; } *pData; ってのがあったときに、pData->iUserCountの型が(long *)だと 新卒クンが主張してる、といいたいのだろう。 もちろん、(long)であるわけなんだが…
つまり、525 は日本語の勉強が足りないって事?
>>513 ほげ〜 ってヤツ?
// hoge〜〜〜〜〜〜
つまり、533 はユーモアのセンスが足りないって事?
535 :
仕様書無しさん :02/10/25 12:37
>>534 テポドン1発ぐらい何だ 愛知県中島郡 福島昭生 会社員(33歳)週刊金曜日より
朝鮮民主主義人民共和国(北朝鮮)が8月31日、弾道ミサイル「テポドン」を発射した。
そのテポドンが日本の上空を飛び越え、三陸沖に着弾したという。北朝鮮側はこれを人
工衛星だと主張しているそうだ。
「どちらにしても、日本の安全保障上の脅威だ。北朝鮮はまったくとんでもないことをす
る国だ。許せない」というのが日本政府の見解のようだが、私に言わせれば、怪我人や
死人が1人でも出たのであれば話は別だが、そうでないのなら、そんなに大騒ぎするな
と言いたい。自国が被害を受けた時だけ誇大に騒ぎ立てるのは日本人の悪いところだ。
朝鮮半島の方々を強制使役したり、虐殺したり、女性たちを強かんしまくる悪の限りを
尽くしてきた戦前の日本。それに比べれば、ミサイルの1発や2発、日本の近海に落とさ
れたぐらい何でもないことだ。日本本土に落下し、死人が出たり、家屋が破損しなかった
だけでも、ありがたく思えと言いたい。
テポドン発射の件について、北朝鮮に対して強硬に抗議するのもいいが、その前に北
朝鮮に対しても、ちゃんと戦後処理を済ませてからにしてもらいたいものだ。
>>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; } } わからねー。いつも先輩はこんな感じで書きます。 細かいところまでは忘れたけどスタイルはこう。
ステートマシンだな!
541 :
仕様書無しさん :02/10/25 21:10
ステートマシン?
542 :
仕様書無しさん :02/10/25 21:17
>>539 つづき
たしか処理される順番どおり case 文が並んでなかった。
機能追加要求があると一番後ろに case 文を追記していたなー。
・変更箇所が時系列的に分かりやすい=保守しやすい
・順番の入れ替えは define 一つで制御できる
というのが利点とか言ってたような。
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
無 周 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]; } こんなの見た。まじで、この関数名だった。 作った本人は、状態遷移虎の巻とか言うのを使って 開発してた。 状態が増えたらどうするんだろ。そのとき、メンテするのは、、、 恐ろしいです。
「状態遷移虎の巻」 って何
>>547 うーん、状態遷移表ってのを作って、eventとstateをそれぞれ
数字で表して、それをそのまま実装したらその形になるけどなあ。
その場合、eventやstateが増えたらまず状態遷移表から検討しなおす。
コードをぐちゃぐちゃいじり始めると泥沼なのは明らかだからな。
あまり問題には見えないように思うけど、
考え違いしていたらつっこんでやってください。
何にせよ、関数名 DoCmd は DQN
>>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;
}
}
};
>>554 きっと「一昨日出直してこい」と言われて、明後日からやってきたんだよ。
>>555 漫☆画太郎が昔そういう読切を描いたっけな。
>>547 状態遷移虎の巻っていうのは知りませんが、
state_tableみたいなやつ、手っ取り早いからよく使うんだけど。。。
>>557 >>547 はテーブルを使うこと自体を言いたいんじゃなくて、
関数名がダメダメということを言いたいのでは。
>>558 いや、
> 状態が増えたらどうするんだろ。そのとき、メンテするのは、、、
って書いてあるから違うだろ。
550 書いたのは漏れだが、あれはネタ。
漏れ的には関数直呼びしたくなるけど、テーブルもそう分かりづらいものでも
ないと思う。
多分、547はS00というような関数名に文句を逝ってるんだろ? でも、この場合はいずれにしろ状態遷移図を追わなきゃならんからしょうがないというのが ひとつの意見だ。 しかし、それを認めてしまうと、COBOLerの、HIPOの構造箱番号がプロシージャ名というのも OKということになってしまう。 というわけで、やはり、S00ってのは無いだろうということではなかろうか? 良くわからん。
>>560 ああそうか。
漏れは DoCmd のインパクトに呑まれてて、そこまで気が回らなかったヨ
>>558 あぁ、そういうことか。それなら納得かも。
各stateと各eventに適切な名前を与えて、 state_eventみたいな関数名を与えればOK?
>>563 関数名は、状態名(番号)・イベント名(番号)に拘らなくても良いような。
状態が違ってても、同じイベントだったら同じ処理に落としたい時とかない?
自分だったら、処理内容に応じた関数名にしまふ。
そして、どうしても番号つけときたかったら、コメントでも振っておけばいいんだよな。
566 :
仕様書無しさん :02/10/27 22:49
少数派の様だけど、俺はどっちかってと 状態番号=関数名の方が、デバグしやすかった。 (頭の中で状態番号から関数名に置換するステップが どうもメンドイ。他人の作ったコードのメンテなら尚更)
>>566 仮に S00 〜 S99 だとしてもその方が分かりやすいか?
そもそも状態番号がクソだと思うのだが。
状態そのものをコメントで記述すればいい。
568 :
仕様書無しさん :02/10/28 00:46
数千行のメインに頭から穴までのループやらifやらでインデントが5重くらい。 変数は全て使用する遥か以前か、 別のGrobal.hと言う名を叫ぶも恐ろしいファイルで定義、 2次配列がわけのわからん点字で展開。 とても親切かつ意味不明瞭なコメントが1ステップ置きにもれなくついてくる。
>>568 ほぼ既出なので、気の毒だが新鮮味は無い。
しかし、最後の行だけはどうにも痛すぎる。
VSSで管理されているのに、#if 0〜#endifによる 変更履歴がこと細かくかかれているソース。 頼むから、200行ぐらいの構成で何重にも#if 0〜#endifが組み込まれていて、 解析していくと結果的に return( RET_OK ); だけになる関数なんて、さっさと削除してくれ・・・・
>570 コメントアウトによる修正履歴とどっちが痛いかな? エディタの色分けで見えるだけ、こっちのがマシか。
572 :
仕様書無しさん :02/10/28 09:54
>571 #if - #endif の非表示 or 色分けできないエディタ使ってるか?
571じゃないけど、emacsでそれできる方法があったら教えてくだちい。
hide-ifdef-modeじゃダメなん?色付けよりはずっと直観的だと思うんだが。
スレ違いでスマソだが、
>>568 は添字を「てんじ」って
読んでる? 私は「そえじ」だと思ってたけど違う
んかな。
みそじ、だろ
( ´_ゝ`)フーン
>>575 ああ、
>>568 の「てんじ」ってそういうことだったんだな。
俺はまた二次配列の中身が何かの模様か記号みたいなもので
展開されているのかと・・・。(なわきゃあないわな。)
579 :
仕様書無しさん :02/10/29 00:46
>>568 ま、5重インデントなら可愛いもんだ。
しかし、糞プログラマはどうして一行おきにコメントを入れたがるのだろう。
>>579 強要されたことあるぞ俺。CMM取ってるのに社内規則だって。
糞会社。
581 :
仕様書無しさん :02/10/29 03:08
添え字派ですがなにか?「てんじ」じゃ変換してくれへん。。
「てんじ」ってガイシュツやスクツなみに恥ずかしい間違いだと思うぞ・・・
568には、是非会議かなんかで「てんじ」と発音し、 横の先輩に「そえじだろ、そ・え・じ」とつっつかれて、 「じゃあ添付ファイルは何て読むんですか?そえふですか!?」と逆ギレして 騒いでほしいものだ
> 2次配列がわけのわからん_点字_で展開。
了解
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
>>588 On Error Resume Next
warata
>>588 ,599
これが会社を辞めようと思ったやりとりですね!
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ハダイスキ スルメモダイスキ
>>593 SMILE って、α関連か?
いい加減やめろよ(w
先は無いぜ>VB SMILE α系列
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ページ印刷するたびに制御を解放してしまうからだよ。 バグではなかったのか?すごい疑問もちつつ仕事してました。
>>598 ゴベンナザイ(;;
だってだってO塚の単価が安くて納期が短くて量もかなりあって
毎日終電で何やってるか分からないんだよ。
600 :
仕様書無しさん :02/10/29 22:52
>>599 O塚の方ですか?ご苦労様です。
カスタマイズを下請けに任せちゃっていいんですか?
ショートカットキーの割り当てもプログラマまかせだし。
CTRL−Aから順に見ていって使っていないキーを割り当てるって
やり方していた奴いたけど。大丈夫だった?
つうかこのソースって構造化設計でもなくオブジェクト設計でもなく
見たこともない形式ですね。
グローバル変数を多用するのはCOBOL版のなごり?
同じようなことをやっているソース見て
同じようにまねてカスタマイズするよう指導されていました。コピペが多かった。
会社入ってから初めてプログラムやったという奴ばっかりだった。
「デフォルト?って何?」「エンジン部分ってなんだよ!」ゲラゲラ。
いいのか?それと、やっぱり変数はいまでも連番ですか?
あとは、ビートリーブだっけ?
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 上司が「帳票のココにタイプ別小計を出してくれ。すぐ出来るよな。」
って数千行のソースを頭っから舐めていかないとできませんよ。
このソースでは。
>>600 いや、下請けみたいなもんです。
先輩に関数名とか聞いたけどCOBOL時代の関数名をそのまま使ってるみたいで、詳細は分からないっす。
自分も初心者みたいなもんです、いくらやっててもSMILEじゃ腕が上がる気がしないっす。
>>601 O塚紹介のHPをご覧あそばせ。
下請けのPGなんで責めないで。(w でも、もうすぐ転職するから気にしない。
608 :
仕様書無しさん :02/10/29 23:10
>>606 ザブゼロスイッチってなんやねん。
独自のコーディングテクニックみたいだけど・・・
>>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 次のセルにカーソルを動かしたら
直前のセルの値のチェックやって
エラーだったら直前のセルに戻す。
次のセルをゲットフォーカスだっけ?
カレントセルをロストフォーカスじゃいけないのか?
>>612 確かめてみると…漏れが間違ってるな
ForwardOnlyが更新できないなんてどこをどう勘違いしたのやら…
憑かれてるらしいから
回線切って寝るわ
615 :
仕様書無しさん :02/10/30 01:26
>613 良くある LostFocusの無限ループにはお気をつけアレ〜 回る回るよ時代は回る
>>597 > コーディング規約:
> 「リリース時は全てのSub, Functionの先頭にOn Error Resume Nextをいれること」
その次の行に On Error Goto 0 を入れてしまえ。
617 :
BlackAngel :02/10/30 14:27
On シロウト Goto 逝ってよし End.
O塚は困った思い出がたっぷり。イヤン
>618 その思いで晒して (・∀・)
620 :
仕様書無しさん :02/10/30 21:37
スマイルは絵に描いたような cobol like vb program だね。
int s_e = State.ERROR; boolean b=isErrorResponse(r)?memoryzeState(s_e):true;return b; 環境がマトモでもコードする人間で、、、
訂正 memoryze > memorize
>>603 …まさか…Cole Porterじゃないよな?
自分の会社じゃないんで辞めるも何もないし、 プログラム以前の問題なんだけど… 出向先でプログラム修正させられたどっかのシステムのExcel帳票。 右寄せ表示したい(と思われる)所を +左寄せをスペースで調整して右寄せっぽく見せていた+ 時は目から汗が…。 きっと何か意味があるんだろうな、と思ってそっとしておいた。
>>624 VBのラベル表示のセンタリングで、
ラベルの幅とフォントの幅を計算して、文字列の左右に中央寄せになるような
半角スペースを入れてセンタリングしてたプログラムを見たことがあるよ。
ある意味感動した。
626 :
仕様書無しさん :02/10/31 15:41
>>625 お馬鹿な客が、よくそういうのを要求してくるよ 特に、官公庁
そんなどうでもいいような仕様を、「これは、大切な部分ですから・・・」
って言われたときには、ぶっ殺したかったよ
>625サン あぁ、漏れもそいうことやったYO!
>>625 そんなもん、何日も遊んで
プログラムできました、って言って
プロパティでセンタリング指定するのが正しいのでは?
遊んでて金くれるつってんだから、ラッキーじゃん
>>628 ドーイ
いかに手を抜きながら、決められた目的を達成するか、だな。
楽しないでどーすんだっつーの。
630 :
仕様書無しさん :02/10/31 20:55
賢いプログラマは、楽をするために努力する。 愚かなプログラマは、努力を惜しんで苦労する。
元々、コンピュータというものの生い立ちを考えれば、自然な思考だよな。 最近のDQN開発者は、簡単に済むことも、わざわざ難しく考える。 アルゴリズムなんて知らないやつ増えてきたし。 ソートするんだってライブラリ任せだしな。 実用云々ではなく、思想の問題なんだが。
632 :
コンパクトドールは電気羊の夢をみるか? :02/10/31 21:47
>452 >データベースに日付をYYMMDD形式のテキストで記録していたとき。 しかもYYが元号の数字で元号がどこにもなかったとき。 #平成10年だったらYYには10がはいり、平成という情報がどこにもない.....
>631 すいません。素朴な疑問なんですが、 > 最近のDQN開発者は、簡単に済むことも、わざわざ難しく考える。 ってのと > アルゴリズムなんて知らないやつ増えてきたし。 > ソートするんだってライブラリ任せだしな。 ってのは矛盾するような気がしますが。 「簡単な方法を使え」ってこと? それとも「難しいことを考えろ」ってこと? どっちでつか?
636 :
仕様書無しさん :02/10/31 22:27
>>634 もちろん、ある程度の知識を持っている事は開発者として当然
その上でなるべく簡単で効率的に開発できる方法を選択しろってこと
「よくわからないけど、Webでホニャララ・ライブラリっての見つけたYO!
便利そうだからこれ使って実装しちゃえ!」ってのがDQN
よく調べずに ・ライブラリにあるからとりあえず呼んどけ ・ライブラリにないだろうから自分でつくる なんて愚行を「繰り返す」のがDQN
>>634 あのな、言いたいことは、お前が引用した部分じゃなくて、
お前が引用するという意識を持てなかった
>実用云々ではなく、思想の問題なんだが。
ここにあるんだがな。
逝っていいよ。
639 :
仕様書無しさん :02/10/31 23:19
>>638 それ、実力の無いアフォ上司がよく言うセリフだな。
>>638 それ、実力のない現場のDQNが、できない言い訳として
正論を吐いた上司をコキおろす際によく言うセリフだな。
>>641 =638
図星を突かれて手が震えたのか?
643 :
仕様書無しさん :02/10/31 23:47
(・_・ )?=( ・_・)?
ちょっと違うが、リスト構造を実装してたソースで、 最初に要素を追加する処理のコメントに //初めての挿入 って書いてたのに萌えた。
646 :
仕様書無しさん :02/11/01 00:40
俺、クイックソートを実装しているライブラリがあるのにもかかわらずバブルソート組み込んでしまう 香具師を知ってるんで、まあ、なんですなあ。 車輪は再生産しないようにしましょう。てか、車輪の特性をよく知って適切な車輪を使いましょう。
647 :
仕様書無しさん :02/11/01 01:16
よくあるんでしょうが、もうたまらないので書きます。 8割近くが引数も戻り値もない関数 一文字フラグがグローバルで宣言されていて、様々な箇所で活躍 コメントがいっさいない 設計書もない こんな機能にぶち当たりました。 これを解析して、新機能を盛り込まなきゃならない。 前の担当者とも連絡が取れない。 どーすればいいんだよ………
648 :
仕様書無しさん :02/11/01 01:27
>647 作り直す。
うん、解析している時間が多分無駄になる。 作り直したほうが早いと思われ。 マジで。 つーか、俺も最近、似たことやった。 ガンガレ
それが、その機能かなり複雑なヤツなんですよ。 実際に盛り込む新機能はちょっとした物だから、解析の方が早い、らしい。 ちょっとした新機能盛り込むにしても、基本設計作って詳細設計作って それぞれレビューして、周りを納得させなきゃならない。 時間がないって毎日せかされながら………必死扱いて解析してる。 ただでさえ人手不足なのに、先輩倒れて実家帰ってるし。 もうダメポ
奇遇だな。俺もフラグ満載のソースを解析中。 もっと早く作り直しさせるべきだった…。 コメント読んでも何をやりたいのかさっぱりわからん。。 よく今まで動いてたな・・・ある意味、すごい。 if(StatusFlg2 == 0 && StatusFlg2 < 0) // フラグ2がオフのとき StatusFlg3 = 1; // 状態フラグ4を立てるためのフラグを立てる }
>>651 フラグ2がオフのとき、状態フラグ4を立てるためのフラグを立てるんだろ
コメントどおりに実装されてるよ(w
653 :
仕様書無しさん :02/11/01 01:59
この会社辞めようと思ったソースコード。 10年くらい前の話ですが、 MS-Cでqsort関数使えば数行でできるソートプログラムを、500ステップ 近いコーディングをして1ヶ月以上かかってデバッグして、しかもバグで まともに動かないソースコードを見た時。
>>652 問題は、その条件文って絶対に成立しないと思うんだけど。
1時間近く悩んでたよ。
ちなみに、フラグは全部符号なし8ビット整数型ね。
(StatusFlg2 == 0 && StatusFlg2 < 0) っていう、条件判断を実装できるって、ある意味スゴイ(w
ソースコードの30%以上を直さなければならないときはイチから作り直した方が早いんだっけか?
>646 クイックソートとバブルソートは結果が違うので その人はちゃんと使い分けてるのかも知れませんよ?
JSPのスクリプトレットにあった。 view.init()
>>659 そうかもしれないな。たしかに決めつけは良くないよね。
まあその確率はほぼゼロなわけだが。
>>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で検索してもヒットしません。 ・ダイバー ダイバーとして登録された・・・ 文中に突然出てくる「ダイバー」って何?
668 :
仕様書無しさん :02/11/01 21:33
>>664 です。
めちゃめちゃ鬱。
就職していないのに転職活動なんてできないし。
どうしたらいいのやら。
669 :
仕様書無しさん :02/11/01 21:36
>668 内定状態なら辞退しちまえば良い話ではないかと。 なので就職活動をガンガッてください。
>>665 void main(void)は別にDOSのサンプルだとよく使われる。
UNIX系と違ってプログラム自体の戻り値を判定する手段がないから別に問題ない。
gets()も記述の仕方がわからないけど、学習用サンプル程度じゃ気にするような問題じゃないよ。
アホらしいのでsage
シェルスクリプトのファイル名拡張子を .jcl と頑なにこだわる会社に常駐させられてまつ。
>656 IF (A = 0 OR A <> 0) AND B = 0 THEN とかいう条件文があるソースをメンテしたことがある。 A の条件いらねぇじゃねぇかよ。
674 :
仕様書無しさん :02/11/01 23:37
>>672 VB/VBAだと思うが、もしAがVariant型でNullが入るのなら意味がある。
もっとも普通はIsNullを使うが。
>675 すまん。型書き忘れてた。 しかも今確かめたら微妙に違ってた。 ご想像の通り Access の VBA なんだが、 A A' ともに Integer で IF (A = A' OR A <> A') AND B <> B' THEN という文。 このソースは他にも、2つのテーブルを結合して第3の テーブルに挿入するためにわざわざ2重ループ使ってたり、 あるフィールドをソートして、ループを回しながら数を数えたり 値が変わったところで何か処理をたり…という COBOLer の臭いがプンプン漂うものだった。 別に辞めようと思ったわけでもないので sage。
古いプロジェクトのVBソースを読んでたら、 INI ファイルの読み込みを独自実装してた。 …いあ、まぁ、いいけどさぁ。
678 :
仕様書無しさん :02/11/02 00:44
>>631 > 最近のDQN開発者は、簡単に済むことも、わざわざ難しく考える。
> アルゴリズムなんて知らないやつ増えてきたし。
> ソートするんだってライブラリ任せだしな。
言っていることが矛盾している。
アルゴリズム知らなくったって、たとえば C++ なら
std::sort() とか使えば難しいこと知らなくてもソートできる。
std::sort() 関数をテストする必要もまずない。
アルゴリズムを知っていたって、その方がシンプル。
書くコードが減ればバグも減る。テストも減る。
>>678 >>634-
馬鹿の一つ覚えみたいに、内容を理解しないまま API を使うなってことだろ。
>>678 また来たよ、DQNが。
理解できないんだろうけど。
こういうヤツラが、今のシステム開発最前線にいたり、
設計やってるかと思うと寒気がする悪寒。
682 :
仕様書無しさん :02/11/02 01:24
gotoを恐れなく使えるようになってから後藤不要論を語るべし
GTO
goto か… 多重ブロック抜け位なら使ってるかな。それも内部ブロックを別関数にして return 抜けすればいいんだけど。
685 :
仕様書無しさん :02/11/02 02:04
現在主流の言語はライブラリがそろっているから学習には向かない。 かといってマイナーな言語では情報が少なすぎる。 そこで情報処理技術者試験を受けることを推奨する。
>>685 > 現在主流の言語はライブラリがそろっているから学習には向かない。
何を学習するかによる。ライブラリが多すぎて覚えるのが大変、と言う
より大抵のライブラリは覚える気がおこらんだが、主流になりそうなも
のを知っておくと、重宝される。高度なアルゴリズムより、今後設計にフォーカ
スしていくと考えるべき。
他はおおむね同意
>>686 ライブラリだけ覚えてアルゴリズムをしらないから学習に向かないって言ってるんだよ。
>>687 最近ってアルゴリズム知らない奴でもいっぱしにメシ食ってけるんだよなー。
良い世の中になったというかなんと言うか… 奥村本一つ一つ動かしてた頃が
懐かC。
>>688 おぉ、同志よ。。。
だからこそ、素養のいい技術者が必要なわけだが、
いまはどこも安いからなぁ。
スキルのある少数の人間を高く使うより、
ブビ厨あがりの安い人間を大量に使ったほうがいいらしい。
>>689 > ブビ厨あがりの安い人間を大量に使ったほうがいいらしい。
当然だろ。吉野屋に高級レストランのシェフを使ってどうする。
692 :
堕天使姫子 :02/11/02 03:23
数百メガの mdb ファイルサイズ増えるから コメントいっさい禁止 しかも変数名、関数名のほとんどが日本語 当然 仕様書もドキュメントも無し。最初に作った会社は引き上げ
>>692 完全デスマーチだね。
八甲田山詣でしとけ
694 :
仕様書無しさん :02/11/02 06:38
>>692 最適化してもそのサイズ?
そもそもそんなサイズをAccessで扱おうと言うのが無謀では…
・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 無理。コンパイルして中間ファイルのサイズを調べてみるとか。サイズが極端にちいさければあやしいと・・・
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
679-680 は、printf() や atof() 等を使うのはいいが数値と数字の変換くらい 自前でできるようになるべきだ、と言っているのか?
708 :
仕様書無しさん :02/11/02 12:58
>>707 いや、printf()も自前で書けと。
>>708 そうなのか・・・。
ヤヴァイ、漏れ浮動小数点値の入出力できねーよ・・・。
しかしまさか、10 で割ったり 10 で掛けたりして 「変換できますた」 なんて
言わないよな。
それはバブルソート書いといて 「クイックソートできますた」 と言っている
のに等しい。
>>701 コンパイルしないでもプリプロセッサにかければ、
#if〜#endifは消えるよね。
コメントも消えるけどナー
712 :
板違いクン :02/11/02 13:28
>>711 プリプロセッサって、「マクロ展開後のソースを見る」のが目的だと
思ってましたが、他の使用法(趣旨)もあるのでしょうか?
long foo(long a) { if( a == 0 ) { a = 0x00000000; } 以下略 } なにがしたんだか
パチンコで社長に負けたとき
チンコの長さで課長に勝った時
>>711 >他の使用法(趣旨)もあるのでしょうか?
他の趣旨:マクロを展開してコンパイルできる状態にする。
718 :
仕様書無しさん :02/11/02 15:06
719 :
仕様書無しさん :02/11/02 16:16
>>716 に関連して。俺の水泳の先生、超巨大だった。赤ちゃんができたときにはびっくりした。
721 :
仕様書無しさん :02/11/02 18:15
Global i; 'ループカウンタ
>>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 ・・・・(以下略)
>>722 うん、そう。一見無意味に見えるものを取り去っただけで動かなくなったりね。
でもそういう部分にはコメント入れるよ。そういうところにこそコメント入れないと。
>>723 フェイントで、 s_23 あたりが抜けていると最強だな
>>718 「ソースを見る」と「コンパイルできる状態にする」
という違いがあるが、何か?
727 :
仕様書無しさん :02/11/02 18:42
>>726 一応、そのコメントは予想しておりましたです。(^^;;
729 :
仕様書無しさん :02/11/02 18:51
>>728 それなら、最適化の影響を受けない記述子(何だっけ?忘れた・・・)を
使えばよいのでは?
>>726-727 そもそも 712 の
> プリプロセッサって、「マクロ展開後のソースを見る」のが目的だと
が間違ってると思われ。
副次的にそのような効果はあるが、「コンパイルできる状態にする」 以外に
プリプロセッサの目的はない。
>>728 713 のソースはそうなのか?
組み込み系であればこそ、最適化 OFF にするなんて事はせずに、素直に
__asm nop を入れると思うが。
>>731 nop1個の調整が必要になる様な場面であれば、
そもそもフルアセンブラで記述しそうなものだが。
何にせよ、713 のソースは DQN
734 :
仕様書無しさん :02/11/02 19:11
LPSTR szBuffer_used_for_stream_data_from_serial_to_local; なげ〜よ
>>734 長さの割に情報量が無いような。
書くとしたら szStreamBuf_Serial2Local だけどこれでもまだ長い。
もしローカル変数だったら単に buf でいいな。
>.735 「C言語の変数名は意味がわかるように書く」を拡大解釈しすぎて、アホみたいに長い変数名を 書くヤツがいるんだよ。 szInBuf って速攻で直したけどね。
volatile を使いこなすと組み込みプログラマ的にかっこいいかな。
volatile修飾が必要なリソースは最初に定義するので 使いこなす程には使わないと思われ。
変数名がみんなa00とかc01とかで、しかも変数宣言が見当たらないので 「まさかグローバル?」と思って調べてみたら…… #define DEFINE_VARS\ int a00, a01, a02, ... a19;\ char c00, c01, c02, ... c19;\ char *p00, *p01, *p02, .. *p19;\ (以下略) と定義してあって、全部の関数の先頭に漏れなく DEFINE_VARS が入れてありました。 グローバル変数じゃないだけマシ……と思えばいいのか?
初期化されてないのは嫌かも
名前だけで充分イヤだ
>>720 M-x hide-ifdef-mode
ってmeadowでは使えんの?
>>740 今すぐ辞職届け用意して連休明けたら即その会社辞めれ。
空前絶後のDQNソースだよ。それ。んな酷いの見たことねぇよ。
745 :
仕様書無しさん :02/11/03 00:04
>>738 コンパイラのバグのせいで使わざるを得ない状況に遭遇しました。
そのバグをメーカーに直させると別の所がバグってて、結局は古いヴァージョン
のコンパイラで、volatileを使ってごまかすのが最善という結論に至りました。
ちなみに、組み込み機器系のコンパイラ。
746 :
仕様書無しさん :02/11/03 00:16
>>745 組み込み用コンパイラなんてそんなもんだ。
そういう現実を知らない奴は「VCなんてバグだらけ」なんて
バカなこと言ってるけどな。
747 :
仕様書無しさん :02/11/03 00:16
>>747 こういうのってネタなの? マジなの?
そんなコードで社会が動いているなんて、恐ろしすぎる。
>>748 関数の戻り値を一切使わずにグローバル変数で関数の結果を受け取っている
PGは本当に見たことがある。それも不思議発見のスポンサーの仕事で・・・
750 :
仕様書無しさん :02/11/03 00:33
>>748 >関数の戻り値を一切使わずにグローバル変数で関数の結果を受け取っている
>PGは本当に見たことがある。
Oh!TUKA の販売管理システムがそうだった。
751 :
仕様書無しさん :02/11/03 00:36
>>750 まあ、拡張する可能性が全くなくて、マルチスレッドをゼッタイに
つかわなくて、先々に渡って仕様を完全に管理できるようなカンペキ
な体勢なら、カマワンと思うけど・・・・
でもそういう体制を作れる程度に優秀な人間が集まってたら、
そんなことせんよね(藁
COBOLerは他の言語やってもCOBOLer。リファクタリングが必要。
753 :
仕様書無しさん :02/11/03 00:50
Oh!TUKA の販売管理システムのように糞ソースのソフトを晒して下さい。
754 :
仕様書無しさん :02/11/03 01:00
>>752 職種についてリファクタリングですね。
・・・あー、それができれば見通しよくなって、アホな火吹き
プロジェクト激減するんだろうなあ・・・
リファクタリングよりディスカーディングきぼんぬ
>>700 遅レスだが、VC++.NETなら、#if〜#endifを畳めるよ。
昔やった仕事でPOSだけど、 五千桁位のレコード数百件のファイルが十数種類 それが1日数十個 こんなことザラ? 3年しかやってないから分からない
758 :
仕様書無しさん :02/11/03 05:12
よくわからんけど大規模な POS ならそんなもんかと思う
759 :
仕様書無しさん :02/11/03 10:30
リファクタリング禁止! この不況なのに合理化・効率化なんかしたら仕事がなくなるだろ!
だから、ディスカーディング
761 :
仕様書無しさん :02/11/03 11:19
まずは使い物にならなくなったオヤジをディスカード…
>757 ありがd アレはきつかった 他の余計な仕事もあるし良く分からんで眠いし 初心者で更にスパゲッティ大量生産だったし(w 辞めて良かった 後任者スマソ
ありゃ >758ですた
動けばいいんだよ、動けば
その油断に足元をすくわれるぞ。
766 :
仕様書無しさん :02/11/03 13:18
テストさえきちんとすれば問題ない。
テストの中でも特に情報処理技術者のテストが一番大事。
769 :
おいおまえら :02/11/03 13:36
うちの会社はそろそろアジア系の方々をユニットに加えてきました。 僕チン達日本人はもう用ナシですか? ( ´-`)チュンチュン
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
ちゃんと動けばいいんだよ、ちゃんと動けば
読みやすさも無視ですか?
つーか、変更の為のコストを何時割くか、という話のよーな気もするな・・・
>>770 ハードは遅延があるからなー。あとコストの問題も。
下手に直すと動かないことがよくあるのでテストは綿密にやらないと。
777 :
仕様書無しさん :02/11/03 14:43
売り上げデータ(3000件/日) 商品マスタ 200万レコード while(商品マスタ!=EOF){ while(売り上げデータ!=EOF){ if(商品マスタ.商品番号 == 売り上げデータ.商品番号){ 商品マスタ.商品名を取得 } } } こんなのでも納品してしまう我が社っていったい。
>>777 うちも10万個のデータチェックするのに二重ループ使ってるコードを
納品したことあるよ。
お客さんから「この程度のデータでこんな遅いわけないでしょ?
もしかして単純にループ二重にして処理してない?」という突っ込み
が入って作り直したけど。
>>778 のようなツッコミに「調査します」と切り返すようでは甘いな
780 :
仕様書無しさん :02/11/03 15:06
To
>>778 From
>>777 1ヶ月の受け上げを計上する処理は
バッチで金曜の25:00から何時間もかけて
処理するような仕様になった。
うまく動いているから修正対象にならない。
というか直したいけど上からGoが出ないのでX。
テストが時間がかかってしょうがない。
>>779 いや、営業はその処理のためのマシン提供しろとか処理中張りついて監視しろ
とかゴネられたらしいし。技術としてもそんな恐ろしいコード実運用で走らせ
たく無かったしね(他の処理に影響与えかねん)。
>>778 そういうつっこみを入れられるお客さんを相手にしたいものよ。
783 :
仕様書無しさん :02/11/03 18:48
777のどこがおかしいのかアホの783に教えてあげて
>>783 ネタニマジレス
SQLのSELECT文を調べてください。ヒント:テーブル結合
struct { int 商品番号; } 商品マスタ; かとオモタテタ(w
>>785 ひょっとして、コードレビューで擬似コードを使うのを認めないクチ?
787 :
仕様書無しさん :02/11/03 19:02
>>783 この際、テーブル結合というのは考えないものとして
商品マスタと売り上げマスタのネストが逆なのが問題だろ!
売り上げマスタを基軸として商品マスタから商品名を参照するのが普通。
商品マスタを基軸にしたら馬鹿みたいにおそくなる。
789 :
仕様書無しさん :02/11/03 19:12
>>788 お前は無能か?もしくは未経験者?
売り上げデータの累積件数のほうが多くなるからか?
月次処理とか締め日処理で
計上したり履歴として退避したりするからそれはない。
その「2年」というのは、会社が繁盛して
月に200万件以上の売り上げがあるって言っている?
んなわけないか。・
>>789 アイタタタ。
>>777 からは以下の要件は推し量ることはできないよ。思い込みはケガのもと。
>月次処理とか締め日処理で
>計上したり履歴として退避したりするからそれはない。
791 :
仕様書無しさん :02/11/03 19:36
>>791 20分間、顔真っ赤にして、考えに考え抜いたレスが「釣れた」か?
794 :
仕様書無しさん :02/11/03 19:45
>>792 4分間、顔真っ赤にして、考えに考え抜いたレスが
「20分間、顔真っ赤にして、考えに考え抜いたレスが「釣れた」か? 」か?
┌──────────────────────―─┐ │ | │ | │ /■\ | │ (´∀`∩) | │ (つ 丿 | │ ( ヽノ | │ し(_) | │ | │ Now Onigiring. ... | │ | │ | │ しばらくおにぎりでお待ちください。 | │ | └───────────────────────―┘
釣りは要らないぜ。ソースをください。
ちと遅レスだけど。
>>723 スタティックリンクを考慮したライブラリならそれで正解(ファイル名は
ひどいけど)
理由:
スタティックなライブラリにはオブジェクト(*.oとか*.obj)の単位で格納
され、実際に実効可能ファイルとリンクされる時にもオブジェクト単位
でリンクされる。従って、1つのオブジェクトになんでもかんでも詰め
込むと、使いもしないシンボルまでリンクされてしまって無駄。
まぁ最近のコンパイラだと未使用シンボルを取り除いてくれたりするし、
メモリもたっぷりあるからほとんど困らなかったりするが、移植性を
考慮するとやっぱりソース分割しておいた方が無難。
昔(DOS時代)「libcのソースはなぜこんなに分割してるんだ?」と疑問
に思った事があって、分からなかったんで先輩から教えてもらった。
聞いてなるほどなと思ったよ。
>723は、 >1つのソースコード(*.c)に関数1〜2個。 >それが200個近くある。 ここまでは仕方ないけど、ファイル名が… って感じだと思われ
>>797 関数ごとに #ifdef〜#endif でくくって、ファイルは適当にまとめるという方法もありますな。
初めて見た時、Makefileを見るまで意味がわからなかった。
800 :
仕様書無しさん :02/11/04 12:21
Dim Yatteru As Boolean If Yatteru = True Then … Else … End If もっとまともな変数名つけろよ
>>800 そうは言ってもたとえばJavaだと「isXxx」とかつけるからあんまり変わらない。
If やってる = True Then
じゃないだけましと思えばどうか?
・・・だめか。
802 :
仕様書無しさん :02/11/04 14:34
803 :
仕様書無しさん :02/11/04 17:38
>>800 センス無いとは思うが、会社辞めるほど酷いコードとは思わんな。
>>802 モナー板でよく見るコピペなので、パクってもいいかと。
Onigiring がいいよな。 アフォっぽくて。
>>800 なんで
If Yatteru Then
って書かないのか不思議だな。。
それから、isXxx は普通メソッドかフィールドに使うんだから
オブジェクト名.isXxx
となってよく意味の通る命名規則だということを801はわかっているんだろうか。。。
>806 If Yatteru Then これは見づらくなるので800推奨のところもあるからいいと思う。 でも確かにこの変数名はちょっとヤバいな(藁
801がYatteruことと言えば
If Jimmy.YatteruYatteru Then
If Jimmy.YatteruYatteru() Then こっちの方がいいか。
辞めようとまでは思わなかったけど IDia/2なんて何度も書くくらいなら const double IRad=IDia/2; くらい定義しておけ 同じ処理何度もやることがわかるなら自分で関数作れ 俺が作るのをただ使ってるだけじゃなしにさ まぁそいつのほうが辞めたんだけども
KomittoFuragu 確かに意味が分からないわけではないのだけど…
>>828 関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
828がどんな軽率なレスするのか今から楽しみだね
緊張するなあ
816=828 かい。
ん、デジャヴ?
ターイホ。 ......ケーサツな発言。
820 :
仕様書無しさん :02/11/06 09:25
If OrderDet.RecordCount = 0 Then Set OrderDet = Nothing Exit Function End If
>>820 これまた何が言いたいのかわからんコードだ。
>>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
>823 これなに?
志村がババァのヅラかぶって聖歌隊でジャジーなギターカッティングにのせて、ひたすら『アーア』とか 『げっ』とか連発するやつ、また聞きたいなぁ。どっかに音源残ってないかなぁ 誰か、知ってる?
829 :
仕様書無しさん :02/11/06 12:25
誤爆しました 失礼しました
第2章まで C言語です よろしくお願いします。
>>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
何をするプログラムなんだ?
834 :
自業自得ですが :02/11/06 13:57
朝からトラブル発生!! 今日はずっと傷害対応 どんどん仕様が・・・ なんていうか、「思想の無い実装はあらゆる設計に劣る」という感じでしょうか。(毒)
834 って誰?
俺
838 :
仕様書無しさん :02/11/06 14:43
>>828 関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
>>838 そんなに誤爆にカッカすることないじゃんよ
仕事のストレスですか?
840 と 841 は何をカッカしてるんだ? 838 は、813 があったからネタで書いただけだろ。
> 志村がババァのヅラかぶって聖歌隊でジャジーなギターカッティングにのせて、ひたすら『アーア』とか > 『げっ』とか連発するやつ、また聞きたいなぁ。どっかに音源残ってないかなぁ 懐かしいねえ。 覚えてるよ〜、オモシロカタヨ
∧∧ /⌒ヽ) スマソ・・・イッテクル・・・ ツイデニ・・・クビモツッテクルヨ i三 ∪ ○三 | (/~∪ 三三 三三 三三
840が人生辞めようと思ったスレ
遺棄炉!
847 :
仕様書無しさん :02/11/06 16:24
>>846 読みがイキロでも、誤字がアレすぎて慰めになってねえYO!
848 :
仕様書無しさん :02/11/06 16:28
>>848 その通り!813が全ての悪の元凶。俺は全然悪くない。
いや、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; に修正するってのは不可なんだろうか? オレの指摘っておかしい?
else if は使用禁止
>>851 関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
else使う時点で失格
hoge; で A に NULL がセットされている罠
すまん、逆。 つーか、どうせネタだから勘弁して (;´Д`)
>>851 これ、Cのソースなの?らしくねぇかも。
つーか「ifやelseのぶら下がり」は褒められたモンじゃないなぁ...
おかしくはないんだけどねぇ〜
COBOLer のにおいがぷんぷんする
>>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);
にしようとしているなら、先輩の言っていることは正しい。(君が間違っている)
詳しい事情も知らずに人を非難するんじゃねえ!糞どもめ。
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。
誰か、マジレス期待。
>>863 状況による。
処理1と処理2が絶対に続けて処理を行わないことを示したい場合、No1を使う。
処理1と処理2が続けて処理を行う場合がある時はNo2を使わざるえない。
>>863 つ〜ことは、switch case文はなしですか。そうですか。
else ifの方が処理が速い 分かった? ポンコツ君たち
868 :
仕様書無しさん :02/11/06 22:13
N88BASICにて、二回Noにするとバグるコード 処理A ・ ・ これでよろしいですか?(Y/N) if Yes then return 全く同じ処理A ・ ・ これでよろしいですか?(Y/N) if Yes then return ここから違うサブルーチンが始まる
処理が速いのはわかってるって。
870 :
仕様書無しさん :02/11/06 22:15
>>868 それよりも、N88 が稼動している事に驚き。素直に。
「この会社」じゃなかった。でも辞めたいのは真実
873 :
仕様書無しさん :02/11/06 22:58
>>870 歴史修正主義は欧州諸国では重大な犯罪です。
goo = Right(CStr(Format(Date, "yyyy")), 1) これのどこが悪いのか教えて下さい。 変数名ですか?
ていうか、右端一文字が欲しいなら Format(Date,"y") でいいじゃねえか
cppソースファイル1つにつき、グローバル変数が90個以上付いてくる。 しかも、コンパイルで警告出まくり、実行したらランタイムエラー。 このコードを元に設計してと言われても、何がなにやら意味不明で・・・ グローバル変数名、b1,b2・・・b8とか、bb1,bb2・・・bb8とかなんで、 変数の意味が不明。更に、define定数の嵐で、コード解読不能です。 あと、各関数の頭にint i, x, y, z, ii, xx, yy, zz;って書いてあるんですが、 どうも使われていないようなんです・・・辞めて良いですか?
>>877 ネタですか?
ところで、
For i = 1 To 8: Debug.Print Now, String(i, "y"), Format(Now, String(i, "y")): Next
を実行したら不思議な気持ちになったよ。
>>878 工期が押してないのなら、むしろやりがいのある仕事だと思われ。
クソコードをクリーンにできるんだから。
クソコードをクソコードのままメンテしろというのならつらいが。
>>866-867 >>865 は「複数Step読んで、初めてわかる判断文はちょっと・・・」
に反応したネタだと思われ。ネタにマジレス(・A・)カコワルイ
>>881 関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
883 :
仕様書無しさん :02/11/07 09:53
>>882 私はボンバー 鼻くそボンバー
あなたもボンバー 鼻くそボンバー
884 :
仕様書無しさん :02/11/07 10:36
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д` )<
>>883 を捕まえますた
/, / \___________
(ぃ9 |
/ /ヽ(`Д´)ノ ←
>>883 / ∧_二二つ
/ / 人
/ \
885 :
仕様書無しさん :02/11/07 10:43
>>885 関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д` )< 過激派の
>>885 をしめ殺してみますた
/, / \___________
(ぃ9 |
/ /ヽ(゚Д。)ノ ←
>>885 / ∧_二二つ
/ / 人
/ \
>>887 関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д` )< みんな、
>>888 みたいにコピペばかりしてちゃだめだぞ!
/, / \___________
(ぃ9 |
/ /ヽ
/ ∧_二二つ
/ / ∵
/ \ ;__(゚∀。)ノ←
>>888
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´Д` )< ダウンサウジングしますた /, / \___________ (ぃ9 |ヽ(`Д´)ノ< また糞コードだよウワァン / ∧_二二つ
Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ・∀・)< おまえら、おちけつ。 ( ) \_____________________ プ>| | | (__)_)
何だこのインターネットは
>>1-892 関係ないけど、あなたの言葉はあまり良くないよ。
もう少し何とかならないのかね。
いくら匿名掲示板だからといって軽率すぎますよ。
895 :
仕様書無しさん :02/11/07 16:56
┌────────────────────
│あ、どうもスイマセン、
>>893 がお騒がせしました・・・
└───v────────────────
/⌒\ っ /\
/'⌒'ヽ \ っ/\ |
(●.●) )/ |: | すぐ連れて逝きますんで・・・
>冊/ ./ |: /
/⌒ ミミ \ 〆
/ / |::|λ| |
|√7ミ |::| ト、 |
|:/ V_ハ |
/| I | ∧|∧
и .I N /⌒ ヽ)
>>893 λヘ、| I .NV | | |
V\W ( 、 ∪
|| |
∪∪
896 :
仕様書無しさん :02/11/07 16:59
必 死 ?
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д` )< みんな、寝る前に歯をみがけよ!
/, / \___________
(ぃ9 |
/ /ヽ
/ ∧_二二つ
/ / ∵
/ \ ;__(。Д゚)_←
>>897
899 :
仕様書無しさん :02/11/07 17:49
マの住人は学生ばっかりだな。
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 からかゴルァ
それじゃ、俺が今日ほのぼのしちゃったコメントを貼ってやるぞ // 順番に処理をしていく Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( *´∀`) < そうね。順番にね。 (つ つ \________
905 :
仕様書無しさん :02/11/07 20:39
>>902 > 貴様が臭ぇだな!?
風呂に入れよ。
>>904 コメント行が
// 順番に処理をしていく
のみなんですが、AAもコメントアウトしないの?
>>908 904 は C++ や Java でないから大丈夫だよ。
>>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); とかすると思うなぁ。 ここまできたら趣味の問題?
>>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 > ここまできたら趣味の問題?
異常ではないのだろうか。
鈍感になっているのか・・・理解出来ない。
目にチカチカとしみて鼻の奥がツ〜ンとなり大きなクシャミが出る。
断わっておくが私はアレルギー性鼻炎ではない。
これは「趣味の問題」と言って済まされるのだろうか。
>>911 かえって保守性が落ちるよ。
新しくデータを追加するとき、入れる場所を間違えたら動かないじゃん。
テーブルを生成するスクリプトでも書けばいいかもしれないけど、
たかだか20くらいのデータでそこまでするのもどうかと思うし。
>>914 順番に並んでいるか検査するアサートを入れれば良い。
つか、俺なら設計が悪いとか言い出すかも。
俺はif文好きだけどな。
俺はgosub〜returnが好きだけどな。
920 :
仕様書無しさん :02/11/08 14:42
>>914 そういうヤシに限って、ソースをコピペした後ジャンプ先や、変数名を
修正し忘れてる香具師は多い。
VBのような腐った言語だと、変数名をタイプミスしても、デフォルトで新たな
variant型の変数が定義されたと判断するので、コンパイルエラーにもならない。
保守性うんぬん言ってるヤシに限って、ロクにテストのプランも立てていないし、
テスト手順も一通り走らせてみて問題がなければOKと判断してたりするから、
エラー処理などの例外処理コードが腐っている業務アプリは多い。
>>914 追加。
テーブル自体がスクリプト(計算)で生成できるものなら、わざわざテーブル
を作る必要はない罠。
>>920 論点ずれちまうが、VBでもOption Explicit必須にさせるだろ。
>>923 客先が無知なのはある程度仕方ないとしても、そうでもないトコ多いみたい
よ。 実際、漏れそんなコードの保守みたいな仕事やったことある。
しかもコメントや資料もろくになし。
少なくとも、ある会社はそんなソフト使って生命保険を売り込んでいたのも
また事実。
// →栗でポップアップメニュー あ、コメントだった・・。
926 :
仕様書無しさん :02/11/08 17:42
>>925 異常ではないのだろうか。
鈍感になっているのか・・・理解出来ない。
目にチカチカとしみて鼻の奥がツ〜ンとなり大きなクシャミが出る。
断わっておくが私はアレルギー性鼻炎ではない。
これは「あ、コメントだった・・。」と言って済まされるのだろうか。
>>920 つーかVBに限らず業務アプリに限らずエラー処理や例外処理コードが腐っているのは多い。
まともにエラー処理を考えている人が少ないし、ちゃんとした技術が確立している人もすくない。
雑誌や書籍でまともに扱っている本は少ないし、良くあるサンプルコードでは省いてやがる。
ちゃんとしたエラー処理の書き方を知らない人は多いはずだ。
正直、エラー処理っていらないと思う
実際俺のコードのエラー処理は不十分だとは思うなあ. Assertって使い方よくわかんないし. ありえない値とかはelse使って吸収しちゃうしな. if〜except文書くのはDB開くときくらいだ. あ、使ってるのはDelphiね.
>>907 そゆ仕事を「やりがいある」と言い切れる
前向きなあなたがうらやますぃです。
いや、煽りとかじゃなくマジで。
悪いことは言わん。↓コレ読んどけ。 「Visual Basic バグ退治法 ISBN4-7973-0963-6」
>>931 そうか? やり遂げると気分いいぞ。
そう高水準な技術を使ってるわけでもないのに敬われるし。
934 :
仕様書無しさん :02/11/08 18:59
何故年寄りが糞コードを書くか、わかった気がする。
>>932 それ読んだ。でも正直言ってその程度じゃ不十分。
>>927 『学校で教えてくれませんでした。』って言ってるヤシがいたな。 しかも
驚くことに本人曰く、CS(Computer Science)のMBA持ってるんだそうな。
Webで検索したりMLで教えてもらったサンプルコードのコピペで『できました』
って言うてるヤシ多いんとちゃうか?
>>935 オメデトウ!とっとと次のステップに逝けや。
>>937 =932
次のステップに逝ってるからこその 935 の発言じゃないか?
自分の紹介したものが不十分と言われただけで、不機嫌になるなよ。
>919 VBなら、ふつー Opetion Explicit するよな? いや、ひょっとしてキミが 言っているVBはVisual BASICの事じゃないのか? やろうと思えば、C言語の方がよっぽど腐った書き方ができるぞ。 VBは宣言(?)した時点で初期化されることが保証されているが、C言語はそうではない。
>936サン ごめんなさい。
このスレを見ていると会社を辞めたくなる。自分のレベルの低さに 申し訳なくなって…(⊃д`)
>>940 やらないよ。Option Explicit宣言なら当たり前だけど。
>>930 Assertはエラー処理とは何の関係もないです。
場所でこういった条件が成立していなければならない、
それ以外はバグだ、ってときにAssertをいれてチェックするのです。
Assertはいざバグだ、ってなったときにはそのUnitと行番号を表示して
プログラムを停止します。
バグとエラーは違います。バグは絶対にそのようなことが起きないように
取り除かねばなりませんが、エラーは起き得るのでリカバリしなければなりません。
945 :
仕様書無しさん :02/11/08 21:52
946 :
仕様書無しさん :02/11/08 21:55
>>945 あ、キミ、明日から会社に来なくていいから。
さみしくないように
>>942 も一緒にしといたから。
じゃ、残業が付く前にさっさと帰ってね。
お 前 ら オ チ ケ ツ 。
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>>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 なんてやっているのがあった
952 :
仕様書無しさん :02/11/08 23:48
>>950 あ、1 に 「質問する前に Web で検索しろ」 って書いといて。
あと 「丸投げ/宿題おとこわり」
>>950 割り算はコストが高い(高クロック消費)って言うのを聞きかじって
そうしたのかな?
こーゆう全体を見た結果なのか、思いつき思い込みでこうなってるのか
分からないプロが一番嫌だね。
954 :
仕様書無しさん :02/11/09 00:01
コンパイラ作る立場として 糞ソースは参考になるよ
>>953 わり算がイヤなら変数を用意するかなぁ。
956 :
仕様書無しさん :02/11/09 00:11
エラー処理って、きっちり分かってる人は少ないよな。 (俺もえらそうなことはいえない) エラーの種類分け ・プログラムエラー ・実行時例外 ・システム例外 対応方針 ・発生しないようにプログラムコードを書く ・発生した場合に、実行停止しないように続行するよう記述する ・発生した場合に、実行を即時停止する ・安全な方に回避する 対応方法 ・エラーメッセージをそのまま出力する ・ユーザーには詳細を見せない(管理者のみ見られるようにする) ・ユーザーに詳細を見せる ・フラットファイルに出力する ・データベースに出力する たかだか3種類の軸を設定しても、いくらでも選択肢を想定できる。 すべてのシチュエーションを完璧にカバーするのは難しい、っつーか無理に近い。 でも、「見えないようにするのがエラー処理」と考えている奴が多いのも確か。 エラーを見せるのも立派なエラー処理なのに。
CS(Computer Science)のMSだったらな・・
958 :
仕様書無しさん :02/11/09 00:39
>>956 プログラムエラーと実行時例外はどう違いますか?
プログラムエラーって普通、論理エラーの事を指さないか? ユーザーエラーでもないしな。
>>956 まぁ同意なんだが、エラーを出さないのも同じように重要かと。
いちいちダイアログが出るのは正直ウザイ。
メカ系ではメカストップが付いてるので、いちいちエラー処理を書かないこともある。
未だにエラー処理は悩むので、コーディング規約よりエラー規約を
プログラマレベルで統一するのも意味あるかもです。
ま、無理だろうけど。
>>956 何かの本(UMLモデリングのエッセンスだったかな?)で、
「例外とは事前条件が満たされているのに、
事後条件を満たすことができなかった場合である」
と書いてあるのを呼んだ覚えがあります。
しかし、その中の実行時例外とシステム例外に、
どのような違いがあるか分からないので教えていただけませんか?
もしくは出典を・・・
1+1と入力して3がでる、という類のものがプログラムエラー? バグ? どうやって、実行時にみつけるの?
>>960 「規約」ではなくて「仕様」にするべきと思われ。
あんまエラーの分類については意識したことないんだが、O除算エラーや、 short×short=shortでオーバーフローとかはどれなんだ? malloc失敗とか、ファイルオープン失敗は実行時エラーなのか?
>>963 「仕様」では当たり前すぎるような気がする。
○○という場合には△△といったテンプレートのような存在が出来ればいいなぁ、と。
これって「仕様」じゃないよね。
ユーザーエラーとかシステムエラーとか論理エラーとかいろいろあるけど どれがどれに当てはまるのか良く分からない。 まあ、完全にわからないというわけでもないんだがこれらの違いによって 書くエラー処理の方法が変わる気がしない。 エラーは全部throwで例外を発生させればいいんじゃないかと思う。
まぁまぁ、エラーもバグもどっちが出たって 上から怒られんだから、どっちでも大差ないって
>>966 漏れは、例えば数字入力するエディットボックスで、英文字キー押した途端、
例外発生して終了するようなソフトは使いたくないぞ。
>>967 ユーザーエラーは上から怒られない。発生しないに越したことはないが
発生するのは避けられないからその時どうするかというのは重要。
というか話に参加しないならでてくんな。
>>965 >○○という場合には△△といったテンプレートのような存在が出来ればいいなぁ、と。
それなら設計段階の規約で、プログラマで統一するものではないような。
>>967 仕様としてエラーをだすなら怒られないよ。
>>968 トラップすれば良い。
内部でバグが発生した場合、例外発生して終了するだけじゃ問題解決の手がかりが残らない。
メッセージを表示するとかログを取るとかするはず。
だから最終的にはすべてのエラーはトラップされるのが良いと思う。
そのエラーのトラップの処理で十分吸収できると思うけど。
あれ? トラップという言い方はおかしいのかな? キャッチと言った方が良いのかな?
>>971 ネタか? キー入力ならisdigit(c)とかマスク処理するやろ。 何でも
かんでも例外をスローされたら堪らんぞ。
>>973 当然だわな。そのルーチン内でハンドリングできないようなエラーなら、
上に例外をthrowするしかないだろうけど。
>>974 言語処理系にもよるけど、プログラム全体の処理に関わるエラーはスロー
するけど、関数の呼び出し元で結果判断できるようなエラーは戻り値で
返すようにしない?
エラー処理については以下が基本。 1)エラーの捕捉は捕捉が可能な箇所で(通常は低レベルな層) 2)エラーの処理(判断)は、より判断材料が揃っている高レベルな層で エラー処理の面倒さというのは、以下のような点にあるように思う。 ・上記の二条件を満たそうとすると、必然的にエラーの上層への 伝播が必要となる。言語レベルで例外機構をサポートしているならば これはさほど問題ではないが、Cのようにそれをサポートしない言語や C++のように例外が後付けで導入されたため、例外に関する仕様その他が 腐っている言語もある。 ・高レベルな層がエラーに(親切に)対応するには -どのようなケースでどんなエラーが発生する可能性があるか -それは回復可能なエラーか。どのような回復手段が望ましいか といった点を考慮する必要が有る。 これには低位な層の実装への知識や上層・下層間のかなり緊密な連携が しばしば必要になるが、云うまでもなくカプセル化の概念には真っ向から 反する。 現実世界のアナロジーで考えれば、上司への報告は、階層を経る毎に 抽象度や粒度が変化するであろう。取りあえずthrowすれ、という 中間管理職は有能とは見なされない。 # が、各層で一々エラー処理をやるのはやっぱり面倒....
978 にはおおむね疑問だが、 > 言語レベルで例外機構をサポートしているならば > これはさほど問題ではないが、Cのようにそれをサポートしない言語や > C++のように例外が後付けで導入されたため、例外に関する仕様その他が > 腐っている言語もある。 これには疑問だな。 直ちに適切なエラーコードを return すればいいだけだ。 それとも、戻り値をチェックするのに不満があるのか? 例外が使えるとスッキリ書けるのは確かだけど。
>直ちに適切なエラーコードを return すればいいだけだ。 戻り値の取りうる値がすべて正常値のときはどうすればいい? int div(int a,int b){ return a / b;} なんかは。 >それとも、戻り値をチェックするのに不満があるのか? ある。 めんどくさい。
>>981 次スレ。
> int div(int a,int b){ return a / b;}
戻り値の取りうる値がすべて正常値の関数は普通、絶対にエラーが無いか、書かない。
> めんどくさい。
まあ同意するけど、仕事でやる時にまでブーブー文句言う程ではない。
983 :
リアル厨房 :02/11/09 03:18
そうか、戻り値ありの関数にはエラーコードを返させれば 良かったんだ。何も知らなかった。 今までは、エラー検出時にはソフトウェアリセットの操作bitを 叩いて自爆するように組んできたんだけど、少しは考えるか。 Device設計するハード屋には必ずソフトリセット機能による 完全復帰を要求してるし。
984 :
仕様書無しさん :02/11/09 03:19
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | 1000取りたい! \________ _______ |/ ∧,,∧∩ 目ミ ゚Д゚ ミ || (ミ ミ || ミ ミ〜 || ∪ ∪
まもなくここは 乂1000取り合戦場乂 となります。
\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
http://big.freett.com/scheme_a/num1000.swf
988 :
リアル厨房 :02/11/09 03:26
>983 デバッグ初期のボードなんか、意味も無く初期リセットを繰り返すので、 LEDが全点灯/消灯を繰り返すもんで、美しいぞ。 バグったって分かり易いだろう!
今だ! 1000ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ
今だ! 3ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ
アヒャーー ∧∧ (゚∀゚ )⌒ヽ ≡≡ = = - ,.、,,U‐U^(,,⊃_ /i ≡≡≡ = = - ;'゚∀゚ 、、:、.:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i = ≡≡≡ = = - '、;: ...: ,:. :.、.:',.: .:: _;.;;..; :..‐'゙  ̄  ̄ `" ◎ ''`゙ ◎ ´´ - = ≡ = = -
アヒャーー  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ ) (´⌒(´ ⊂(゚∀゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ
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取り合戦に遅れちゃうよ〜〜〜 。 ∧_∧。゚ ゚ (゚ ´Д`゚ )っ゚ (つ / アァァァァ | (⌒) し⌒^
1000!!!
997 :
仕様書無しさん :02/11/09 04:06
_∧ ∧ ∧ ワーイ _∧ ∧ ∧ マテー (_・ | (・∀・) (_・ | (´∀`) | Ю⊂)_√ヽ | Ю⊂)_√ヽ (  ̄ ∪ )^)ノ (  ̄ ∪ )^)ノ || || ̄|| || ≡≡≡≡ || || ̄|| || ≡≡≡≡ || || || || パカッパカッ || || || || パカッパカッ
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 | ../ / / :::::::::::::::::\ / /| \┌┌┌┌┌/./ /::: :::::::::::::::::\ / ( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄ /::::::::::: ::::::::::\ / ヽー─¬ー〜ー――― :::::::::::::
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。