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

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

■過去スレ

この会社辞めようと思ったソースコード
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=997104873&ls=50

■関連スレ

この会社辞めようと思った上司の一言
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=992259973&ls=50

この会社辞めようと思った会社の規則
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=996827150&ls=50

なんでこんな奴と給料が一緒なんだと思う瞬間
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=1000730743&ls=50
22:01/09/21 21:45
2 get
3仕様書無しさん:01/09/22 00:36
/* 転職先がきまった。このソースにつきあうのもあと2週間…(感涙)*/
4仕様書無しさん:01/09/22 00:44
>>3
転職先の会社で最初の仕事として、前任者からの引継ぎが発生する。
そしてそのソースを見て貴方はこうつぶやく。
「この会社、辞めよう・・・」
5仕様書無しさん:01/09/22 04:04
>>4
その晩、ふらりとここを訪れ、そしてこう書く。

「信じられねぇ!やっと決まった転職先のソースコード、
 前の会社以下だゴルァ!! くっそーやめてやるぅ!!」
6仕様書無しさん:01/09/22 04:12
>>5
そして>>3に戻る。以降繰り返し。
7仕様書無しさん:01/09/22 09:15
世の中にまともなソースコードがあるなら教えてくれ!
8sage:01/09/22 11:08
>>7
きちんと動いてテストされてメンテしやすいコードを見たことない?
9仕様書無しさん:01/09/22 11:22
> 3-6
わかりやすいループだ。

>>7
自分のはどうなの?
10仕様書無しさん:01/09/22 13:16
>>7

void main()
{
printf( "Hello World\n" );
}
11仕様書無しさん:01/09/22 13:26
>>10
まともじゃないぞ、それ。。。(笑)
12仕様書無しさん:01/09/22 13:41
>>11

int main(int argc, char *argv[])
{
  printf( "Halo Warld\n" );
}
13仕様書無しさん:01/09/22 13:58
なぜ素直に

int main(void)
{
  printf("hello, world\n");
}

って、書かないんだ?
14仕様書無しさん:01/09/22 14:02
>>12-13
int main()にするなら、なにか戻せよ!
15仕様書無しさん:01/09/22 14:34
Hello World程度でこれか・・・・まともなソースコードなんて存在しない理由がよくわかった気がする(ww
16細かい奴め:01/09/22 14:36
>>14
int main(int argc, char *argv[])
{
  return printf( "Halo Warld\n" );
}
17仕様書無しさん:01/09/22 14:39
>>14
スマン。これで満足か?

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
  printf("hello, world\n");
  return(EXIT_SUCCESS);
}
18仕様書無しさん:01/09/22 15:13
//***ワケ分からんからコメント化しとく。***//
//***分かった人は直しといてね(はぁと)***//

//**このへんにいろんなソース**//

//***ね、ムズイっしょ?***//
19♯6411:01/09/22 17:19
即席ツール書くときは
int main(int c, char **v)
とか書きますが何か?
20仕様書無しさん:01/09/22 17:47
>>19
誰もあなたに追求などしていませんが何か?
21 ◆yEF18Xi6 :01/09/22 19:43
>>19
トリップは全部半角で書きますが何か?
22仕様書無しさん:01/09/22 22:47
色々と心当たりのあるヤツらが煽りあってる(ワラ
23 ◆yEF18Xi6 :01/09/23 09:06
test
24仕様書無しさん:01/09/23 09:23
>>17
#include <stdio.h>

int main(void)
{
printf("hello, world\n");
return 0;
}

で良いだろ。
別にstdlib.hインクルードして
EXIT_SUCCESSなんて使うなや。

ダサ。
25仕様書無しさん:01/09/23 09:53
>>24 同意
26仕様書無しさん:01/09/23 14:00
GPL なのにコピペ&非公開のソースコード
27仕様書無しさん:01/09/23 14:27
#include <stdio.h> int main() { printf("hello Wolrd\n"); return 0 }
28仕様書無しさん:01/09/23 14:31
int main(void)ではなく、int main( int ...(以下略)
29仕様書無しさん:01/09/23 14:45
しゃあぷいんくるうど かっこえすてぃでぃあいおおぽちえいちかっことじ
いんと めいん かっこいんとああぐしー かんま きゃらあすたーああぐぶい かっことじ
かっこ
 ぷりんとえふまるかっこだぶるこーと はろーわーるどびっくりえんえぬ だぶるこーと
 まるかっことじ せみころん
 りたーん ぜろ
かっことじ
30仕様書無しさん:01/09/23 14:46
>>29
ご:りたーん ぜろ
せい:りたーん ぜろ せみころん
31仕様書無しさん:01/09/23 14:47
えぴすてーめーさんですか?(w
32仕様書無しさん:01/09/23 15:26
つーかばぐってっぞ。
めいんのひきすうは
かっこいんとああぐしー かんま きゃらあすたあすたーああぐぶい
だろ?
ぶいぶい。
33仕様書無しさん:01/09/23 19:33

/* 2001/09/23 休日出勤 コード改修
* >>13, >>14さんはこれで勘弁してくれるだろうか・・・
*/

int main(int argc, char *argv[])
{
  printf( "Halo Warld\n" );
  return 0;
}
34ミ(゚◎゚)ミ  ◆c2uMaIpA :01/09/23 20:05
>>33
ワーニング:argcが使用されていません。
ワーニング:argvが使用されていません。
35仕様書無しさん:01/09/23 20:19
http://www.st.rim.or.jp/~phinloda/cqa/cqa6.html#Q5
>規格には、
>int main (void) {/*...*/}
>として定義することも、二つの仮引数をもつ関数
>int main (int argc, char *argv[]) {/*...*/}
>として定義することもできる、と書かれています。これ以外の書き方は規格にはありません。いずれかの書き方をしなければいけません。

アホらしい
36仕様書無しさん:01/09/23 20:46
>return 0;
>}

>で良いだろ。
>別にstdlib.hインクルードして
>EXIT_SUCCESSなんて使うなや。

嬉々として数字を安易にコードに埋め込むなや。
ださいんじゃ、ボケ。
37仕様書無しさん:01/09/23 20:54
よくある戻り値にマクロを使うのもダサいと思うけど。
38お胸おっぱい:01/09/23 20:55
>>35 のリンク先
ぉぃぉぃ、じゃ

int main(int argc, char *argv[], char *env[])

は許されないと言うわけか…

>>35
君は一々 0 を定義するの?
39お胸おっぱい:01/09/23 20:56
× char *env[]
○ char *envp[]
40仕様書無しさん:01/09/23 21:03
>>38
え? char* の引数ふたつってできるの!?
41仕様書無しさん:01/09/23 21:13
>>38
ソースコードを ANSI C 準拠にしたいなら許されませんが。

>>40
UNIX 系だと、三番目の引数で環境変数が取得できる環境もあります。
42仕様書無しさん:01/09/23 22:02
>>36
ハァ?
その短さで
いちいちdefine定義するのか?
ちみのエディタは数行しか
表示できないようだな。
イッテヨシ。
43仕様書無しさん:01/09/23 22:06
>>42
マクロ定義とエディタの表示行数の関係が
いまいちよくわからないんだけど。
44仕様書無しさん:01/09/23 22:22
>>36
マクロ定義を使うメリットは、主に

- 環境によって値が違うのを吸収する
- ソースコードの読みやすさに影響する(たとえば NULL, 0 を使い分ければ、変数や
 戻り値の型が整数なのかポインタなのか分かる)

の二つだと思うけど、EXIT_SUCCESS に関してはどちらも当てはまらないよね。個人的
には 0 と書いても気にならないな。

煽りでなければ、なぜ EXIT_SUCCESS を使うべきと思うのか、もうちょっと詳しく書いて
ほしい。
45仕様書無しさん:01/09/23 22:28
>>43
44の人が書いているように
可読性云々の話からです。
1つのソース、かつ、数行で有れば
別に0と書いてあってもなんら問題が
無いと考えたから。

もちろん、多数のソース、
表示範囲を超えるソースなどになれば
可読性や、戻り値をそろえるために
マクロ定義するのが妥当。
つーか、仕事ではそうしないと駄目。
46仕様書無しさん:01/09/23 22:40
>>45
みんなsageで名無しだから誰が誰だかよくわからんが。

>>42
を読むと、数行しか表示できないから*わざわざ*defineを
使っているのか?と読めたので、
数行しか表示できないエディタでdefineすることのメリットは?
と、思っただけでした。
47 :01/09/23 23:41
EXIT_SUCCESSなんか普通使わんと思うが
これは仕事以外で作ったこんな数行のコードだったら0でいいだろうし
仕事だったらエラーを1種類しか定義できないEXIT_XXXなんか使わんだろ
48仕様書無しさん:01/09/24 03:49
Hello Worldでこんなに荒れるのは初めて見た(w
49仕様書無しさん:01/09/24 06:31
みんな暇なんだよ、きっと。
でなきゃ徹夜続きで頭がウニになってるとか。
50仕様書無しさん:01/09/24 07:42
>>7
どうですか?
プログラムでは無いが、一応ソース

<html>
<head>
<title>hello world</title>
</head>
<body>
hello world
</body>
</html>
51仕様書無しさん:01/09/24 09:38
>>50
全然まともじゃないんだけど…

HTML4.01 Transitional としてチェックしました。
5個のエラーがありました。このHTMLは 66点です。タグが 4種類 4組使われています。


先頭の数字はエラーのおおまかな重要度を 0〜9 で示しています。少ない数字は軽く、9 になるほど致命的です。0 は減点対象外のごく軽度のエラーで (グレイのかっこつき) でメッセージされています。

8: line 1: 最初の記述が DOCTYPE宣言ではありません。 → 解説 2
1: line 1: <HTML> には LANG 属性を指定するようにしましょう。 → 解説 106
0: line 4: (<HEAD>〜</HEAD> 内に <LINK REV="MADE" HREF="mailto:〜"> が含まれていません。) → 解説 109
0: line 4: (<HEAD>〜</HEAD> 内に <LINK REL="NEXT" HREF="〜"> などのナヴィゲーション用のリンクが含まれていません。) → 解説 110
4: line 4: <HEAD>〜</HEAD> 内に <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="〜"> が含まれていません。 → 解説 113
52仕様書無しさん:01/09/24 11:26
1.文章型宣言を行いましょう。
2.HTMLには言語情報を追加しましょう。
3.HEAD内に文字コード情報を追加しましょう。
4.BODYはブロック、SCRIPT、INS、DEL要素以外を持つことができません。
文字列はブロック要素(例えばP)の中に入れましょう。

ナビゲーション用のメタ情報はユーザーエージェントに
ドキュメントの方向性を示します。
サイト構造が存在する場合には使用しましょう。

ナビゲーション、著作者情報を除く修正版:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html dir="ltr" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>Hello world.</title>
</head>
<body>
<p id="msg">Hello world.<br>This file is standard HTML document.</p>
</body>
</html>
53仕様書無しさん:01/09/24 11:45
>>52
言語が"en"で
charset=Shift_JIS
で良いのか?

漏れはhtmlに詳しくないのだが
何か変だと思われ。
54仕様書無しさん:01/09/24 14:06
age
55お約束だが。:01/09/24 14:23
>52
・大文字にしない。
・最後にピリオド、感嘆符などを付けない。
・helloの後にはカンマを付ける。
基本からやり直してきたまえ。
56仕様書無しさん:01/09/24 15:02
>>55
お約束うざい
もっと建設的な意見はないのかね
57仕様書無しさん:01/09/24 16:36
HTMLになると急に元気になる奴ら発見!
58仕様書無しさん:01/09/24 16:40
>>57
Webデザイナー、Webプログラマーは、無能軽薄野郎の
隠れ蓑。
59仕様書無しさん:01/09/24 18:57
じゃあ

public class Harowarudo{
 public static void main(String[] args){
  System.out.println("Harowarudo");
 }
}
6052:01/09/24 21:58
>>55
すみません。適当すぎました。

>>53
英数字しかないのでjaは不自然かと。
isoやasciiにしなかったのは掲示板自体がSJISの為。
文字コードと言語情報は競合しないはず。
http://www.w3.org/TR/1999/REC-html401-19991224/struct/dirlang.html
を参照のこと。

著作者情報、スタイル、スクリプト追加

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html dir="ltr" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta name="author" content="Author">
<meta name="copryight" content="© 2001 Author, All Rights Reserved.">
<link rev="copyright" href="http://domain/copyright.html">
<link rev="made" href="mailto:user@domain">
<title>hello, world</title>
<style type="text/css" media="all">

body {background-color:#ffffff;
color:#000000;}

#maintitle {font-size:2em;}

</style>
<script type="text/javascript" defer>

function go(url,time) {
setTimeout("location.href='"+url+"'",time);
}

</script>
</head>
<body onload="go('http://www.2ch.net/',3000)">
<p><h1 id="maintitle" lang="en">hello, world</h1><br>
3秒お待ちいただくと2チャンネルへ移動します。</p>
</body>
</html>
6152:01/09/24 22:00
>>57 >>58
一応、Cもできる。

#include <stdio.h>

#define MESSAGE_HELLO "hello, world"

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

puts(MESSAGE_HELLO);

return 0;
}


#include <windows.h>

#define MESSAGE_HELLO_CAP "hello, world"
#define MESSAGE_HELLO "hello, world on Microsoft Windows"

INT WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , LPTSTR lpCmdLine , int nCmdShow ) {

MessageBox(NULL,MESSAGE_HELLO,MESSAGE_HELLO_CAP,MB_OK);

return 0;
}
6260:01/09/24 22:08
また大保してた。鬱だ寝よう。
BODY内修正:
<h1 id="maintitle" lang="en">hello, world</h1>
<p>3秒お待ちいただくと2チャンネルへ移動します。</p>
63仕様書無しさん:01/09/24 22:10
後半、#defineよりもリソースへ持っていく方が好みかな...どーでもいいことだが。
64仕様書無しさん:01/09/24 22:18
OpenGLでメイン関数にglVertex3fが7800個ほど
並んでいるソースがあった
65仕様書無しさん:01/09/24 22:28
>>61
だから、この長さのソースで
文字列とかdefineするな。

それだったら、潔く
defineやメッセージを
ヘッダへ追い出せ。
66仕様書無しさん:01/09/25 02:06
program helohelo(input,output);

var
  begin
   writeln('Hello,World!');
  end.
67仕様書無しさん:01/09/25 08:20
>>64
さすがにそれはプリコンパイラで自動生成だろうな
6861:01/09/25 10:18
まったく関係ない話題で長引いて大変申し訳ありませんが。
>>65
一瞬message.hにしようか迷ったけど、短いので分けても無駄と思った。
>>63
これも迷ったけど、やはり主処理より長くなってしまうのでやめた。
69仕様書無しさん:01/09/26 22:19

新人の子が作ったソースでこんなものがありました。

時刻の文字列を、簡単な法則で数値に変換後、DBに登録するという処理。
例:
00:00→0
00:30→1
01:00→2
01:30→3
(以下略)

彼女の作ったソース(Java)
if (inputdate.equals("00:00")){
  daynum = 0;
} else if (inputdate.equals("00:30")){
  daynum = 1;
} else if (inputdate.equals("01:00")){
  daynum = 2;
} else if (inputdate.equals("01:30")){
  daynum = 3;
}...(以下略 23:50まで続く)

しかもバグがあった。(時刻の文字列をコピペミスっていた)
バグがなけりゃ気づかなかった。
こんなロジック作ったら、全時刻テストしなきゃじゃん!!
ロジック考えろよっ。

そんな彼女は力技の単調作業大好きです。

なんで新人はif文大好きなんでしょうか?
70仕様書無しさん:01/09/26 22:24
>>69
ここら辺はコツの部分なので、
新人なら、手取り腰取り教えてあげればよいかと。
71仕様書無しさん:01/09/26 22:38
>>69
俺が最初にプログラム組んだときも、2行に1行はIF文だった。
わかりやすくて簡単でためになるソースをいくつか与えて、お手本にさせると良いと思われます。
7269:01/09/26 22:39
まあ、「この会社をやめようと思ったソース」ではないけど。

腰取りね。(w
73♯6411:01/09/26 23:40
腰を取って女の子が会社辞めなくてよかったね♪

ウツダシノウ…
74仕様書無しさん:01/09/26 23:43
>>69

漏れは解りやすいから、if文好きだけど。  じゃあ模範的解答きぼーん。
75仕様書無しさん:01/09/26 23:44
>>74
数値に変換して
30で割れ。
76仕様書無しさん:01/09/26 23:46
>>69

って言うか、date型でdbに入れろYO!
77仕様書無しさん:01/09/26 23:50
>>75

if (inputdate.equals("00:00")){
  daynum = 0;
} else if (inputdate.equals("00:30")){
  daynum = 30;
} else if (inputdate.equals("01:00")){
  daynum = 100;
} else if (inputdate.equals("01:30")){
  daynum = 130;
}...(以下略 23:50まで続く)

trueDaynum = daynum/30; //はぁ
78仕様書無しさん:01/09/27 00:01
>>77
なんで文字列をif文で変換するんだよ。
そんなの":"を文字列から削除して、
atoiで数値にしろ。

オマエDQNか?
79仕様書無しさん:01/09/27 00:03
>>78
ファームおじさんですか?
80仕様書無しさん:01/09/27 00:08
Javaじゃないのか>>78
81仕様書無しさん:01/09/27 00:12
>>77
130/30 = 3 になってないぞ(藁
82仕様書無しさん:01/09/27 00:15
>>77
っていうかムダじゃんYo!
83仕様書無しさん:01/09/27 00:22
>>76
ソースコードじゃないが、主要なデータがことごとく varchar ってデータベースを
見たことあるな。日時も全部 varchar で、しかもテーブルによって書式が違うの。
84仕様書無しさん:01/09/27 00:23
netanimajires , kakkowarui
85仕様書無しさん:01/09/27 00:34
78==84?
8669:01/09/27 01:08
まあ模範的ロジックはどうでもいいが、
if文コツコツ書いてあったのが面白かったわけで…。(しかもバグあり)

>>73
腰は取ってないが、もう彼女は辞めちゃいました。(w

その子の話 その2
朝から夕方ぐらいまでソース保存もせずに作業していたら、
PCがフリーズして1日の作業があぼーん。
その翌日から彼女のディスプレイには、「セーブ」と書かれた付箋紙がありました。

また何日かしたら今度は、マシンが壊れたらしくローカルに保存してあったソースがあぼーん。
ネットワークにバックアップくらいしているかと思いきやなんにもしていない。
翌日には「バックアップ」と書いた付箋紙も追加されてました。

ソースコードの話じゃなくてごめん。
87仕様書無しさん:01/09/27 01:34
ソース保存しないとコンパイルできなくない?一回もしてなかったの?
88仕様書無しさん:01/09/27 03:36
//8/29 今日もほか弁(280円)
↑こんな日記を見つけた時。
89仕様書無しさん:01/09/27 03:48
>>88
笑った。他のと微妙に論点が違ってるし。
90仕様書無しさん:01/09/27 20:41
#define TABLE_NAME_1 "emp"
#define TABLE_NAME_2 "dept"

かえってわかりにくくなってるだろうが!
91仕様書無しさん:01/09/27 21:00
このスレ大好き
92仕様書無しさん:01/09/27 21:56
>>90
激しくワラタ。
93仕様書無しさん:01/09/27 22:56
>>90 似たようなもの

#define CODE_00 0x10
#define CODE_01 0x01
 .
 .
#define CODE_FF 0xff

なんで誰も何も言わなかったか。
そのヘッダ作ったのが上司だったもので。

これが理由ではありませんが、もう数年前にやめてます。
94仕様書無しさん:01/09/27 22:57
すまん、#define CODE_00 0x00 ね。鬱氏
95仕様書無しさん:01/09/27 23:02
そうゆう意味では俺も相当変な#defineの使いかたしてるな。
ここに書かれる日も遠くないか…
96仕様書無しさん:01/09/27 23:06
>>87
まぁ、VBはセーブしなくても実行、コンパイルは出来なくもないが、
そんな恐ろしいマネはしたくはない(w

#その程度の人だったっていう解釈もあるけど(w
97仕様書無しさん:01/09/27 23:21
まぁ、1日は多すぎるが、2〜3時間なら昔からPGやってたならよくある体験談だよな。
そういう時代を経たからこそ「こまめにセーブ」「PC以外にバックアップ」が当たり前という認識を持てるようになったわけで。
9869=86:01/09/27 23:45
うんうん。VBかOffice系のVBAだったと思う。
俺がよくやった過ちは、
ネットワーク上のファイルを削除しちまったらごみ箱になかったこと。
99仕様書無しさん:01/09/27 23:50
if ( xx == 0 ) {
....................... /* 仕様書参照 */
}
else {
.................... /* 仕様書参照 */
}

kansuu( xx ); /* 変更履歴参照 */



ちったあ説明書け!
100仕様書無しさん:01/09/28 00:05
>>98
ブリーフケースで同期していて、ノートで消したら全部消えたってのがあったな。
101仕様書無しさん:01/09/28 22:58
>>94はないほうがワラエタ
102仕様書無しさん:01/09/28 23:19
<input type="submit" name="MaeB" value="前へ">
<input type="submit" name="TugiB" value="次へ">



さすがにどうか思ったぞこれは。
103仕様書無しさん:01/09/29 00:17
int *p;
...
p = (int *)(((unsigned int)p) + sizeof(int));


p++; で済むんですけど…。
104仕様書無しさん:01/09/29 00:22
スレ違いかもしれないけど、、、
皆、本気で仕事に取り組んでいるかい?
そもそも、仕事に本気で取り組むってのはおかしいのかい?

いいかげんな設計に、いいかげんなコーディング。
例外で落ちても気にもとめない。
そんな連中に囲まれて1年。
仕事のプログラミングに本気を出すのが馬鹿みたいになってきた。

このスレを見ていると、どこに行っても、駄目な奴は沢山いるんだ。

なぁ、みんな、もっとマジメにやろうよ。
こんなこというのは変かい?
105仕様書無しさん:01/09/29 00:27
>>103
普通にインクリメントできない場合でも
(int *)((char *)p + sizeof(int))
って書かない?
一応、ポインタと変数は区別したほうがいいと思う。
106仕様書無しさん:01/09/29 00:29
>>104
他人の仕事は気に入らないもの。
独立して一人で開発すればいいんじゃない。
本当に良いシステムは、共同作業からは生まれない。
107すぷーん:01/09/29 00:30
>>104
そういう場合は転職、転職(w
世の中にはスゴイ人達がたくさんいるよ。
108仕様書無しさん:01/09/29 00:41
>>104
と思ったならピンで働こう
109仕様書無しさん:01/09/29 01:15
>>105
> 一応、ポインタと変数は区別したほうがいいと思う。
あなた Cで組むのやめて 逝ってくだちい
110shige:01/09/29 01:17
              / ̄ ̄ ̄ ̄ ̄
     ,__     |  此処もひさしぶりだ....。
    /  ./\   \_____
  /  ./( ・ ).\       o〇       ヾ!;;;::iii|//"
/_____/ .(´ー`) ,\   ∧∧         |;;;;::iii|/゙
 ̄|| || || ||. |っ¢..|| ̄   (,,  ) ナムナム   |;;;;::iii|
  || || || ||./,,, |ゝ iii~   ⊂  ヾwwwjjrjww!;;;;::iii|jwjjrjww〃
  | ̄ ̄ ̄|~~凸( ̄)凸 .(  ,,)〜 wjwjjrj从jwwjwjjrj从jr
111仕様書無しさん:01/09/29 01:19
>>105 これって、環境によって結果が変わるような気がする。
つか、意図がわからない。
112仕様書無しさん:01/09/29 01:27
>>109
pointer 64bit, int 32bit の環境だと 103 のコードは間違いなくハマるぞ。
113仕様書無しさん:01/09/29 02:20
>>105
常陸マン(それもさS)発見!
114げんなり:01/09/29 02:45
>>93
さらに似た様なもの

「コーディング規約:ソースファイル中にマジックナンバー(数字)を
置くことを禁ずる。数値はかならずマクロ定義すること」

そして出来たもの。

suba.h
/* サブシステムAのヘッダ */
#define SUBA_NULL 0
#define SUBA_ZERO 0
#define SUBA_FALSE 0
#define SUBA_TRUE 1
#define SUBA_1 1
#define SUBA_ONE 1
#define SUBA_ICHI 1
#define SUBA_2 2
#define SUBA_3 3
/* 以下、SUBA_10までは連番で続いて… */
#define SUBA_17 17 /* hogehogeで使用する定数 */
#define SUBA_20 20 /* hemohemoの仕様変更により追加 */
#define SUBA_26 26 /* fugafugaで使用する定数 */
/* 等々、使用する数値がバラバラと続き… */
#define SUBA_100 0x64
#define SUBA_FF 0xFF
#define SUBA_FFFF 0xFFFF

subb.h
/* サブシステムBのヘッダ */
#define SUBB_NULL 0
#define SUBB_ZERO 0
/* 以下同様… */

と、これが30くらいあるサブシステム毎に…
115仕様書無しさん:01/09/29 03:07
>>114
マジックナンバーという言葉が何を意味してるのか全然理解していない人がよくやってるね、それ。
規約書いた人もそういう意味に取られるとは思わなかったろう。
日本語って、難しいね。
116仕様書無しさん:01/09/29 03:11
サブAか、スバかとおもた(w
しかし、無駄な労力だな。
117仕様書無しさん:01/09/29 03:27
>>109

禿同。

簡単なことなんだがなー。
118仕様書無しさん:01/09/29 03:40
>114
ICHIの次が2なのに萌え
119ミ(゚◎゚)ミ  ◆c2uMaIpA :01/09/29 11:00
>>118
「1と書くとIと読み間違うからだ」なんて理由が返ってくることを予想。
120仕様書無しさん:01/09/29 11:08
>119
ついでに、ONEとICHIの違いも予想してみて欲しいな。馬鹿な俺にはサパリ分からん
121仕様書無しさん:01/09/29 14:05
そして、SUBA_ZEROがあってSUBA_0が無い理由もしりたいな。
>>121
残業中にSUBA_0というのを見ると、スバオーと読み間違い、
急にスパ王が食いたくなってコンビニに逝ってしまうから。
123仕様書無しさん:01/09/29 18:19
subb.hにsuba.hと同じ定義をするところがイタイ。せめて名前を共通にしてインクールドしてくれ。
124DQNPG:01/09/29 20:29
>>115
っていうか「マジックナンバー」って何よ?
教えてクンでスマソ
125仕様書無しさん:01/09/29 20:41
>>124
意味を持つ数字。

意味があるなら数字の変わりに「意味に対応する名前の定数」を定義して、
そっちを使え、というのがソフトウェア工学の教え。

これにより、次の利点が得られる。

- ソフトウェアが仕様変更に強くなる
 数字を埋め込んであると変更箇所が散らばる(全部の数字を書き換える必要がある)が、
 定数定義なら一箇所の変更で済む

- コードの可読性が向上する

 if (cmd == 3)
  /* do something */;
 if (cmd == CMD_IGNORE)
  /* do something */;

 下のほうが読みやすいでしょ?


ソフトウェア工学関連の本を読むことを強く勧める。下のスレの 14 にいろいろ挙がってる
が、とりあえず「プログラミング作法」からどうぞ。

推薦図書/必読書のためのスレッド3
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=1000542653
126仕様書無しさん:01/09/29 21:32
constの方が良かったんじゃなかったっけ。
127仕様書無しさん:01/09/29 22:09
>>126
何と比較して?
>>12
#defineと比較してでは?
129>>105:01/09/29 23:41
確かにポインタのサイズは普通に宣言するとintサイズになるんだけど、16ビットと32ビット混在環境だったし、16ビットから32ビットに変更するときそういう表記すると問題になると思って。
>>105に反論してる人はnearとかfar使ってた?
130105:01/09/29 23:46
あと、「ポインタに変数を代入しています」とかいうワーニング出ません?
131105:01/09/29 23:46
キャストしてるのに出ないよね。
132仕様書無しさん:01/09/30 12:09
>>126
Cだと
const int NUM = 10;
char buf[NUM];
とかやるとエラーになるから。
こういう事したい時はenum使わないと出来なかった。
(エラーにならんコンパイラもあるけど)

それにconstの認知度が低かったせいもあるんじゃないかな。
俺だけかも知れんけど、まあ昔の話だから。
133♯6411:01/09/30 13:59
>>129 っていうか小細工不要のlvalueを
わざわざキャストしてるのがカコワルイと思わないか?

Cでは、intとポインタのストレージサイズが
違ってもいいことになってるぞ。

ってか漏れはmsdos大嫌いで、farナニソレ? な少年だった。
134DQNPG:01/10/01 19:25
>>125
レス、サンクスコ。

推薦図書/必読書のためのスレッド3
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=1000542653
の書籍を読んで、勉強します。
135仕様書無しさん:01/10/02 04:18
>>133
int の配列が前提ならそもそもポインタ+増加バイト数なんてしないって。
可変長のデータを読み出すから・・・
Windows3.1でもfarは必要だったよ。
136仕様書無しさん:01/10/07 15:40
あげてみる
137 :01/10/16 01:41
再テストが面倒だからって、テストデータ、ねつ造するのはやめよう。
138仕様書無しさん:01/10/18 15:38
memset((void *)hoge,

みたいなヴォイドポインタのキャストをしているソースを
みたとき。この人らは、なんでvoid *というのがあるのか
意味わかってんだろーか、不安になった。

っつーか、警告でたら何でもキャストをする習慣が
ついているんだろうな
139仕様書無しさん:01/10/18 16:24
>>138
べつに、そういうのはいいんじゃないかな?
結合法則は知ってるけど、結構余剰に括弧付けたりするし、
コンパイル時に完全に消滅するのなら問題ないと思ってる。
140仕様書無しさん:01/10/18 23:50
ソースじゃないんだけど、今の職場
 memset
memmove
使ったら怒られる。
 memsetは使わず、ループで初期化しろ!
 memmoveじゃなくてmemcpyを使え!

マジです。ネタじゃない。なんでも使っている某社のコンパイラに
バグがあるのが原因だそうですが、それでも・・・・
141仕様書無しさん:01/10/18 23:57
>>140
コンパイラのバグなら仕方ないじゃん。
ASMで書かせろって事?
142仕様書無しさん:01/10/18 23:58
>>139
いや、ほかにも変なキャストありまくりだから
ダメです。っつうか、
int hoge(int x)
{
という記述で「?」とかされたのよん。
なんで、
int hoge(x)
int x;
{
でないの、みたいな。
こいつらK&Rの1版で停止しているのか。
143仕様書無しさん:01/10/19 00:15
>>140
自分でmemset,memmoveを実装すればいいじゃん。
ていうか、ライブラリにバグがある場合は
ふつーそうしないか。
144♯6411:01/10/19 00:40
>>140
memmoveが使えない場面で
memcpy使ってどーすんだよ?
って声が聞こえてくる…
145組込み系:01/10/19 00:56
うちとこは、コンパイラの用意してくれてる関数は、
すべて一箇所でラップして使ってる。
勝手に使うとチェックされる。
146組込み系:01/10/19 00:57
あ、だから辞めようと思ったわけじゃないっす。
memsetとかの話を聞いて思っただけ。
147140:01/10/19 01:57
>>143
そー言ったら「昔それでうまくいかなかったからやってはいけないことになっている」
と真顔で言われた。これだから、工場の人間は向上心がないっつーか・・・

駄洒落のつもりではない
148仕様書無しさん:01/10/19 10:13
バグはコンパイラとライブラリのどちらにあるの?
149仕様書無しさん:01/10/19 10:45
>>147
工場に勤めているから、ってわけじゃないだろう。
向上心がないのは

>>148
人にあり、ってことだろう(藁
150仕様書無しさん:01/10/19 10:48
MyMemSetとかMyMemMove
とかいう具合に名前を変えて
自分版を実装するってのはどうよ?
151仕様書無しさん:01/10/19 10:50
>>145
組み込み系は、それは常識ですね
標準のライブラリでスタックどか食いしてたり、
printfみたいに、どこに出力するんやー、とか
malloc使うなゴルァって場合があるし
152仕様書無しさん:01/10/19 22:56
>>149
同意ではあるが、漏れが派遣された工場の人間も
確かに向上心なかったな。「今まで5年これでやっているから」とか
すぐ言い訳をする。

構造体3つ掘り下げて変数を参照するのを延々と書いてて、1行が80文字折り返しで
4行とかなっているから、最後の構造体のアドレスをポインタ参照するように変えたら
「どこを指しているのかわかりにくくなるから、余計なことはしないで下さい」と叱られたこともあるな・・・
153152:01/10/19 22:57
ぱなそに、なんて口が裂けても言えない。
154仕様書無しさん:01/10/19 23:18
>>152
オレの知っている工場だったりして
豊橋にないかい?(藁
155152:01/10/20 00:16
>>154
豊橋は出張で行ったことはあるが、残念ながら門m
156≒154:01/10/20 00:23
>>155 関東行っても頑張れよ。
157仕様書無しさん:01/10/20 00:44
VBでなんなんだが、

Public Function Hoge()

if 正常 then err.raise HogeHoge
elseIf 異常 then err.raise HogeHoge + 1

exit function

select case err.number

case HogeHoge
'正常終了 何もしない。
  case HogeHoge + 1
MsgBox("エラーだ!ゴルァ")
End Function

おいおい、If文で判定できるものをわざわざerr.raiseするなよ・・・・
しかも、正常終了するときは、何もしないし。
これってgoto文だよな・・・・
しかも、関数の中でMsgBox使うし。判定関数として使えないだろ・・・・
158仕様書無しさん:01/10/20 01:23
>>155
ああ、門*か、わかった。

あそこは家畜の集まりだな(藁
159仕様書無しさん:01/10/20 01:33
static const char XXX_20001[] = "20001";

エラーコードの切り方がこんな感じ。あんま意味ない。
160仕様書なしさん:01/10/20 01:41
>157

漏れもVBで似たようなのをメンテさせられたことがある。
しかもそのシステムはなおかつ同じ処理が全く関数化されずに
すべてべた書きだった。30行くらいの同じ処理が平気で10個くらいあっ
た。しかも動いているシステムのくせにバグ有りまくり。クライアントが
3年も気がつかなかったのでよかったが。
161仕様書無しさん:01/10/20 02:19
>>160
そうそう。
こういうソース書くヤツって、関数化しないよな。
全部ベタ書き。
MsgBoxは書きたい所に、全部MsgBox()って書くし。
あんた、エラートラップしてくれるのはいいが、発生したときに、
全エラートラップにブレークポイント張るしかないじゃん・・・・

あと、ありがちなのは、フォームモジュールにソースいっぱいかくヤツね。
俺なら、関数化するところを全部フォームにベタ書きしやがる。

フォーム名とコントロール名が異なった別プロジェクトに移植できないじゃん・・・・

最近、VB厨房って言葉が身に染みてわかったよ。
162仕様書無しさん:01/10/20 02:22
C言語でもいるよ、そのパターン。

いや、むしろ多いよな、エディタで

せっせと同じ箇所をコピー&ペースト
163157:01/10/20 02:31
>>162
コピペはダメだね。
バグもコピーしてしまう。
できるだけ関数化、若しくはクラスにしてしまうのが望ましいよね。

でも、これうちの会社で技術力があると評価されてる人間の作品なんだよね。(藁

しかし、CやC++を経験してVBをやるならまだいいが、VB オンリーはイタイな。
型チェックとか、エラー処理とか、考えが甘すぎ。
引数無しの戻り値無しの関数ばかり作りやがる。
164仕様書無しさん:01/10/20 02:54
>>163
>引数無しの戻り値無しの関数

それはもう関数とは呼べないと思われ。(w
入力と出力が決めうちじゃ役にたたんな。
165仕様書無しさん:01/10/20 03:00
>>164
俺もそう思う。

あと、鬱なのが
x=1
y=1の時に、
x+y=11になったことが有った。(藁

で、宣言見たら、Stringで宣言してあったし。
Variantとか、Collectionとかでも同じよーなことが起こる。
初心者がこんなもの使う必要ない!
166仕様書無しさん:01/10/20 03:29
#define begin {
#define end }
167仕様書無しさん:01/10/20 11:17
>>160
VBで嫌な思い出といえば

Dim a1, a2, a3, a4, a5
Dim b1, b2, b3, b4, b5

Private sub main()

a1 = hoge()
if a1 = 0 then
goto 100
elseif a1 = 1 then
goto 200
elseif a1 = 2 then
goto 300
elseif a1 = 3 then
goto 400
elseif a1 = 4 then
goto 500
else
goto 900
end if

100:
'処理1
goto 1000

200:
'処理2
goto 1000

300:
'処理3
goto 1000

400:
'処理4
goto 1000

500:
'処理5
goto 1000

900:
goto 1000

1000:
exit sub

End Sub


というソースを見たことがある
168仕様書無しさん:01/10/21 00:01
>>167
代入しちゃってるの?
169仕様書無しさん:01/10/21 00:10
>>167
嫌すぎですな。

あと、ガイシュツだが、VBでフォーム上のコントロール名を
直接参照するプログラマー多いよね。
移植するとき面倒だ!
170仕様書無しさん:01/10/21 00:15
>>167
これってgoto禁止の典型的なコードだよね。
ウザイけどこのレベルならまだ許せる。
171167:01/10/21 00:49
>>170
1画面にmain1つずつしかなくても許せるか?
全20画面のあるアプリで、本物はbasにグローバル変数が200個ぐらいあった。
a1とかb1とかそんなのばっかりで。構造体すら使ってなかった。。

>>168
C言語と勘違いしてないか?
172仕様書無しさん:01/10/21 01:02
>>171
>全20画面のあるアプリで、本物はbasにグローバル変数が200個ぐらいあった。
>a1とかb1とかそんなのばっかりで。構造体すら使ってなかった。。

これはちょっとね(^^;)
でも、もっとも許せないのは理解不能なコードだね。
正確に言うとコーダの意図が伝わってこないコード。
173仕様書無しさん:01/10/21 01:55
>>172
関数名とか変数名と、目的が全く違ってるコードとかあるよね。
こういうとこから、気を使ってもらいたいものだ。
174仕様書無しさん:01/10/21 19:41
「ありえないエラーが発生しました」というメッセージを見たときには笑い死にそう
になった。これってありがち?
175仕様書無しさん:01/10/21 20:48
>>167
なんかなつかしい。
まだオブジェクト志向どころか構造化プログラミングという言葉が
なかった頃、こんなコーディングをしがちだった。
もっとも、その頃はラベルもローカル変数も使えなかったんだけど。
176167:01/10/21 22:08
>>175
basicでもgosubは使えるだろ…。それよりも昔の話?
でも12年前でもgosub使えないbasicなんて無かったような。

なお、あのソース書いた人は自称VBマスターでした(ww
177仕様書無しさん:01/10/21 22:18
マスターだからこそあのソースを管理できるんじゃないかな(w
178仕様書無しさん:01/10/21 23:22
>>170
>全20画面のあるアプリで、本物はbasにグローバル変数が200個ぐらいあった。
>a1とかb1とかそんなのばっかりで。構造体すら使ってなかった。。

グローバル変数定義だけ見ようとしたら(関数だけ見るヤツ、名前知らん。)、
スクロールバーがすごく細くなった。(w

そのなかでも、

Public a As Integer
Public b As Integer
Public c As Integer
Public d As Integer
Public i As Integer

は異彩を放っていた。(w
179仕様書無しさん:01/10/21 23:29
integerってのもいいなぁ。>178
180仕様書無しさん:01/10/21 23:35
後輩のプログラムを見た。

for(int i=0;i<3;i++){
 if( i==1){
  func1();
 } else if (i==2){
  func2();
 } else if (i==3){
  func3();
 }
}

「オマエ馬鹿じゃねーのか???何故ループで廻すよ?」
と聞くと
「これらはリストボックスの項目名(つまり一番上の行)を表示する処理なんです。
リストボックスは項目が3つあるから、3つ廻さないとどうしてもいけないんです」
で、オレが

  func1();
  func2();
  func3();

「これで同じ処理だろが。無駄なコーディングすればそれだけバグが増えるって
何度言えば判るんだ」
と言ったら
「へぇ……これがさっきのプログラムと全く同じ処理をするんですかね」
とか言いやがる。
実際動かして確認。当然同じ動きをした。
「わかんねぇなぁ」
と後輩は言いながら、別に気にする事も無いようにド下手プログラムを書き続けた。

こいつどうしようかね。3年目なんだが。
181仕様書無しさん:01/10/21 23:38
>>180
そのネタ、前スレでガイシュツではあるけどね。
いや、煽ってるんじゃなくて、そういうドキュソコードは同時多発で
発生するのだなと、思ったもので。
182仕様書無しさん:01/10/21 23:38
>>180
小熊ちゃんじゃないの?
183仕様書無しさん:01/10/22 00:32
>>180
マジでいるのか?
どう考えればループになるのか謎。
184仕様書無しさん:01/10/22 00:38
>>180
そんな奴に開発は無理だろ。テストでもやらせとけよ。
185仕様書無しさん:01/10/22 01:33
>>184
テストすらまともにできないと思われ。
186仕様書無しさん:01/10/22 04:15
>>184
テスト開始!

184 「おい、オマエなにやってんだ」
「テストですよー」
184 「なんで毎回1からやるんだ」
「テストですからー」
184 「1,2,3,4・・・と順順にやっていけよ!」
「なんでですかー? 毎回1からやらないと不安定でしょー?」
184 「1,2,3,4それぞれ別の画面じゃねえか!」
「別の画面でも最初からやらないといけないでしょー?」
184 「あのなあ、上から順にやっていけばいいんだよ! ほら!」
「わー、ほんとだ。へえー、ふしぎふしぎ。なんでちゃんといくんでしょうね」
187仕様書無しさん:01/10/22 04:21
ある意味、天才だよな。>>180の後輩
なんか詭弁をまくしたてられたらダマされてしまいそうだ。
188仕様書無しさん:01/10/22 04:21
>>184
テスト開始!

184 「おい、オマエなにやってんだ」
「テストですよー」
184 「なんで1ステップずつやるんだ」
「テストですからー」
184 「とりあえず一通り回してみろよ」
「なんでですかー? ひとつずつコード確認しないとわからないでしょー?」
184 「ろくにコーディングも出来ないからデバッグさせてんじゃねえか!」
「それじゃバグ出たときにどこが変かわかんないでしょ〜?」
184 「あのなあ、ブレイクポイント入れれば良いんだよ、ほら!」
「わー、ほんとだ。へえー、ふしぎふしぎ。途中で勝手にとまるんですね〜」
189通りすがり:01/10/22 05:14
>>180

ちょっとしたツッコミだが後輩のソースでは
func3();は通らない気が・・・
190仕様書無しさん:01/10/22 05:17
>>189
ホントだ(笑
191仕様書無しさん:01/10/22 08:21
>無駄なコーディングすればそれだけバグが増える
の証明となった様子(笑)
192仕様書無しさん:01/10/22 11:33
>>189
180の先輩も180には手を焼いてると思われ
193仕様書無しさん:01/10/22 16:32
後輩のプログラムを見て威張っている俺の後輩がいた。
↑後輩B               ↑後輩A としよう。

for(int i=0;i<3;i++){
 if( i==1){
  func1();
 } else if (i==2){
  func2();
 } else if (i==3){
  func3();
 }
}

「オマエ馬鹿じゃねーのか???何故ループで廻すよ?」
と言っていた。すると後輩Bは
「これらはリストボックスの項目名(つまり一番上の行)を表示する処理なんです。
リストボックスは項目が3つあるから、3つ廻さないとどうしてもいけないんです」
で、後輩Aが

  func1();
  func2();
  func3();

「これで同じ処理だろが。無駄なコーディングすればそれだけバグが増えるって
何度言えば判るんだ」
と自慢気に言い放ったら
「へぇ……これがさっきのプログラムと全く同じ処理をするんですかね」
と後輩Bは返答していた。
「実際動かしてやるから確認しろ! ・・・ほら、同じ動きをした。 当然だろ!」
後輩Aは得意気だ。
「わかんねぇなぁ」
と後輩Bは言いながら、別に気にする事も無いようにド下手プログラムを書き続けていた。
後輩A「お前どうしようもないね。本当に3年目なのかぁ?」

おれ 「っていうか、本当に同じ動きをしたのか? 後輩Bの処理では func3() は通らないぞ」

後輩A「・・・・・・・ええっ。。ああっ!? あれえ?」
後輩B「わあ、ほんとだー」

おれ 「お前ら本当にどうしようもないな。マジでプロなのかぁ?」
194仕様書無しさん:01/10/22 16:43
プロかどうかを疑問に思うより、人としての知性を持ち合わせているか
どうかを心配してやれ。
195みちゅ ◆zzfy/JR2 :01/10/22 22:36
>>29
めちゃめちゃ笑ってしまいました☆
196仕様書無しさん:01/10/22 22:45
>193
こういう人たちって、普段はどんな仕事をしているのですか?
197みちゅ ◆zzfy/JR2 :01/10/22 22:55
>>193
面白いじゃん☆
ほのぼのしてていいなりね(*^-^*)
198仕様書無しさん:01/10/22 22:57
>>196
普段プログラマーしてても、こーゆープログラマー以前のとこ
できない人って少数ながらいるよ。
199198:01/10/22 22:59
プログラマー以前のこと だ。
おれ日本語できてねーや。死んでるくる
200仕様書無しさん:01/10/23 00:55
ガイシュツでスマソが、

MsgBox("作成したデータが破棄されますがよろしいですか",vbOKOnly)
201仕様書無しさん:01/10/23 00:59
>>193
でもさ、納期が近いときに、
工数も考えるとついつい無駄な処理が多くなっちゃうんだよね。
202しくしくしくしく:01/10/23 01:10
自分のホームページできれいなプログラムをかけ
とか主張しているけど、そいつ自身が会社で
書いたソースは、わけわからん。
おまけにキれて会社にぱったり来ないから
質問すらできんし。
203仕様書無しさん:01/10/23 01:18
void main(){
}
204仕様書無しさん:01/10/23 01:28
あのーこれ動かないんですけど。

mein()
{

おまえ、mainというスペルも知らないんか?
205_:01/10/23 02:23
>>204
ワラタ
206仕様書無しさん:01/10/23 02:28
独逸語…
207仕様書無しさん:01/10/23 10:24
ドイッチュだとマインだわな<mein
208仕様書無しさん:01/10/23 12:24
>>196
180は今 泣きながら辞表かいてます
209仕様書無しさん:01/10/23 12:29
>>199
「死んでるくる 」になってるのはわざとか?
210ななし突撃兵:01/10/23 14:57
長文失礼。

午前中、客先出張中の課長からTELが入ってきた。
課長:「AAA納のBBB、お前が治めたCCCのソースを流用しているんだが、XXXとYYYの機能が動かなねぇ!
貴様、作ったときちゃんとテストしたのか!ゴラァ!?」
私:「CCCは退職したA君が担当してたんで知りません。面倒見てたの課長でしょ?」
課長:「貴様は何時も人のせいだな。そのCCCはお前が作ったDDDを流用してんだよ。今、顧客から怒られてんだよ。何とかしろよゴラァ!」
私:「あぁ、それならXXX、YYY機能は動きません。DDDでは未使用機能ですから。この件は以前から何度も言ってるじゃないですか。」
課長:「そんなの覚えてね〜よ! うだうだ逝ってねーで自分で作ったものは責任持って動かせ! ゴラァ!」
私:「……それ、課長がコーディングしたEEEサイトの流用ソースです…」
課長:「他人のソースを流用した時点で、流用した人間が責任持つ責任があるに決まってんだろ、ゴラァ!」
私:「(ぶちっ)……つーことは、今はアンタの責任だな!」
課長:「…(がちゃん:TEL切断)」

一応気になったんで、ソース見てみました。
  if( a != b ) ; // 処理条件不一致か
  {
c = x ; // 異常処理
  }
3年前から約束されていた不具合にふと気づく秋。
つか、いくら流用とは言え、必要機能レベルの試験ぐらいしてから出荷しろよ。
ま、お互い駄目駄目って事だね^^;

さて、課長に教えてやるべきかどうか?(w
211仕様書無しさん:01/10/23 15:05
つーか、日本語をもうちょっとどーにかすれ。
>>210
それはナニか、if ()に続く{ ... }がif ()の条件の真偽とは無関係に
常に実行されるってことか?
213仕様書無しさん:01/10/23 15:32
>>210
>さて、課長に教えてやるべきかどうか?(w

遊びでやってるんじゃないんだからさ・・・。
214210:01/10/23 15:40
>211
読み返してみると変ですね^^;
一気に書いたので、結構おかしな所が…。
ハンドルも別の板のだし。
以降、気をつけます。

>212
そうです。
最初にコーディングされた3年前から、ずっと潜んでました。

>213
仰る通りですね。
既に現地で稼動確認してもらいました。
215仕様書無しさん:01/10/23 15:57
>210 大人の対応だね。特に最後のセリフ。
216仕様書無しさん:01/10/23 19:16
辞めようとは思わなかったが、辞めた人のプロジェクトを引き継いでソースを追ってた時、
コメントに某メーカーのコンサルに対するのろいの言葉が記載されているのを発見した
事がある。
面白そうだったので、コメント部分を抽出するプログラムを書いて全ソースから抽出された。
そしたらでてくるでてくる。
そいつのドキュソぶりが日記じゃないかと思うくらい事細かにでてきた。
しかもあとで一括消去や抽出できるようにごていねいに規則性まであった。

でもそのプロジェクトではそれがどんなコードよりも役にたった(泣
217仕様書無しさん:01/10/23 19:21
泣ける話やね...
218仕様書無しさん:01/10/23 23:01
>>174
>>「ありえないエラーが発生しました」というメッセージを見たときには笑い死にそう
激ワロタよ!!
3分ぐらい笑い転げてたよ(w

俺もアプリにもそのメセジ入れよかな(激笑
219仕様書無しさん:01/10/24 00:25
ソースは奇麗。
使い勝手は最高。
でもダイアログにはアニメのヒロインの
ビットマップが貼り付いている。
いくら社内ツールでも使うの嫌だな。
220仕様書無しさん:01/10/24 00:35
>>219
禿しく同意! 毛がボロボロ抜けるほど同意!
複数人で使うマシンのデフォルトの壁紙をアニメ絵にすんのはヤメテクレ!
マシン名をアニメヒロインの名前にすんのも!
ポスターもグッズも言語道断(客来るのに)!
しかもお前俺の上司だろうが(鬱
221♯6411:01/10/24 01:14
人の趣味だし、とやかくいうことはしないんだけど、
単純に、嫌いだなあ。
222仕様書無しさん:01/10/24 01:23
自分と異質なものも、取り入れてみようよ。
223仕様書無しさん:01/10/24 01:27
そういや、前の上司は「壁紙は最低限必要なものか、WINDOWS付属のもの以外は認めない」といって
奥さんとのツーショット写真を壁紙に堂々と使ってたな(w
224 ◆yEF18Xi6 :01/10/24 01:35
>>221
やぁ、ひさしぶり
トリップにしないのは貴方の勝手だし、とやかく言うことはしないんだけど、
何となくもにょもにょする
225♯6411:01/10/24 01:39
いかん、スレ違いのかほりが。

>>221 「二次元系は単純に嫌い」省略しすぎでスマソ

>>224
??? 「♯」のことをいってるのか?
まーいーや、もにょもにょしてくれや
226仕様書無しさん:01/10/24 01:55
220>>222
マシン名がアニメなのは別にあんまり気にしてない(でも僕の使うマシンくらいはまともな名前が欲しかった。manaって誰?)。
でも、他人に迷惑かけるのはやめて欲しいよう。
227仕様書無しさん:01/10/24 11:38
社内ツールでエラーがおみくじ形式になっていた。
しかもへヴィなエラーほど大吉になっていた。
嬉しいのかエラー?>作った奴
228仕様書無しさん:01/10/24 12:05
>>227
それはなんか微笑ましいので許可。
229:01/10/24 16:25
>>224
>>225
激不快
230仕様書無しさん:01/10/25 12:35
仕様書を元に開発を始めて2週間が過ぎた。
状況報告ミーティングにて

俺(契約社員)
 「ところで、この共通変数仕様に基づいた変数の実体は
  どこに切られてるんですか?
  今は変数が用意されればすぐ組みこめるようにしてますが…」
A「ああ、それ俺のところで用意しているよ」
B「えっ、俺も用意したよ」
C「うそ、俺もそれ宣言しているよ」
D「マジー? 俺も用意してしまった」

俺「(・・・こいつら、共通変数の”共通”の意味合いわかっとるんかい…)」
ABCD「どうしよう」
俺「(まあ、仕様どおりにやってるんなら宣言場所変更してちょっと修正すればいいだけだし…)」
俺「共通の意味ないじゃないですか。一箇所で実体宣言しましょうよ。
  それぞれちょっと修正すれば済みますよね。何なら私がまとめてもいいですよ…」

Aのソース。変数名勝手に変えてるじゃん
Bのソース。足りない変数あるじゃん
Cのソース。勝手に構造体増やしてまとめちゃってるじゃん
Dのソース。型変更するなよボケ

やる気なくなった・・・・
231仕様書無しさん:01/10/25 13:04
>>230
それよりも「共通変数仕様」なるヘンテコリンなものを拒絶せよ。
232仕様書無しさん:01/10/27 16:25
age
233仕様書無しさん:01/10/27 18:30
>>230
ワラタ
234仕様書無しさん :01/10/27 23:45
>>230
グローバル変数か?
235仕様書無しさん:01/10/27 23:57
「共通変数」
通じないこともないが、どの業界よ
こーゆー用語使うのは?
236仕様書無しさん:01/10/28 00:02
>>235
結構普通に使ってるけど。
複数で開発してる時。
237旅人プログラマ:01/10/28 00:34
>>236
でもそれはメインシステムで変数を設定し、
サブシステムでは参照のみ可であればいいんだけど、
所構わず共通変数をいぢくりまわすプログラムとなると…
238仕様書無しさん:01/10/28 00:55
COBOLER用語じゃねえのか?
239仕様書無しさん:01/10/28 01:25
グローバル変数の使い方がどーこー以前に、
グローバル変数が登場した時点でやめようと思うぞ。
240 :01/10/28 01:31
グローバル変数ゼロってのは難しいと思うぞ。
241仕様書無しさん:01/10/28 01:51
せめてファイルスコープに納めてアクセス関数を提供してくれ。
242仕様書無しさん:01/10/28 01:53
>>239
それはものによるんじゃないか?goto文と同じで、
きちんと使えば良いだけのことだと思うが。
243仕様書無しさん:01/10/28 02:48
>>242
>きちんと使えば良いだけのことだと思うが。
それは、そーなんだが、きちんと使わない人が多いんだって。
やはり、アクセス関数を通して操作するのが最も無難だと思うよ。
244仕様書無しさん:01/10/28 13:18
>>242
信じられん。こんな考えの持ち主がいるなんて。
メインの言語はやはりCOBOLか?
245仕様書無しさん:01/10/28 13:26
>>244
getopt() で使う optind, optarg とか、errno もグローバル変数だから使用禁止なの?
246グローバル変数:01/10/28 13:52
複雑になりすぎた現システムを、一部仕様変更して、
一から作り直すことになりました。万歳!!
コーディング規約は私が全部作って提出するつもりだが
「反対されたらコーディングはしません」と主張する。
といっても、ごく当たり前のことを書くだけなんですが。

しかし、ローカル変数使えば済むところをわざわざ
グローバル変数にするっていう発想はやめてほしい。
COBOLのノリでCを使うのはホントにやめて。
コピペの嵐なんで「関数化しましょう」と言うと、
「見通しが悪くなるから」 ・・・絶句。

2年目の私が10年選手に一から構造化プログラミングに
ついて教えなければいけないのでしょうか?
業界に入る前は「みんなすごい人ばかりでついていけるかなー」
と心配していたのがアホらしい。
247仕様書無しさん:01/10/28 14:13
案外グローバル変数毛嫌い派が多いな
よほど業務経験の幅が狭いんだな・・
248仕様書無しさん:01/10/28 14:19
>>247
グローバル変数がこんがらがったプログラムをメンテナンスさせられて、鬱になった経験者が
多いと思われ。

グローバル変数は適切に使えば問題ないし、ひたすらグローバル変数を避けるとむしろ問題
がこじれるんだが、適切に使わなかったときの惨禍は目を覆うからなぁ。
249246:01/10/28 14:33
>>247
適切なグローバル変数は大いに結構。
問題はグローバル変数を正しく理解して使えない
糞どもが多すぎること。
250仕様書無しさん:01/10/28 14:55
>>247
なんだよ、その「適切なグローバル変数」っつーのは。
適切だと君が思ってるだけでしょ。
251仕様書無しさん:01/10/28 14:55
s/247/249/
252仕様書無しさん:01/10/28 15:02
>>250
俺は optind, optarg, errno を例に挙げたが、すべてダメと?

あとは各種動作を決定するために、初期段階で設定するフラグ (たとえば ls コマンドのコマンドライン
オプションを解析して -l なら lflag = 1, -F なら Fflag = 1 などと記録しておいて、あとで参照する)な
ども、グローバルで持たせたほうが管理が楽な例。グローバル変数を避けて構造体か何かにパックし
て渡しても良いけど、煩雑になるだけだし。
253仕様書無しさん:01/10/28 15:07
>>252
特殊例を持ち出して、一般化されてもなぁ。
今出てる「グローバル変数」は、ある程度大きなシステムの
「インタフェースの代わりとしてのモノ」じゃないか?
254仕様書無しさん:01/10/28 15:08
244や250は三流プログラマ。教条主義に洗脳された哀れなブタ。
255仕様書無しさん:01/10/28 15:14
>>254
教条主義も何も、実際にグローバル変数を使うことによって実害が
あるのだから、それを避けるのがプロでしょ。
256249:01/10/28 15:14
>>250
少なくとも各自が好きなように書き換えるような
使用方法は、適切とは言えませんね。
場合によってはグローバル変数を使用した方がいい
場合もあるんですよ。場合によっては。
257仕様書無しさん:01/10/28 15:24
>>255
そんなこと言ってるからお前は三流なんだよ。「場合によっては」
グローバル変数やgoto文を使った方がすっきり書ける場合もある。
「常に使わない」というのは愚者の選択でしかない。
258仕様書無しさん:01/10/28 15:36
割り込みで非同期に変わる状態変数なんかグローバル以外にやりようがない。
とか言ってみる。
259仕様書無しさん:01/10/28 15:38
244と250と255は、哀れな三流プログラマということでよいですか?
260仕様書無しさん:01/10/28 15:42
>>259
いや、PGにアコガレてる厨房って事でひとつ。
261261:01/10/28 15:53
Private Sub コマンド45_Click()

Access VBA です。
既出かもしれないけど、つい。。

※ あと、VBEの[検索]ダイアログで、
日本語の検索が出来ないのは ぼくの環境だけですかね?
262仕様書無しさん:01/10/28 17:17
>>258
趣味プログラマレベルが集まっているから、何のこと
言っているか多分理解できてないと思われ
無視しよ、無視
263仕様書無しさん:01/10/28 17:21
>>257
だから特殊例を一般論にまで敷衍するなって。
これくらいのこともわかんねーのか(プ
264仕様書無しさん:01/10/28 17:25
またはじまりました。知識対決。
馬鹿が馬鹿を罵倒する、まさに泥仕合。
265仕様書無しさん:01/10/28 17:26
まぁ、「すっきり書ける」なんて言ってる奴は保守コストなんか
考えたことないんだろうなぁ。
勝手にやれば?ってかんじかな。
266仕様書無しさん:01/10/28 17:26
>>263
特殊例ではグローバル変数は有用、よって使い方を間違えなければ問題なし、ということで
ファイナルアンサー?
267仕様書無しさん:01/10/28 17:27
>>266
しつこいね、君も(プ
勝手にやれば?
一人でプログラミングしてるんでしょ?
268266:01/10/28 17:32
日本語が通じるかと一縷の望みをかけた俺が馬鹿だった(w

>>262
らじゃ。無視でいきます。
269仕様書無しさん:01/10/28 17:34
グローバル変数無しでリアルタイム制御とかマルチタスクOSとか書けるもんなら書いて欲しい。
と言ってみるテスト。
270仕様書無しさん:01/10/28 17:35
>>268
ヴァカ?
>>230からの話の流れで、
「正しい使い方をすればグローバル変数は有用」
「俺様は常に正しい使い方をしてるのだ」
「使うべきところでグローバル変数を使わない奴はアホ」
なんてことを主張して、いったい何を得ようとしてるんだ?

俺様は天才ってことかな?
271仕様書無しさん:01/10/28 17:37
お前らいい加減にすれや。
ここはVBのグローバル関数を話し合うスレッドじゃねっつーの。
272仕様書無しさん:01/10/28 17:41
ここはVBのグローバル関数を話し合うスレッドじゃねっつーの。
ここはVBのグローバル関数を話し合うスレッドじゃねっつーの。
ここはVBのグローバル関数を話し合うスレッドじゃねっつーの。

ハハハ
273仕様書無しさん:01/10/28 17:41
>>271
そうそう。
やりたければスレ立ててそこでやれ。
274仕様書無しさん:01/10/28 17:42
>>273
つか、誰もVBのグローバル関数なんか話題にしてねえんだけど(w
275仕様書無しさん:01/10/28 17:43
はいはい、人の揚げ足取りはもういいから。
スレ違いの話はいい加減やめてね。
276仕様書無しさん:01/10/28 17:43
>>239
どんな環境での話?
277仕様書無しさん:01/10/28 17:46
>>276
疑似餌です。
餌には食いつかないようにしましょう。
278仕様書無しさん:01/10/28 17:49
>>275
そうだな。>>271とか>>273とか激しくスレ違いだから首吊って欲しいね(w
279276:01/10/28 17:49
スマソ
折れ、テスト実行中で、ひま・・・
280仕様書無しさん :01/10/28 17:50
ゴルァーバル変数って何?
281275:01/10/28 17:52
>>278
おまえがな。
282仕様書無しさん:01/10/28 17:56
275 == 高卒  (^∀^)pupuppu
283仕様書無しさん:01/10/28 18:02
マジレス。
グローバル変数云々はスレ違いでも何でもない。理由は>>239
グローバル変数の使い道も知らないで、グローバル脱ツーだけで有害と
決めつける厨房と同じ会社にはいたくねえもんなぁ。
284仕様書無しさん:01/10/28 18:05
>>283俺もそんな規模で開発してる奴とは働きたくないね
285仕様書無しさん:01/10/28 18:10
会社を辞めようと思ったソースコードの話なのに
グローバル変数が有用かそうではないのかが何ですれ違いじゃないのよ?
自分たちが勝手に罵りあいにあつくなるのは勝手だけど他の人の事も考えては?
286仕様書無しさん:01/10/28 18:10
規模の大小とグローバル変数の使い方に関係があると思いこんでる厨房PGは即刻首にするべきだ。
287仕様書無しさん:01/10/28 18:12
>>285
熱く議論している最中に言っても無駄だ。しばし待て。
288仕様書無しさん:01/10/28 18:12
>>285
「グローバル変数が使われている」だけで「会社を辞めようと思ったソースコード」
だと主張する馬鹿が一匹いるから。
289仕様書無しさん:01/10/28 18:14
結局COBOL最高!!!! って事かうんうん
290仕様書無しさん:01/10/28 18:15
>>287
議論なら我慢する気になるけど。ただの罵りあいじゃない?
ここのスレも結構おもしろかったのに最近こういうの多すぎない?
291仕様書無しさん:01/10/28 18:20
>>290
いやいや、罵ってるのはグローバル変数拒否症の厨房一匹だけだよ。
実例も挙げずに有害だ有害だとさわいでる馬鹿がいなくなれば丸く収まる。
292仕様書無しさん:01/10/28 18:21
ジサクジエンデシタ!!(・∀・)
293仕様書無しさん:01/10/28 18:37
>>291
三流厨房プログラマは無視ということでお願いします。
294仕様書無しさん:01/10/28 21:41
>>291,>>288
>>230を読んでからもう一度出直せ。

有用なグローバル変数VS有害なグローバル変数という不毛な論争が
やりたいなら別スレで。
295仕様書無しさん:01/10/28 21:52
>>230 が辞めてやると思うのはわかるけど、
>>239 には納得できない。
こういうのを、
あつものに懲りてなますを吹く
とか言うんじゃなかったっけ?
296仕様書無しさん:01/10/28 22:18
int main(int argc, char **argv)
{
    try {
     MyApp theApp;
     theApp.Run();
     return 0;
    }
    catch (...) {
     cerr << "ごめん死んだ";
     return 1;
    }
}
297仕様書無しさん:01/10/28 22:34
>>296
そうだよなぁ。SIGSEGV, SIGBUS も捕まえとかないと(違
298296:01/10/28 22:59
VCだったのでstd::bad_allocがキャッチできずにあぼーんしてたよ!
ハンドラをいちいち登録せないかんのね>VC
299仕様書無しさん:01/10/28 23:34
>>294
>>258 >>269を読んでもう一度出直せ。
300仕様書無しさん:01/10/29 04:24
400!
301仕様書無しさん:01/10/29 08:01
>>300 -100+1 !!
302仕様書無しさん:01/10/29 15:30
>>263
誰も、一般論に敷衍してなんかいないと思いますが、何か?
で、特殊な状況ではグローバル変数も役に立つってわかってもらえました?
303仕様書無しさん:01/10/29 15:33
>>302
三流厨房プログラマは無視ということでお願いします。
304仕様書無しさん:01/10/29 15:34
「役に立つ」どころか、グローバル変数がないと実現できない例すらあるんだけどね。
305仕様書無しさん:01/10/29 15:48
>>302-304
ジサクジエーン
306仕様書無しさん:01/10/29 15:53
>>305
モウソウ(・∀・)イイ!
307仕様書無しさん:01/10/29 15:56
有用なグローバル変数VS有害なグローバル変数という不毛な論争が
やりたいなら別スレで。

粘着うざ。
308仕様書無しさん:01/10/29 16:03
>>307
粘着だなぁ…そんな論争誰もしてないのに。
309仕様書無しさん:01/10/29 16:08
>>308
不毛であることには変わりなかろう。
お互い、自分の言い分を相手に同意させるためだけに、何度もループして
発言してるのだから。

>>302
その通りです。

>>304
その通りです。

これで、彼らも満足しただろう。
310仕様書無しさん:01/10/29 16:24
とりあえず、グローバル変数に必然性があるかどうかもわからんで
否定してるような奴はさっさと会社やめてよし。って事で。
311仕様書無しさん:01/10/29 16:45
>>310
なんか激しくこだわってるみたいだけど、
どっちかっていうと、不要なグローバル変数を多用するような奴のほうにやめてほしいよ。
マジでCOBOLERあがりに、このタイプが多いんだ。
312仕様書無しさん:01/10/29 16:51
>>310-311
1. グローバル変数全否定するヤツは逝ってよし。
2. 必要ないのにグローバル変数使うやつは逝ってよし。

約一名を除いて、これで合意できてると思われ。約一名は放置、合意できてる人はこれで
終了ってことで、どう?
313仕様書無しさん:01/10/29 16:55
>>312
もうそれで終了してるんだけど・・・・・ね。
いつまでたっても辞めない奴がいるのさ。
314仕様書無しさん:01/10/29 17:04
1. gotoを全否定するヤツは逝ってよし。
2. 必要ないのにgotoを使うやつは逝ってよし。
315仕様書無しさん:01/10/29 17:23
<project name="MyProject" default="dist" basedir=".">

<!-- このビルドのためにグローバルプロパティを設定します -->
<property name="src" value="." />
<property name="build" value="build" />
<property name="dist" value="dist" />

<target name="prepare">
<!-- タイムスタンプを作成します -->
<tstamp/>
<!-- コンパイルで使用するビルドディレクトリ構造を作成します -->
<mkdir dir="${build}" />
</target>

<target name="compile" depends="prepare">
<!-- ${src}から${build}に、Javaコードをコンパイルします -->
<javac srcdir="${src}" destdir="${build}" />
</target>

<target name="dist" depends="compile">
<!-- ${dist}/libディレクトリを作成します -->
<mkdir dir="${dist}/lib" />

<!-- ${build}の中のすべてのファイルをMyProject-${DSTAMP}.jarファイルに格納します -->
<jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}" />
</target>

<target name="clean">
<!-- ${build}と${dist}ディレクトリツリーを削除します -->
<delete dir="${build}" />
<delete dir="${dist}" />
</target>
</project>
316仕様書無しさん:01/10/29 21:12
>>315
これ何ですか?
317仕様書無しさん:01/10/29 22:36
誤爆じゃネーノ?
318仕様書無しさん:01/10/30 00:09
>>316
Jakarta Antだけど、このスレとは関係ないね、多分。
319仕様書無しさん:01/10/30 11:59
i = 0
Do Until i = "6"
  '処理する
  i = i + 1
Loop
320仕様書無しさん:01/10/31 01:17
i = "0"
Do Until i = "011111"
'処理する
i = i + "1"
Loop
321仕様書無しさん:01/10/31 02:27
>>319
>>320
そんなコード書いてないで、さっさと氏んでください。
ここはネタスレではありませんので。
322仕様書無しさん:01/10/31 10:29
>>316-318 >>321
ナイス現実逃避w
323仕様書無しさん:01/10/31 18:01
int hoger( int a, int b, int c )
{
if( /*比較文1*/ == 0 ) {
continue;
}

if( /*比較文2*/ != 1 ) {
continue;
}

if( /*比較文3*/ < 0 ) {
continue;
}

if( /*比較文4*/ == 0 && /*比較文2*/ > 2 ) {
continue;
}

if( /*比較文5*/ != 10 ) {
continue;
}

if( /*比較文6*/ < 0 ) {
return( 0 );
}

return( a );
}


漏れ 「何がしたいのがよくわからないんですが…」
先輩 「何がって、仕様書の通りじゃないか」
漏れ 「なんでcontinueばっかり・・・」
先輩 「仕様書の流れがよくわかって見やすいだろ」


…コメント使えよ。
324 :01/10/31 18:21
>>314
gotoは...
OracleのProC/C++で、Javaのようにtry catch finallyしたいとき、
gotoで実現したほうがスマート

なんだろうか?
325仕様書無しさん:01/10/31 22:07
>>323
その先輩あふぉだね。つかれちゃう。
C言語使いでもこんな人居るのか。
326仕様書無しさん:01/11/01 09:29
>C言語使いでもこんな人居るのか。
327仕様書無しさん:01/11/01 09:29
>>326
なにが言いたいの?(w
328仕様書無しさん:01/11/01 11:59
if(i = 0){
// 処理
}

もうね、あほかと、馬鹿かと。
329    :01/11/01 12:05
>>328
一時的にコメントの代わりとして使ったのですよ。
330仕様書無しさん:01/11/01 12:15
>>328
C言語使いなの?
331仕様書無しさん:01/11/01 12:18
>>330
なに使いでもやばいと思われ。条件分岐はどの言語でもあるでしょう。
332仕様書無しさん:01/11/01 12:22
>>331
でもifの条件式の中で代入ができる言語はそんなにあるもの?
333競れ損 ◆hPlq..gg :01/11/01 12:24
>>328

CのFAQ集ではこういうミスをなくすために

if ( 0 = i ) {
}

という風にしろ、というのがありましたね。
これならコンパイル時に気付きますから。
334仕様書無しさん:01/11/01 12:35
>>333
まあ今時のコンパイラならif ( i = 0 )なんて書いたら警告出るっしょ。
って警告offでコンパイルされたらアウトか。
335仕様書無しさん:01/11/01 13:08
>>334
警告レベル最低にしてコンパイル通してるコードも、会社辞めたくなるよね。
336仕様書無しさん:01/11/01 13:37
>334 警告は必ずしも出ないでしょ。
プログラム的には問題ないんだから。
おせっかいなコンパイラは知らないけど。
337仕様書無しさん:01/11/01 13:53
((nNo != -1) ? nNo : -1)

何故、わざわざこういう書き方を・・・
338揚げ:01/11/01 14:08
書き方っていうか…
339仕様書無しさん:01/11/01 14:22
C++使いに多いんだよな >>337
理解できるけどやるなら全部それでやれっちゅーんだ
340仕様書無しさん:01/11/01 14:25
ん?

-1 じゃ無かったら   => nNo
-1 だったら      => -1

まんまでは?
341仕様書無しさん:01/11/01 14:34
long SysInfo[5] という配列があったとします。
さて、あなたはどちら派ですか?


A)
-------------------------------------
#define INF_SYSTEM 0
#define INF_PDATA 1
#define INF_LENGTH 2
#define INF_MODE 3
#define INF_USERNAME 4

if( SysInfo[ INF_MODE ] == 1 ...

if( memcmp( &SysInfo[ INF_USERNAME ], "HOGE", 4 ) == ...

B)
-------------------------------------
#define SI_SYS SysInfo[0]
#define SI_PD (&SysInfo[1])
#define SI_LGH SysInfo[2]
#define SI_MD SysInfo[3]
#define SI_UNM (&SysInfo[4])

if( SI_MD == 1 ) ...
if( memcmp( SI_UNM, "HOGE", 4 ) == ...


なお、Bの方は更に
#define SI_UNMC (ChgLCase(SI_UNM))
#define SI_MDM (0-SI_MD)

等派生することが条件です。
342仕様書無しさん:01/11/01 14:54
>>340
どっちにしたってnNoに入ってる値じゃん。
343仕様書無しさん:01/11/01 15:06
>>341
・・・
344仕様書無しさん:01/11/01 15:20
>>341
…構造体を使えない理由でもあるのか?
345仕様書無しさん:01/11/01 15:27
>>344
配列しばりなら、A)かつenum使用。
B)は極悪。
346341:01/11/01 15:51
>>345
Bが極悪・・ヨカータ。
今の職場(派遣先)、Bが常識なのでソースコード解析に死ぬほど労力食うんよ。
で、引き継ぎ+新規やることになったから、Aの形式にしようとしたら
 「ソースが長くなって見づらくなるから」
 「なるべくデファインを使って効率のいいソースにして」
 「そんなややこしい使い方はしないで」
と周りからマジ顔で言われて、俺の4年が異常だったのか??と悩み中なんだよー

Bは更に、ソースファイルが変わると

#include "(Bの記述のヘッダ)"
#define MAINDATA SI_SYS
#define USERDATA SI_UNM
#define DATAPOINTER SI_PD

となり、更に別のソースで

#define d_Sys MAINDATA

とかなって無茶苦茶もいいとこなんだよ。
しかも同じ人のソースでこれやってたりして、変数1つ追うのに30分とか当たり前。

やっぱりここ、変だよ・・・
347仕様書無しさん:01/11/01 16:14
>>346
すっきりしてるのがいいというなら。
下記の様にしてやれば。 (w

#define CONTENTS 関数の中身...延々と...

... func( ... ) { CONTENTS }
348仕様書無しさん:01/11/01 16:39
>>346
を読んで、寒気がしたよ。
349仕様書無しさん:01/11/01 16:42
>>347
いやいや、ここはやはり

#define PROGRAM プログラムを延々と...

PROGRAM

だろう。
350仕様書無しさん:01/11/01 16:45
>>349
おお!!すっきり (w
351仕様書無しさん:01/11/01 19:05
>>337
手元のコンパイラに喰わせてみたYO!

int foo(int nNo)
{
 return ((nNo != -1) ? nNo : -1);
}

foo:
 movl 4(%esp),%eax
 ret
352仕様書無しさん:01/11/01 20:04
すばらしい。完璧な最適化だ!
353仕様書無しさん:01/11/02 05:53
7つ年上の仕事が出来ない偉そうな奴が書いたPerlのソースコード。

他人の作った「バグがあるプログラムを直してくれ」と言われて、
「読みやすいように1から書き直します」と言って書き直したが
結局バグは取れていなかったというエピソードを生んだ人です。

#!/usr/bin/perl

my $m_from;
my $m_subject;
my $m_msg;
(中略)

#---- FILE CLOSE ----
close FT;

#---- MSG ----
print '---- END ----'."\n";

#----------------------------------------------------------
# EXIT
#----------------------------------------------------------
exit;

sub send {
(中略)
#----------------------------------------------------------
# RETURN
#----------------------------------------------------------
return;
}

こいつのせいで朝日拝んでますが何か?
354353:01/11/02 05:55
↑ちなみに、スクラッチで書けば30行くらいで書ける
コマンドラインでsendmail使ってメールを送信するだけのスクリプトです。
355仕様書無しさん:01/11/02 07:42
>>353
それだけじゃ何が言いたいのか…

コメントって言えば、昔某マイク●ソフトの人に
ソース見せてもらったときに

// *****************************
// *
// *  コメント内容
// *
// *****************************

ってのが至るとこにあったのを思い出す。
綺麗だけどさ…
356353:01/11/02 08:50
>>355
いや、激しく意味の無いコメントは書くなって言いたかったんだけど、
マイ●ロソフト激しく負けたみたいだからもういいや。。。

って、「コメント内容」って所は、コメントの内容では無くて
「コメント内容」という文字だけなんだよねぇ?
357仕様書無しさん:01/11/02 10:45
>>355
某N○Cの人のソースで

// ****************
// 関数名:未定
// 概要:
// 引数:なし
// 戻り値:なし
// 備考:
// ***************
が全ての関数の前についてたことあったっけなあ
358仕様書無しさん:01/11/02 11:28
今ソースの修正頼まれてしてますが、

#if 1
修正後
#else
修正前
#endif

というふうにやってといわれて鬱です。
一つならいいんだけど、何十とこれをするのは・・・
359仕様書無しさん:01/11/02 11:54
ご愁傷様
360仕様書無しさん:01/11/02 11:57
>>358
めっちゃ普通じゃねーか
361仕様書無しさん:01/11/02 12:00
普通なん?これが重なるとどうなると思うよ
#if 1
・・・
#if 1
・・・
#else
・・・
#if 0
・・・
#endif
・・・
#endif
・・・
#endif
になるんだよ。醜くて見難くてかなわん。
まあ必要というのもわかるんだけんども。
362仕様書無しさん:01/11/02 12:01
不要だよ。
F系ではやってるかも。
363仕様書無しさん:01/11/02 12:03
>>360
一時的にはありうるけど、コードの整理がついた時点で #if 1, #if 0 は全部捨てるのが普通。
捨てる前のコードを保存しておきたければ、ソースコード管理システムのほうでスナップショット
をとる(タグをつける)。

変更が重なるとやってられんよ。
364仕様書無しさん:01/11/02 12:14
>>358
あー、それやるとこ多いよ
オレの経験では、たいていレベルの低い会社だった
ソースコード管理システムが使えないほどな
365仕様書無しさん:01/11/02 12:23
ソースコード管理システムを買えないほどの会社もやってたなあ。
366仕様書無しさん:01/11/02 12:32
CVS使えないうえにVSS買えないドキュ会社か、、、
367仕様書無しさん:01/11/02 13:09
会社というより、上がそういう方針なんだろ
368仕様書無しさん:01/11/02 14:41
上が上なら下も下だったりするのよ(藁
369仕様書無しさん:01/11/02 14:42
バージョンごとにディレクトリがあるんだよね。
VSSとかあるんだけどなあ
370360:01/11/02 16:25
>>361
ああ、重なるのか。
そこまで書いてないからわからなかったよ
いつまでも履歴残してるのは糞だね

ていうか漏れの職場のソースは履歴8世代残すのが規則になってるから
その程度で愚痴るなってカンジー
371360:01/11/02 16:25
ちなみに漏れの派遣先はVSS使ってます(w
372360:01/11/02 16:26
更に第一時開発のものでもVSSに一旦上げたらその時点から
#if0の履歴管理を強いられまぷー
373仕様書無しさん:01/11/02 16:41
毎回ソースファイルを増やしてけば?

/* foo.1.c revision 1 */
#if 0
#endif

/* foo.2.c revision 2 */
#if 0
#endif

/* foo.3.c revision 3 */
/* 最新版 */
374仕様書無しさん:01/11/02 19:43
>>356
コメントの内容だけど…
375仕様書無しさん :01/11/03 01:26
今、我々のチームで開発したプログラムを持って、俺1人で常駐派遣している。
プログラムの動作がおかしいというのでデバッグしたら、
エラートラップの中で、俺に対してのブービートラップが埋め込まれていた・・・・
おいおい、SQL失敗したからといって、プログラム終了するなよ・・・・
エラートラップの意味全くないじゃん・・・・
鬱だ。
376>>341:01/11/03 01:28
どこも悩みって一緒なんですね。
あなたの悩みとは違うが・・・うちの場合、Cじゃなくてちょっと
マイナーな言語(結局コンパイル時に一旦Cになりますけど)
なんですが、グローバル変数の嵐。必要ないとこまでグローバル。
さらに、関数を作るということを知らない。コピペの嵐。
377仕様書無しさん:01/11/04 13:08
>>376
安心せよ!
http://www.2ch.net/accuse2.html
コピペ荒らしはひろゆきたんがなんとかしてくれるーヨ!
378仕様書無しさん:01/11/04 15:35
>377
2ちゃんのコピペ荒らしの話じゃないんだが…
ネタにマジレスしてるようでカコーワルイのでsage
379-:01/11/04 18:34
>>378
誰がどう見たってネタだろ。
君の脳みそのソースコードを見てみたいよ
380仕様書無しさん:01/11/04 18:44
while ((threadid = bbs.2ch.threads.wait()) >= 0)
{
 response res(bbs.2ch.thread.get_last_response(threadid));
 response aori(make_aori(res));
 bbs.2ch.thread.send(threadid, aori);
}
381仕様書無しさん:01/11/05 11:41
>>378
>ネタにマジレスしてるようで

ようじゃなくてそのもの。ワロた!
382仕様書無しさん:01/11/06 12:20
Aさんがつくったa.cの中の関数を
Bさんがb.cの中で使って、プロトタイプ宣言が無い旨のメッセージを無視していたり、
Cさんがc.cの中でa.cの中の関数のプロトタイプ宣言をしていたりするのですが、
何か?
383仕様書無しさん:01/11/06 13:35
>>382
A さんが一番悪いと思うが、何か?
384仕様書無しさん:01/11/06 13:44
382はA,B,Cのどれなのか
385382:01/11/06 15:23
わたしはDと申しますが、何か?
386仕様書無しさん:01/11/07 00:39
DameのD?
DokkaikeのD?
DokyunのD?
387げんなり:01/11/07 03:09
>>358 >>360
俺の派遣先のコーディング規約。
「修正前のソースコードはコメントアウトして残すこと。
コメントには、バグ票番号、修正日時、修正者名、プロジェクトID(本プロジェクトではXXX)を付加すること。」
「#if(#ifdef)はソースファイルの可読性、保守性を低下させるので使用不可」
「コメントは必ず1行毎に/*〜*/で完結させること。複数行に渡るコメントの
場合も1行毎に完結させること。」

と、いうわけで、
void foo( void ) {
/* 2001/10/20 bugXXXX ローカル変数初期化漏れ修正 b.bar XXX */
/* int local; */
int local = 0;
/* 2001/10/20 bugXXXX ローカル変数初期化漏れ修正 b.bar XXX */
/* int local2; */
int local2 = 0;
:
以下、推して知るべし。ソースファイル数千行、実ステップ数百行。
(下手すると数十行??)これをclearcase管理。サーバ容量いくらあっても足りないらしく、
月に一度はディスク増強してるみたい。
388382:01/11/07 09:29
>>386
DenDenMushiのDだよ。
389仕様書無しさん:01/11/07 23:26
多分ポインタに自信が無い奴が書いたであろうコメント。
/* s 自体にはアドレスが格納。そのアドレスの値を代入する。 */

ポインタを使っているところすべてに記述してある。
**やリスト構造についてはコメントが何言っているんだかわからん。
390仕様書無しさん:01/11/08 00:24
>387 CVSとかVSSを提案してあげなよ。
職場で生産性向上のワークショップとかやってねーの?
391げんなり:01/11/08 03:15
>>390
やった結果がこれみたい。「CVSというものがありますよ」と言った所、
「無保証なものは使わない」とのこと。
さすがにやってられないので交渉して、俺の担当の部分は好きに
やらせて貰っています。そういう話が通じるだけマシかも、ですね。
392げいつ:01/11/08 12:01
10 REM "Hello World!"
20 CLS
30 PRINT "Hello World!"
40 END
393仕様書無しさん:01/11/10 01:42
VBで
shohin_code=iif(isnull(text1.text), "0000", text1.text)
if shohin_code="0000" then
msgbox "エラー"
end if
こんな感じの奴。
ちなみに、商品コードは半角英数字4桁。
だから0000という商品コードができることもあるんだけど、
何でこんなコーディングするかな…
394393:01/11/10 01:44
上げ忘れた。
会社辞めるといわず、この世辞めます…
395仕様書無しさん:01/11/10 09:24
http://search.mag2.com/reader/Magsearch
「ITエンジニア転職の黄金律」
というメルマガです。とくに派遣の方、よろしければどうぞ
タイトルは多少オーバーですが、地道な真面目な話です。
読者数が減ったことはないので、まあ有益なのでは?
396仕様書無しさん:01/11/10 11:04
C コンパイラを作っていた。
予約語をテーブルで持っていて線形リストで検索していた。
遅いよそれ…。
397仕様書無しさん:01/11/10 11:15
>395
リンク先が「This is default message. 」としかでない。
検索してみたら、こんなのがヒットした↓。
「年収アップ!IT技術者転職の黄金律はコレだ! 」
http://www.mag2.com/m/0000077586.htm
395が意図していたのはこれ?
398仕様書無しさん:01/11/10 20:14
>>396
予約語の数なんか、たかが知れてるから線形リストでも問題ないじゃん。

変数・関数などの識別子をすべて線形リストで持ってたら、そりゃあ馬鹿だが。
399仕様書無しさん:01/11/10 22:09
>396
lexで展開した結果のことかなぁ。

コンパイラはlex+yaccで作るのがふつうじゃない。
400仕様書無しさん:01/11/10 22:26
レキシカルアナライザは自分で書いてもたかが知れてるよ。
401仕様書無しさん:01/11/11 18:00
字句解析はlexに任せた方が速くて
構文解析は自前で作った方が速いって聞いたけど
402仕様書無しさん:01/11/11 18:27
>>401
字句解析と構文解析の違いがわかっていってる?
403仕様書無しさん:01/11/14 09:53
既出だと思うが...VBにて。
 Dim Cnt,Lng,I,II,as Long
 Dim Rst1,Rst2,Rst3 as Recordset
 Dim SQL1,SQL2,SQL3 as String
 で、自分
 Dim Cnt as Long,Lng as Long

 こんな宣言してたら、「まとめて書く方法しらないの」とか
言われた。
 自分VB始めたばっかなんで何とも言えないが、参考書には
一つ一つ宣言しないとダメだと書いてある。
 これって、テクニックなん?
404仕様書無しさん:01/11/14 09:58
まあ2つぐらいならいいんでねーの?
10個もそんな感じなら萎えるけど。
405仕様書無しさん:01/11/14 10:08
たしかVBで
dim a,b,c as long
って書き方したら、 a,bは、longにならないんじゃなかった?
406仕様書無しさん:01/11/14 10:19
>>405
そう、Variant型になる。
407仕様書無しさん:01/11/14 12:05
と、いうことはー。藁藁
408403:01/11/14 12:57
 やっぱ自分のやり方で通します。変数追ってみたら
ほぼ全部Variantになってたんで鬱・・・

>405,406 サンクスコ
409名無しおやぢ:01/11/14 13:07
>>405-406

そのとおり。(VB6.0までは)
だから、403さんに
> 「まとめて書く方法しらないの」
といった人がタコ。

ただし、VB.NETでは、405のスタイルでもすべてLongになるらしい。
バージョンによって仕様が変わるってなんやねん!(なめとるのか)

ついでに、ByVal(値渡し) / ByRef(参照渡し)を省略した場合の
既定値がVB6.0まではByRefなのに、.NETではByValに変わる。
(宇津出汁濃・・・)

紛らわしい仕様変更するM$逝ってよし!
410仕様書無しさん:01/11/14 13:26
>>403
おそらく配列のことかと…
411旅人プログラマ:01/11/14 17:59
>>409
M$はいつもこういう事を平気でやってのけるでしょ
APIの返り血を逆にするってこともやってのけたし(95->98

でも、defaultに甘えるコードの書き方は基本的に辞めておいた方が吉
#Perlは?(w
412仕様書無しさん:01/11/14 23:39
>>405
以前、自称VBマスターな人のソースでそれが連発、
それが元でその人曰く「WINDOWSのバグ」が発生してたことがある
漏れが見て速攻修正。その人が「あなた凄い腕前だね」と言ったので
悪気もなく解説・・・その人3ヶ月後にクビ。悪いことしたかなあ
413仕様書無しさん:01/11/15 00:21
仕事とはいえ、毎日他人様の書いたVBのコード追っかけるのにうんざり。
いちから書くのは簡単だけど、解析して直せなんて勘弁してくれ・・・
414仕様書無しさん:01/11/15 00:23
>>411
>>405は.NET以前のVBのdefaultだったような気が。
defaultの意味を勘違いしてる?
415名無しさん:01/11/15 00:36
>>403
プロシージャ内で、StringとLongは記号で宣言しないか普通?$や&とか
 Declarationsで宣言するときは前者を使うと思うが。テーブル宣言する
 ときなど。
416仕様書無しさん:01/11/15 00:46
つか、VB の仕事やりたくねー。
半年やったさ、ああやったさ!!
やればやるほどフラストレーション溜まる
もう勘弁して下さい。お願いします。
417仕様書無しさん:01/11/15 01:55
言語じゃねえ! 人間だ!!

就職してから同じ職場に5年以上、他の職場へ出向いた経験のない
人間の中に突然放り込まないでくれ!!
世の中の常識が一切通用しない、閉じた世界観で語られるので
精神的に辛いよ!!
418仕様書無しさん:01/11/15 02:02
>>417
閉じた世界観って...もちっと具体的に
詳細希望。
419旅人プログラマ:01/11/15 02:24
>>414
ああ、(また)書き方がまずかったですね…

この場合は、
明示しなかったら***と解釈される(default)に甘える書き方は、
特に理由がない限り控えておいた方がいいですよ
と解釈しておいて下さい。
>>409では ByVal ByRefの辺りを指しています。
420旅人プログラマ:01/11/15 02:49
>>416
全面的に同意、
仕事とはいえ、痒い所に手の届かない文法仕様で
コードを書かないといけないのは辛いものがある
でも、それを言ってしまえばWeb系は壊滅的だし、
この辺りだけ見ると時間が逆戻りしてるようにしか見えない…
421仕様書無しさん:01/11/16 00:43
今月から派遣で行っている職場のCのソースの一例

if( SYSTEM_DATA == TYPE_1 ) DATA_WRITE;

どんな処理だか想像つきますか?
422仕様書無しさん:01/11/16 00:45
>>417
君は携帯の開発をやってる某氏では…。
VB使ってるの?
423422:01/11/16 00:46
あ、ごめん。
勘違いしてた。
ここはVBスレじゃなかったのね…。
424仕様書無しさん:01/11/16 00:48
if ( system_data == 1 ) printf ( "data" );
なら判るのか?
425仕様書無しさん:01/11/16 16:11
VB で
dim fail1,fail2,fail3

ファイル(file)のつもりらしい。
勝手に「失敗」してろ!!!
426仕様書無しさん:01/11/16 18:09
C言語でgoto使ってますけど・・・何か?
427仕様書無しさん:01/11/16 19:10
信じられない
この前の派遣先は、修正するプロgに3箇所ほどgotoがあったけど
終了時には、なくなってたぞ。
10年ほどプログラマしてるけどC言語でgoto使ってるのみたの
その一回とコボルから翻訳とたCのプログラムだけだ。
428仕様書無しさん:01/11/16 19:20
>>427
Cで、「gotoを使うべき」とされる事例がなかっただけだろ。
429お胸おっぱい:01/11/16 20:46
>>427
10年もやってて見たことないってのが俺には不思議だ。
if のチェーンとか、フラグとか
使ってたんだろか…
430そういえば:01/11/17 01:06
「goto文有害論有害論」ってどこ逝った?
431421:01/11/17 01:27
>>424
SYSTEM_DATA は、あるグローバル変数のある配列へのポインタをchar*でキャストしたものを3ビットシフトしたもの
TYPE_1 はある情報関数の引数を0x3Fで&したもの
DATA_WRITEはある関数へのポインタ

しかしDATA_WRITEの示す関数の中身は

void hogehoge( void )
{
return;
}
432421:01/11/17 01:28
という記述が山のようにあるソースコードの解析中です。鬱だ・・・
433仕様書無しさん:01/11/17 09:04
ポインタって、加算以外の算術演算(とか)ってやっていいんでしたっけ?
あと、DATA_WRITEの宣言を見てみたい。
434仕様書無しさん:01/11/17 13:12
>>433
減算
435仕様書無しさん:01/11/19 10:24
今、ソースレビュー頼まれているBeans、
クラス変数が....一画面以上あるんですけど...。
一体、どこまで続くのでしょうか...。

try〜catch〜finallyのネストが6段も
あるんですが....。
finallyブロック中のfinallyブロックからのthrowとかあるし。
コボラー(10年選手)にJavaは無理ではとハゲシクオモタ。
....鬱だ.......。
436仕様書無しさん:01/11/20 00:22
こないだまで仕事してた派遣先、
引数与えて条件分岐すれば済む処理を全部別の関数にして、
ほとんど同じ処理をする関数を12個作っててめちゃくちゃ笑えた。
437仕様書無しさん:01/11/20 01:30
>>435
> try〜catch〜finallyのネストが6段も
> あるんですが....。
> finallyブロック中のfinallyブロックからのthrowとかあるし。
激ワラタ。
438仕様書無しさん:01/11/20 01:46
みんな苦労してるんだね。
俺の職場も相当ひどいんだが、ここを読むとちょっとましかも
と思ってしまった。
でも、やっぱりもうやめたい。
439 :01/11/20 01:46
http://korea.hanmir.com/ktj.cgi?url=http://netizen.khan.co.kr/mainnewsviewer.php3%3fartid%3d20011119043556
否定的イメージを改善するために19日から来月16日までインターネット上に
現われた韓国関連間違いを捜し出す‘インターネット間違い狩り大会’を実施する.

http://japanese.joins.com/php/article.php?sv=jnews&src=soci&cont=soci0&aid=20011007225800400
ネット上の歪曲された韓国関連情報を正す為、「韓国を正しく知らせる事業」が来月から始まる。

今日本人の文化が韓国に奪われようとしている
これは韓国とのインターネット戦争だ
日本人は韓国人に空手が奪われた事実を忘れるなすべきだ
そして今現在剣道が奪われようとしてる現実を直視しろ
やつらにとって従軍慰安婦のような歪曲した歴史を流すことは容易いことだ

■韓国の竹島占拠
http://www2.justnet.ne.jp/~yoshiro/no_frame/history/honbun/takeshima.html
■従軍慰安婦についての真実
http://hamanasu.sakura.ne.jp/~hn7y-mur/forum/f052.htm
■何故韓国人がこれ程嫌われているのか
http://www.geocities.co.jp/WallStreet-Bull/6199/
■強姦は日本の10倍
http://www.across.or.jp/necizen/essay/e1998/e9810110.html
■暴行は日本の100倍
http://www.koreanavi.com/news/headline/20001128-11.html
■韓国内での強姦の届けは2%
http://www.netomo.com/cgi-bin/transkj.cgi?http://www.google.com/search?q=cache:TPPqjDdZ80g:aids.hallym.ac.kr/%BC%BA%C6%F8%B7%C2/newsex/sex1.html&hl=ko&lr=lang_ko
■韓国民の4人に1人が”前科者
http://www.worldtimes.co.jp/kansok/kan/soc/010730-1.html
■韓国での殺人は9時間4分に1回、強姦は1時間16分に1回
http://www.koreanavi.com/news/headline/20001128-11.html
440 :01/11/20 01:52
プログラムに興味があるんですけど、
プログラマってそんなに辛いですか?
楽しいこととかってあるんですか?
441 :01/11/20 01:55
マクドナルドの店員か、土方の方がマシかな
442 :01/11/20 01:56
ガ━━(゚Д゚;)━━ン!  ソ、ソウナノ、、、?
443仕様書無しさん:01/11/20 02:11
>>442
思いとどまるなら今のうち。
444 :01/11/20 02:14
営業スマイルとはいえ、
仕事中にため息をつくことは多分ないだろう彼女達

3K労働とはいえ、
働いている時間が金に直結する、汗に輝く男たち

プログラマーって、何だ?
445仕様書無しさん:01/11/20 02:37
>>440
モーホーなら男の園だよ
446 :01/11/20 02:50
>>445
給料はいいんですか?
447仕様書無しさん:01/11/20 05:34
445じゃないけど・・・

同年代のリーマンと比べりゃ良いほうじゃない?
先が見える分しっかり将来の設計をたてておかないと
まずいとは思うけど。
448仕様書無しさん:01/11/20 13:09
>447 プログラマ・SEは設計が苦手
449 :01/11/20 21:29
>>447
先が見えるというと、年を重ねるとキツイってことですか?
(プログラミング自体が)

それとも業界自体の先がみえてて、危ないってことですか?
現在24なんですけども定年までプログラマとしてやってくのは無理なんでしょうか?
450仕様書無しさん:01/11/20 21:35
とりあえず、「プログラマ35歳定年説」は年功序列時代に
ソフト業界の経営者が流したプロパガンダなのだが・・・。
>>449
頭が柔らかければ可能と俺は思うが、世間がどう見るかは判らない。
一応、小泉政権の政策で差別撤廃に動いてはいるが・・・。
451 :01/11/20 21:39
>>450
あと9年で定年・・・か。
プログラマってその後、つぶしきくんですか?
452仕様書無しさん:01/11/20 21:44
>451
つぶしは効きますよ。
潰して、石鹸にします。
453仕様書無しさん:01/11/20 22:43
50歳、PGですがなにか?
精神的に弱いやつは
確かに30代でだめになってくる。
精神的な問題だよ。しっかし、がんばってきたやつは
30ぐらいになると、残業はなくなってくる。
設計・見積もり・コーディング・テスト
どれも、的確になってくるからね。
肉体的には、決してきつくないとは言わないが、
十分60歳、70歳までもやっていけると思うよ。
454仕様書無しさん:01/11/20 22:55
>>453
いくらなんでも 70 は無理だろ (w
455仕様書無しさん:01/11/21 00:53
>>453
何系の仕事?
456仕様書無しさん:01/11/21 02:26
>>453
PG=プログラマだよ、普通は
あんたのは ポリスガード だろ
警備員なんて誰でもできるよ
457仕様書無しさん:01/11/21 03:02
>456
上手いような、冗長なような。
458447:01/11/21 03:50
>449
やはり歳でしょうか・・・技術屋としては生涯PGで居続けたいのですが、
経営陣としては新しい技術を効率よく吸収できなくなった時点で第一線
から退くのが務め・・・

業界云々は気にする必要はないのでは?冷え切った業界でも
儲かっている会社は沢山ありますし。
459449:01/11/21 04:25
>>458
なるほど、やるなら覚悟きめてがんばるしかなさそうですね。

どこの業界も昨今は厳しいらしいので、自分のやりたいことをやって
みます。

458さんもお体に気をつけてがんばってください。
460仕様書無しさん:01/11/22 07:09
main() からしてこんなんよ。
変数名が長すぎ。

int main(int IntArgumentCount, char *StringArgumentVector[])
{
 ・
 ・
 ・
 return(IntRerutnValue);
}

argc, argv でいいだろって感じ。
461仕様書無しさん:01/11/22 07:15
>>460
何で変数名の一番最初が大文字になってるんだ?
462仕様書無しさん:01/11/22 09:58
>>461
今の職場の人(工場)なんて、変数名が全部大文字だったり
20文字以上の変数名に _ 無しだったりして、更に英語+ローマ字で凄いことになっているよ

char flagcompanydataurawritedaiichi
463アルバイター:01/11/22 10:22
UNIX系(Cか?)いじりたおしてきたやつって、
flagcompany_dataura_writedaiichi
アンダースコアな人が多いような。

マック系(Pascalか?系はいらんか)いじりたおしてきたやつって、
flagcompanyDatauraWriteDaiichi
こういうのが多いような。

プラットフォームで、傾向が違うのかな?
464アルバイター:01/11/22 10:23
cを大文字にし損ねた。
465仕様書無しさん:01/11/22 11:38
>>462
漏れの派遣先はその変数なら

char fgcpy_duawtdi

になるな。略し方が無茶苦茶で、変数にコメント一切無いので
解読に死ぬほど精神力使っているYO
466仕様書無しさん:01/11/22 11:45
>>463
プラットホームというか最近は、アンダーバーで区切るスタイルは減少傾向。
(特にオブジェクト指向系は、大文字小文字で区切るスタイルが多数派)
467Kusakabe Youichi:01/11/22 12:06
いわゆるハンガリアン記法というのは、狭義には
Windowsのあるフレイムワークなどでよくつかわれる、
「最初1〜2文字が小文字でその変数の型などの性質を示す」+キャピタライズされた複数の単語の連続(下線は使わない)
ってものだけを指すこともありますね。
468462:01/11/22 12:18
>>466
アンダーバー、大文字で区分けを要求したら
「なるほど、それは画期的な方法だな」と感心されたよ(w
469462:01/11/22 12:23
職場の平均年齢は34
経験は短いので6年 長いので9年
他へ出向した経験のある人ゼロ(社員は)
漏れは11月からそこに出向
470仕様書無しさん:01/11/22 20:46
// CBar.cpp: CBar クラスのインプリメンテーション
#include "CFoo.h"
#include "CBar.h"

CFoo foo;

CBar::CBar()
{
}
CBar::~CBar()
{
}
CBar::func1()
{
return foo.func1();
}
CBar::func2()
{
return foo.func2();
}
//
// 以下ずっと続く
//
471仕様書無しさん:01/11/22 22:57
継承?
472仕様書無しさん:01/11/22 23:07
void bunki()
{
  switch (Status) {
  case 1:
    func1();
    Status++;
    break;
  case 2:
    func2();
    Status++;
    break;
  case 3:
    func3();
    Status++;
    break;
  }
}

みたいなの。
473仕様書無しさん:01/11/22 23:14
>472 オートマトンの状態遷移みたいなのだったらアリのような気もする。
Status++ はまずいだろうけど。
474仕様書無しさん:01/11/22 23:16
モンゴリアンといえばチョップだよね
475 :01/11/22 23:52
友よ心にモンゴリアンチョップはあるか!?
476仕様書無しさん:01/11/23 00:39
チョップといえばスクワッドだよね
477仕様書無しさん:01/11/23 00:41
エラーが出たんでログを見てみたら(´Д`)ハァハァと書かれていたよ。
もう、その日はそれで帰宅。
478仕様書無しさん:01/11/23 00:44
>>477
エラーログにそんなもん仕込んだ奴が俺の職場に居たらシめるね(w
479仕様書無しさん:01/11/23 00:44
>>473
ジャンプテーブルにしろ、という意味だと思いましゅ
480仕様書無しさん:01/11/23 00:50
>>478
仕込んだやつ大体わかる。
「〜ってどうよ?」が口癖のヤツいるんだ〜♪
481仕様書無しさん:01/11/23 00:52
>>480
リアルワールドでマターリとかキボンって言ってしまいそうに
なることない?
482仕様書無しさん:01/11/23 00:53
>>470
Javaだと それに似た「アダプタークラス」と呼ばれるクラスが、APIに はいってる。
483仕様書無しさん:01/11/23 00:59
>>481
マターリとかコソーリとかよく使うかも。
「コソーリ修正しとけよ!」 …鬱だ。
484仕様書無しさん:01/11/23 01:04
>>481
たぶんすでに「ゴルァ!」は使ってる。
あと、「これ。」とか「最強」とか、「諸刃の剣」とか。
485仕様書無しさん:01/11/23 01:08
>>484
隣のヤツに「ところで>>1よ。」とは言わないのか?
486仕様書無しさん:01/11/23 01:10
「角度」とかね。
487仕様書無しさん:01/11/23 01:42
ウチの会社の行き先掲示板には、
『xxxに逝ってきます』ってのがとても多い...
488仕様書無しさん:01/11/23 06:02
main()
{
/* コインいっこいれる */
}
489仕様書無しさん:01/11/23 11:55
>>488
アタリ?
490仕様書無しさん:01/11/24 22:26
for( ; ; )
if ( a == 1 ) {
continue;
}
hoge();
break;
}

こんなソースばっかり。 != を知らないのかねえ。
それとも、この方がいいことなにかあるのかねえ。
491仕様書無しさん:01/11/24 22:31
>>456
誰でもできるわけではない。アル中では勤まらない。
警備会社でさえも勤まらずクビになっている生き物がいる。
492仕様書無しさん:01/11/24 23:05
main()
{
/* バグはここに入れる */
}
493仕様書無しさん:01/11/24 23:12
>>490
NOTは嫌いって言う人は確かにいるな。
なんか理由あるのかもしれないけど。
494仕様書無しさん:01/11/24 23:35
>>490
よく判らないんだけど。

  for(;;)
   if(a==1){
    continue
   ;}
  hoge();
  break;
}
って事は、これはswitch文の途中なのか?他のループ文の中身なのか?
aはグローバル変数なのか?
説明無さ過ぎて訳がわからん、
俺は490こそ訳わからんと思う。

その程度の説明で他人に意図が伝わると思うな。コメントのセンスが無いとか言われるだろ?
495仕様書無しさん:01/11/25 00:07
for(;;) の後ろに { を付け忘れたものと思われ
496495:01/11/25 00:14
>>495 は >>490 のことね。
497490:01/11/25 00:46
>>495
サンクス
>>494
495さんの言うとおりだ
498490:01/11/25 00:47
>>494
センスについては言われたことがない

キミも文章の文字ばかりしか読めなくて、相手が何を意図しているかを
判断する能力に欠けているといつも言われているだろ?(w
499仕様書無しさん:01/11/25 00:48
お互いの欠点を補完しあえてよかったね。
きみたちコンビで仕事するといいよ。

では次のネタどうぞ。
500仕様書無しさん:01/11/25 00:49
>>498
一言「間違いだったYO!」と言えば済むことじゃないの?
501仕様書無しさん:01/11/25 00:54
>>500
わざわざ嫌味な言い方した>>494も悪い。
どっちもどっちってことだね。
502仕様書無しさん:01/11/25 01:14
continue と goto を使う奴は問題害
503仕様書無しさん:01/11/25 01:19
>>502
エラー処理を一箇所にまとめるのにgoto文使ってますが、何か?
504仕様書無しさん:01/11/25 01:24
>>502
gotoは必要なら使う。
continueは綺麗なloopを作るのに必須だったりする
場合もあるから、罪悪感はなかったけど、ダメなの?
505仕様書無しさん:01/11/25 01:25
>>503
そんなコード書いてるからMSにやられんだよ。
506仕様書無しさん:01/11/25 01:31
>>505
烈しく同意!
USのゲームPGが書いたコードを日本語化したことあるけど
goto continue どころかLOOPも少なかった。
無駄が無くて見易いんで驚いた。今でも参考にしてる。
507仕様書無しさん:01/11/25 01:32
大学時代にバイトに行った会社でうるう年の判定をif文の3重ネスト(4で割り切れる?100で割り切れる?400で割り切れる?)でやってるソース見た。しかもバグ入り。なんかこれがプロの仕事かとカルチャーショックだった。
そのバグを報告するのに書類を一枚、修正してまた一枚書かされたのが2重のカルチャーショック(バグ修正1分書類に30分)。
さらに修正したときに3重ネストをまとめて一個のif文にしたんだが、元のソース書いたやつにグチグチ文句言われて、さすがにこれはカルチャーの問題ではないと気がついた。
508仕様書無しさん:01/11/25 01:33
>>seven
適当なところで改行するのが吉かと。
509仕様書無しさん:01/11/25 01:35
>>507
うるう年判定くらい、探せばいくらでもサンプルあるのにねぇ。
ご愁傷様。
510490:01/11/25 02:03
498は漏れじゃないのに・・・
511仕様書無しさん:01/11/25 02:13
>>510
まぁまぁ
512仕様書無しさん:01/11/25 03:11
>506
漏れも参考に見てみたいよ>ジンガイコード
513仕様書無しさん:01/11/25 03:42
四角形を画面に出力するとき、頂点の座標を適当な数字を入れ、
「まだ、ちょっと曲がっているなぁー」
とか言って、座標をずらしてはコンパイルしている奴がいた。
514 :01/11/25 04:14
>>509
カーニハンの本にあるだろ。
515509ではないが:01/11/25 04:30
>>514
はぁ?
516仕様書無しさん:01/11/25 05:21
>>506
そのソース見てぇぇぇぇぇぇぇ、ってマジ思った。
517仕様書無しさん:01/11/25 07:32
>USのゲームPGが書いたコードを日本語化したことあるけど

あなたたちのゲームPGが書いたコード??
518sage:01/11/25 10:17
>>517
チミ つまんないね
519名無しおやぢ:01/11/25 11:51
>>509
あえてツッコミ。
車輪の再発明であることより、そんな程度のロジックさえまともに実装できない
ことの方が大問題。(って、わかっておられると思いますが)

車輪を再発明してみたら、形が歪なので、円周率を測定してみたら、3.00だった、
とゆー感じ。(なんか違うような・・・(^^;)
520仕様書無しさん:01/11/25 13:46
>>506
同意!
MLでNTのカーネル書いた人のコード見たことあるけど
スゲ―コンパクトだった。本物かどうか知らんが(W
コメントに「ここではメモリ確保に失敗する確率が高いので失敗側を優先する」って
日本語で書いてあった。コメント和訳して流すなよ>ML (W
521514ではないが:01/11/25 22:57
>>515
確かにある。
K&R本読め。
俺もうるう年判定間違ってるアホプログラムのメンテしたことあるよ。
そいやぁ、某C社の入力男は明治1年から和暦入力できるんだっけね。けけ。
522509ではないが:01/11/25 23:08
>>521
いや、そういうことじゃなくてね、
507→509→514って読んでいくと、
514の発言が文脈に合ってなくて
意味不明でしょ。
523521:01/11/25 23:38
>>522
509さんにサンプルの場所教える必要はないよね。確かに変だ。
俺もたまたま、K&Rの第二版で1行でできるうるう年判定のサンプル見たことがあるから、
脊髄反射してしまった。すまそ。
524なぎさっち:01/11/26 12:17
>>507
>そのバグを報告するのに書類を一枚、修正してまた一枚書かされたのが2重のカルチャーショック(バグ修正1分書類に30分)。

 ん?書類は一枚にまとめてくれ〜、ってこと?
525仕様書無しさん:01/11/26 15:40
今日見かけた職場のソース
if( state1 == 10 ||
  state1 == 11 ||
  state1 == 12 ||
  state1 == 13 ||
  state1 == 14 ||
  state1 == 15 ||
  state1 == 16 ||
  state1 == 17 ||
  state1 == 18 ||
  state1 == 19 ) {
  Foo( );
} else if( state1 == 20 ||
  state1 == 21 ||
  state1 == 22 ||
  state1 == 23 ||
  state1 == 24 ||
  state1 == 25 ||
  state1 == 26 ||
  state1 == 27 ||
  state1 == 28 ||
  state1 == 29 ||
  state1 == 30 ||
  state1 == 31 ) {
  Foo2( );
}
 こんなん(少しわかりやすく模式化)。
 なんか死にたい気分になった。
526仕様書無しさん:01/11/26 15:48
>>525
つか、これを書いた奴って、書いててめんどくさくなかったのかな...
527m:01/11/26 15:50
仕事場ってことは、ソフトとかのソースッテコンナンなの?
528スタトレヲタ:01/11/26 16:03
>>525
まだマシと思う漏れは異常なのだろうか?
529仕様書無しさん:01/11/26 16:06
>>525
これが何か、にもよると思うな。
オートマトンに従ってそのままコーディングしたものだと、
こうなっても悪くはない。
不等号使うのも状況によっては不適当なこともあるし、
状態番号にマクロ名を付けることに
どれだけ意義があるかも状況によるだろうし、
switch を使わないのは、
変数の初期化の問題が厄介だからと考えれば納得がいく。
530仕様書無しさん:01/11/26 16:12
と、とりあえず漏れならswitch〜caseにする。
531仕様書無しさん:01/11/26 16:22
switch?
いや、>>525を見る限り、普通はこうだろ?

if(10 <= state1 && state1 <= 19){
   Foo();
}else if(20<= state1 && state1 <= 31){
   Foo2();
}
532仕様書無しさん:01/11/26 16:35
>>531
その状態変数の持つ意味によっては不等号は用いたくないな。
533仕様書無しさん:01/11/26 16:46
state1 が double とかだったらもっと面白いのに...
534仕様書無しさん:01/11/26 17:23
状態遷移の変数には列挙型がよく似合う。
535仕様書無しさん:01/11/26 18:37
状態が20もあることが問題だな
問題の分析がよろしくない
536仕様書無しさん:01/11/26 19:03
#ifdef
printf("会社辞めろ");
#endif
537仕様書無しさん:01/11/26 19:05
>>536
no macro name given in #ifdef directive.
538仕様書無しさん:01/11/26 19:08
#ifdef _DEBUG
printf("会社辞めろ");
#endif
539仕様書無しさん:01/11/26 19:37
>>538
むしろ #ifndef の方が嫌だな。
540仕様書無しさん:01/11/27 05:36
>>507
PGもしくはPG系SEの方の60%はそのパターンでしょうね
デバッグの報告書出すのに30回リテーク喰らった事あるよ(笑
報告書の内容がまずいんじゃなくて単にその方の仕事のタスクが
埋まってただけの事だったんだけど コンピュータと同化しちゃ
ってる方多いから・・・書類のすみっこに 時間待ちは何分?
って書いて指定時間に届けたら受理されましためでたく♪
541仕様書無しさん:01/11/27 16:28
うるう年の判定は、林春比古のスーパービギナー編に載ってるよ。

if ( ( n%4 == 0 && n%100 != 0 ) || n%400 == 0)

ガイジンのソースは、DOOM でいいのでは。
542仕様書無しさん:01/11/27 16:29
>コンピュータと同化しちゃってる方多いから・・・

↑ワラタ。
543アルバイター:01/11/27 17:34
>うるう年の判定は・・・

私は研修の時、ダイテルさんの、
C++なんたらかんたらの本を観て作りました。
林春比古さんのと同じだったと思います。
ただ、400で割るのが一番左じゃなかったかな?違ったかな。
それはともかく、
「バグゥだ!ゴラァ!」って、研修の先生に言われました。
544アルバイター:01/11/27 17:38
なんかぼけたことかいてしまった。
新人SEの作った規約。「識別子は日本語にすること」

for (int カ = 1; カ < 10; カ++) {
  for (int キ = 1; キ < 10; キ++) {
    System.out.println( カ * キ );
  }
}
こんな感じで・・・・・・。
従うDQNはいませんでしたがね。
546仕様書無しさん:01/11/28 22:48
>>545
画期的すぎ!
547仕様書無しさん:01/11/29 03:26
漏れの職場では、
 「変数名はむやみに長くしないこと」 → 1文字変数多用
 「グローバル変数とローカル変数の区別がつくようにすること」
   → グローバルは全部大文字、ローカルは全部小文字

という謎な発想をした人のソースのおかげで参ってます
548仕様書無しさん:01/11/29 07:26
1文字はアレだが、
>「グローバル変数とローカル変数の区別がつくようにすること」
>   → グローバルは全部大文字、ローカルは全部小文字
ってのは別におかしくないんじゃ?
549仕様書無しさん:01/11/29 07:27
あ、全部か。それはやっぱりいやかも
550547:01/11/29 08:17
そ。構造体の名前なんかデファインの値なのか区別つかないんだよ。
551仕様書無しさん:01/11/29 09:17
目的はどっちも正しいと思うけど、
手段がイカン。
552仕様書無しさん:01/11/29 18:56
>>541
個人的にnではなくyearを使いたいんだが、どうよ。
553541:01/11/29 23:45
いや、嫌。
554仕様書無しさん:01/11/30 13:03
// 2001/01/01 add あけおめ
555仕様書無しさん:01/11/30 22:30
転職2週間で見たコード・・・Javaね。

DataStructure1 ds1;
DataStructure2 ds2;
DataStructure3 ds3;
 ・・・
DataStructure1 ds1clone;
DataStructure2 ds2clone;
DataStructure3 ds3clone;

Vector v = new Vector();
v.add(ds1);
v.add(ds2);
v.add(ds3);
 ・・・
for(int i=0; i<v.size(); i++){
 if(v.elementAt(i) instanceof DataStrcture1){
  ds1clone = (DataStructure1)v.elementAt(i).clone();
 }else if(v.elementAt(i) instanceof DataStrcture2){
  ds2clone = (DataStructure2)v.elementAt(i).clone();
 }else if(v.elementAt(i) instanceof DataStrcture3){
  ds3clone = (DataStructure3)v.elementAt(i).clone();
 }
}
556仕様書無しさん:01/11/30 23:53
クラスのprivateで宣言した変数をローカル変数だと勘違いしてるDQNプログラマって結構多くない?
private変数ってクラスの中では立派(?)なグローバル変数なのに‥privateなんてついてるから気が緩んだのか?
ってか、クラスの中で変数を使い回ししてて、何やってんのかサパーリわかんない!
今すぐ直せや!ゴルア
557仕様書無しさん:01/12/01 00:03
>>556
クラスにstatic変数とstatic関数しかないCOBOLER
上がりPGのソースとか。
558仕様書無しさん:01/12/01 00:05
サブクラスで、全てのメソッドを親クラスと同じ実装で
オーバーライドしていた(つまりオールコピペ)うちの
同僚。なにがしたかったのよ?
559仕様書無しさん:01/12/01 00:16
あれだよ、ほら、
継承するとオブジェクト指向っぽいじゃん
560仕様書無しさん:01/12/01 00:21
>>559
う、ううん。
そう、そうだよね。そう思うよね。




んな訳ねーよ。
561仕様書無しさん:01/12/01 00:31
オーバーライドしたつもりで基底クラスのメソッドが
virtualになってなかったりして。
562仕様書無しさん:01/12/01 00:56
確か通信部分のプログラムでこんなことしてたやつが、、、。

if ( 1 == SendData(intHOE) ) {
SendData(intHOE);
}

客「データが、二重になってるんですが、どうしてでしょう?」
563仕様書無しさん:01/12/01 01:07
struct{
char year[4]; /* 西暦年 4桁 */
char month[2]; /* 月 2桁 01-12 */
char date[2]; /* 日 2桁 01-31 */
char dmy; /* ダミー 1桁 NULL */
}day;
564仕様書無しさん:01/12/01 01:13
ところで春分ってどうやって判定するの?
宮内庁が決めるらしいんだが。

春分かどうか判定しなければいけない時って無い?
どうやるの?
スレ違いでスマン。
565仕様書無しさん:01/12/01 01:16
>>564
取り合えず、現状の春分の仕様をそのままコーディングすりゃいいじゃん
566   :01/12/01 01:22
以外とC++シロートが多いんだな。
同じ職業者としては不安だす。
そんな人とは組みたくない。
567仕様書無しさん:01/12/01 01:23
>>564
一応簡易計算式はあるらしいよ。googleで検索すれ。
568仕様書無しさん:01/12/01 01:29
そうなんだ。計算できるんだね。
でも3月20日か3月21日かは宮内庁が決めるってどっかに書いてあった。
これってまずいよね。どうして日本はこういう面倒な決まり事があるのか。
569Kusakabe Youichi:01/12/01 04:18
>>564 仕様書無しさん wrote:
> ところで春分ってどうやって判定するの?
> 宮内庁が決めるらしいんだが。

宮内庁じゃなくて、
東京天文台の水路部では?

> 春分かどうか判定しなければいけない時って無い?
> どうやるの?

ふつうに計算すればいいですね。
ただ計算結果が24時近くの数分のところになったばあいは
実際にそのときになってみないと(多少地球の軌道もずれてるかもしれんし)、
どうなるかはわからないですね。
570仕様書無しさん:01/12/01 23:45
>>563
それは
日->date
日付->day
だからイヤーンって事かぁ。

……何故だろうなぁ……
571仕様書無しさん:01/12/01 23:50
インターネット普及する以前に、春分秋分の計算式を探して
天文の本やら百科事典やら探しまくったことがあったんだけど、
結局分からなくて、あきらめたことがあった。

この前、ネットで計算方法を検索したら5分で見つかってやんの。
便利になりすぎ。
572仕様書無しさん:01/12/02 00:01
>>571
おなじ苦労をした人間が全国で256人ほどいると思われ。
「こんなに苦労してるんだから、他にも困ってる人がいるに違いない。そいつらのためにもドキュメントにまとめてwebにあげておこう」
と思ったに違いない。
573お胸おっぱい:01/12/02 00:06
>>571
あー、俺も。
図書館まで行って、禁帯出のゴツイ本ひっくり返して調べても
何だかえらく複雑な話 (と式) しか出てこなくて。
それが今なら計算方法どころか、作ろうとしてたソフトそのものが
あったり。萎えるなぁ。
574Kusakabe Youichi:01/12/02 04:47
>>571 仕様書無しさん wrote:
> インターネット普及する以前に、春分秋分の計算式を探して
> 天文の本やら百科事典やら探しまくったことがあったんだけど、
> 結局分からなくて、あきらめたことがあった。

インターネットが普及する以前から、fj.rec.astroあたりで「FAQ」と
されてましたよ。
575仕様書無しさん:01/12/02 05:45
昔、外注さんが「レビューしてっ」と言うのでソースを見た。
たしかこんなコードだった(ByC言語)
p_ListIdx = (char *)malloc(1024);
if (p_ListIdx != NULL){
return(-1);
}else{
memset(p_ListIdx,0,1024);
}
return(0);
そいつはその問題の箇所を抜けぬけとmalloc失敗時はエラーで復帰しますとぬかした。
って一体お前はどこの領域を使う気だ?
お前のプログラムはBIOSもしくはカーネルなのか?と聞きたかった。
が、彼は3日でわが社を後にした。
最後に「君がいっぱいいっぱい割り付けたメモリ返してってね」
と言いたかったがやめておいた。
合掌
576仕様書無しさん:01/12/02 06:10
ベテランSEが作ったコーディング規約。

変数は全て大文字。
リークの危険が無いようにmalloc系関数は使用禁止。



まじで辞めたかったが、最後には規約を無視した。
577仕様書無しさん:01/12/02 08:28
malloc使用禁止だったある職場。

単に使い方がわからない人がコーディング規約つくっただけだった、ということが
後に判明・・・・・・・・・・・・

char a[255];

a = malloc( 255 );

とか書いてて爆笑
>>570
'\0'の分はどうすんだゴルァ、ってことぢゃねーの?
579仕様書無しさん:01/12/02 08:52
固定変数領域はバグの素?
>>570
一続きの文字列として末尾のdmyを利かせるつもりなら、
アライメントのせいで途中にゴミが入るおそれがあるし。
581仕様書無しさん:01/12/02 09:44
>580
静かに同意。4byte alignment は基本だ(偏

しかし、そもそも char で確保しているのが謎。
二桁だから char date[2] とか、セコイ確保の仕方をすると
サイズチェックとかが増えて逆に面倒なんだよなー。
全部 int で確保して必要な時は文字列に変換、だろ。
582仕様書無しさん:01/12/02 10:24
>>575
これって、このスレに書き込むほど酷いコードなのか?
ただの typo だろ?
583Kusakabe Youichi:01/12/02 10:24
>>577 仕様書無しさん wrote:
> malloc使用禁止だったある職場。
> 単に使い方がわからない人がコーディング規約つくっただけだった、ということ

> 後に判明・・・・・・・・・・・・
> char a[255];
> a = malloc( 255 );
> とか書いてて爆笑

っていうか、本当にそう書いてあったらコンパイラーがエラーだすはずですが。
584Kusakabe Youichi:01/12/02 10:25
>>578 ミ(゜◎゜)ミ ◆c2uMaIpA wrote:
> >>570
> '\0'の分はどうすんだ剤戳、ってことぢゃねーの?

...。そんなマヌケなことしか思いつかないなら
いちからやりなおしたほうがいいのでは? (^^;
585577:01/12/02 10:33
>>583
いやね、ある処理でmalloc使うほうがどう考えても効率的だって話になってね。
その規約作った現在サブリーダーの人がそのツール的関数担当することになって。
数日後、メールで「悪いけどどうしてもコンパイルが通らないのでちょっとソース見てくれないか」ときたメールの内容が、アレ。
凄いよ三○谷さん(ここ見ているはずねーから知人バレ(ww
586Kusakabe Youichi:01/12/02 10:39
>>585 577 wrote:
> その規約作った現在サブリーダーの人がそのツール的関数担当することになって

> 数日後、メールで「悪いけどどうしてもコンパイルが通らないのでちょっとソー
ス見てくれないか」ときたメールの内容が、アレ。

でもそういう程度の人間のをいちいち笑ってるやつって
ずいぶんレヴェル低いどれの同類にしか見えないが:)
587仕様書無しさん:01/12/02 10:45
>>586
> でもそういう程度の人間のをいちいち笑ってるやつって
> ずいぶんレヴェル低いどれの同類にしか見えないが:)

やっと自分のことを客観的に見られるようになりましたね。
588Kusakabe Youichi:01/12/02 10:49
>>587 仕様書無しさん wrote:
> >>586
> > でもそういう程度の人間のをいちいち笑ってるやつって
> > ずいぶんレヴェル低いどれの同類にしか見えないが:)
>
> やっと自分のことを客観的に見られるようになりましたね。

はい。わたしはそういうことしませんので:)
589仕様書無しさん:01/12/02 10:53
>588
(^^; とか :) って笑いの意味が含まれると思っていたのですが
違う場合もあるみたいですね。
590Kusakabe Youichi:01/12/02 10:54
>>589 仕様書無しさん wrote:
> >588
> (^^; とか :) って笑いの意味が含まれると思っていたのですが

はつみみです。
591仕様書無しさん:01/12/02 11:00
>>589
それはフェイスマークでなく、文字化けか誤植に決まってます。
592仕様書無しさん:01/12/02 11:11
あの・・Kusakabe Youichiさんとはレスのやり取りしないでください
>Kusakabe Youichiさん以外の人
593ミ(゚◎゚)ミ  ◆c2uMaIpA :01/12/02 11:13
>>548
> '\0'の分はどうすんだ剤戳、ってことぢゃねーの?
そんな文章書いた覚えねーですが。
悪いけど改竄しないでくれるぅ?
あ、>>584だった。
595仕様書無しさん:01/12/02 11:16
Kusakabe Youichiさんとはレスのやり取りしないでください
>Kusakabe Youichiさん以外の人
596589:01/12/02 11:17
おっと失礼。初めてお会いしたものでつい記念に。
それから>593の件は単に文字化けと思われ。
597Kusakabe Youichi:01/12/02 11:20
>>596 589 wrote:
> おっと失礼。初めてお会いしたものでつい記念に

はじめまして。
598仕様書無しさん:01/12/02 16:27
589=aho
599仕様書無しさん:01/12/08 01:00
/*NULLの場合は終了する*/
if (key == null) {

  /*エラー設定*/
  Header.setErrUmu("1");
  Header.setErrCd("0001");

  /*自分を開放*/
  this.finalize();

return applData;
600仕様書無しさん:01/12/08 01:43
自分の書いたコードを見直してたら、
int yeah, maonth, day;
とあって、全部「yeah」で統一されていた。
恥ずかしいぜ、オウ、イエイ。
601仕様書無しさん:01/12/08 01:50
>>600
maonthにはつっこまないのか・・・?
602仕様書無しさん:01/12/08 02:02
>>600
どうせなら、
「dey」で統一してほしかったな。
603600:01/12/08 02:05
>>601
maonth は、500を書くときに間違えてました。
逝かなきゃ...
604仕様書無しさん:01/12/08 02:06
世界的超優良企業のプログラム
1 C言語のソースの最後に#undefがひたすら並んでいた
そのソースで定義されたマクロを全てundefするのが決まりです。
2 何百とある関数の全てが引数無し、戻り値無しvoid func(void);
値渡しはグローバル変数が基本
605フロマット:01/12/08 02:07
formatが全部fromatになってたことはあった
606仕様書無しさん:01/12/08 02:25
>>600
飲みすぎです
607仕様書無しさん:01/12/08 02:29
.cファイルの中身がmain()だけで、それが3000行以上あるプログラムの
改修をやらされた。しかも構造体名、メンバ名はオール大文字で、マクロ
みたいに見えて気持ち悪くてしょうがなかった。
COBOL出身のオヂサンがつくったプログラムらしかった。
あと、「モジュール」が"mojure"になってた…仏語かよ。 モンジュール!!
608仕様書無しさん:01/12/08 02:34
今Javaの仕事してるけど、みんなで出来のよくないVBみたいなコード書いてるよ。
画面に対しての処理が並んでるような・・・
609仕様書無しさん:01/12/08 08:24
微妙にスレ違いだが、先週からプロジェクトに加わったC経験2年のやつの素晴らしい一言

そいつ 「なんかここのソース、へんなのばっかりですねえ」

(俺も派遣で、そう思ってた。ここの技術者のコードって外に見せられないような糞コードばっかり)

おれ 「まあ、独特ではありますねえ」

そいつ 「この関数なんて、voidなのにreturn使ってますよ。これよくエラーでませんねえ」

おれ 「・・・・・
610仕様書無しさん:01/12/08 09:35
>>609
void関数を途中で抜けるときにreturn使うけど・・Cだよね?
611仕様書無しさん:01/12/08 10:29
>609
俺は void関数の返り値をチェックしているのを見たことがある・・・
612仕様書無しさん:01/12/08 10:45
>>608
全部のメソッドと変数にpublic staticがついてないか?
613仕様書無しさん:01/12/08 11:00
>>607
ごめん、ワラタ。
614仕様書無しさん:01/12/08 11:12
>>609-611
すると、
unsinsed int Hoge()
{
    |
  return -1;
}
くらいは、カワイイ方なのか?(鬱
615仕様書無しさん:01/12/08 11:13
CP/Mのころは #define void int だったからなあ。
616仕様書無しさん:01/12/08 11:14
(´-`).。oO(#define void char にしろという論議もあった気がする・・・)
617仕様書無しさん:01/12/08 11:26
>>615-616
public:
 int func( void );
 int func( char );
 int func( int );
とかって書くと困りません?
618Kusakabe Youichi:01/12/08 11:29
In article >>611, 仕様書無しさん/611 wrote:

> >609
> 俺は void関数の返り値をチェックしているのを見たことがある・・・

「かえりち」って読むんですか? :)
619Kusakabe Youichi:01/12/08 11:30
In article >>611, 仕様書無しさん/611 wrote:
> 俺は void関数の返り値をチェックしているのを見たことがある・・・

In article >>614, 仕様書無しさん/614 wrote:
> すると、
> unsinsed int Hoge()
> {
>     |
>   return -1;
> }
> くらいは、カワイイ方なのか?

っていうか、どっちもコンパイラーが警告出しますね。

そんなんで喜んでいるようではかなり低レヴェルな...。
620仕様書無しさん:01/12/08 11:32
>>618
「ヘンリアタイ」って読むに決まってんだろ
621仕様書無しさん:01/12/08 11:33
>>619
ネタニマジレスシテルヨ、コノヒトキショイ
622仕様書無しさん:01/12/08 11:34
>>619
そりゃ、「unsinsed」ではコンパイラがエラーを返すだろうなぁ。
それで?
623仕様書無しさん:01/12/08 11:35
>>622
糞壁さんとしては、警告で済むというご意見のようです
624仕様書無しさん:01/12/08 11:36
>>617
CP/Mのころだって言ってるじゃん。
625仕様書無しさん:01/12/08 11:37
typedef signed unsinsed;
626Kusakabe Youichi:01/12/08 11:41
In article >>622, 仕様書無しさん/622 wrote:

> >>619
> そりゃ、「unsinsed」ではコンパイラがエラーを返すだろうなぁ。

「かえす」のですか? :)
627Kusakabe Youichi:01/12/08 11:42
In article >>623, 仕様書無しさん/623 wrote:

> >>622
> 糞壁さんとしては、警告で済むというご意見のようです

それははつみみです。
628Kusakabe Youichi:01/12/08 11:42
In article >>624, 仕様書無しさん/624 wrote:

> >>617
> CP/Mのころだって言ってるじゃん。

その時代のコンパイラーだって警告出しますよ。
629仕様書無しさん:01/12/08 11:44
>>628
Lintなら警告出すだろうけど、コンパイラーは出しませんね。
Warning.
630Kusakabe Youichi:01/12/08 11:48
In article >>629, 仕様書無しさん/629 wrote:
> Lintなら警告出すだろうけど、コンパイラーは出しませんね。

出しますよ。
631bat:01/12/08 11:54
>>626
返すけど何か?
632Kusakabe Youichi:01/12/08 12:02
In article >>631, bat/631 wrote:

> >>626
> 返すけど何か?

貸してたの?
633仕様書無しさん:01/12/08 12:10
((( ⊂⌒~⊃。Д。)⊃ オマエCP/Mデコンパイラウゴカシタコトナイダロ
634617:01/12/08 12:59
正直CP/Mが何かよく知らなかった。
そか、C言語でも関数のプロトタイプ宣言すら不要な時代の
オペレーティングシステムだったんだね。
無知スマソ。
635Kusakabe Youichi:01/12/08 13:21
In article >>634, 617/634 wrote:
> 正直CP/Mが何かよく知らなかった。
> そか、C言語でも関数のプロトタイプ宣言すら不要な時代の
> オペレーティングシステムだったんだね。

オペレーティングシステムじゃないってば。
636仕様書無しさん:01/12/08 13:26
>>632
貸したから、返すんだろ。いちいち分かりきったこと聞き返すな、ヴォケ!
637仕様書無しさん:01/12/08 13:26
CP/Mとその当時のソフトウェア産業の状況もしらんくせに出しゃばるな儒子めが。
638仕様書無しさん:01/12/08 13:27
>>635
無駄な転送を行っております。不必要な引用は避けてください。
639仕様書無しさん:01/12/08 13:28
今まで見た中で一番のヘタレっぷりだな
640Kusakabe Youichi:01/12/08 13:33
In article >>636, 仕様書無しさん/636 wrote:
> 貸したから、返すんだろ。いちいち分かりきったこと聞き返すな、(I笠?X

文字化けしてますよ。
なんでエラーを貸したの?
641Kusakabe Youichi:01/12/08 13:34
In article >>637, 仕様書無しさん/637 wrote:

> CP/Mとその当時のソフトウェア産業の状況もしらんくせに出しゃばるな儒子めが。

でもオペレイティングシステムでもOSでもないですね。 > CP/M
642Kusakabe Youichi:01/12/08 13:34
In article >>638, 仕様書無しさん/638 wrote:
> 無駄な転送を行っております。不必要な引用は避けてください。

とか書くほうがよほど無駄ですね:)
643Kusakabe Youichi:01/12/08 13:35
In article >>639, 仕様書無しさん/639 wrote:

> 今まで見た中で一番のヘタレっぷりだな

ということにしたいのですね? :)
644:01/12/08 13:40
>>640
> なんでエラーを貸したの?

返して貰うために貸したんでしょ?
645Kusakabe Youichi:01/12/08 13:48
In article >>644, 梨/644 wrote:

> >>640
> > なんでエラーを貸したの?
>
> 返して貰うために貸したんでしょ?

なんでわざわざ? > 返して貰うために貸した
利子でももらうのだろうか?
646仕様書無しさん:01/12/08 13:50
>>645
どうでもいいけど本物のアドレス別のに変わってるぞ
647Kusakabe Youichi:01/12/08 13:56
In article >>646, 仕様書無しさん/646 wrote:

> >>645
> どうでもいいけど本物のアドレス別のに変わってるぞ

そういうのはにせものって言うのでは? :)
648仕様書無しさん:01/12/08 13:58
釣れた釣れた
649ふつーATOK:01/12/08 14:01
お、活きのいい偽日下部が釣れたね。刺身で頼むよ。
650仕様書無しさん:01/12/08 14:05
脂がのってるんで、焙ります?
651:01/12/08 14:14
>>645
> 利子でももらうのだろう

貧乏人の発想力では、その程度が限界なんでしょうね:)
652Kusakabe Youichi:01/12/08 14:18
In article >>651, 梨/651 wrote:

> >>645
> > 利子でももらうのだろう
>
> 貧乏人の発想力では、その程度が限界なんでしょうね

っていうか、もう何も思いつかなかったのですか? ;)
653:01/12/08 14:20
やばい。
意味不明なレスを返された時にどう対処していいかわからん。

>>652
ふつー、エラーから利子を貰おうと思う人はいませんね:)
654Kusakabe Youichi:01/12/08 14:24
In article >>653, 梨/653 wrote:

> やばい。
> 意味不明なレスを返された時にどう対処していいかわからん。
>
> >>652
> ふつー、エラーから利子を貰おうと思う人はいませんね:)

え、貸した相手はコンパイラーだったのでは?

無関係の人からとりたてると法律違反ですよ。
655仕様書無しさん:01/12/08 14:27
無関係の人から取り立てるのはどの法律のどの条項に違反しているのですか?
656仕様書無しさん:01/12/08 14:28
>>655
クサカベ法典
657仕様書無しさん:01/12/08 14:30
>>640
・文・字・化・け・し・て・る・の・は・、・あ・ん・た・の・コ・ン・ピ・ュ・ー・タ・の
・設・定・が・ま・ず・い・か・ら・だ・よ・
・2・ち・ゃ・ん・で・は・1・バ・イ・ト・カ・ナ・は・正・式・な・文・字・コ・ー・ド・だ・、
・A・A・が・存・在・す・る・限・り・な・。・
658仕様書無しさん:01/12/08 14:56
>>654などをみてわかるように、
偽日下部が得意とするのは全文引用である
659仕様書無しさん:01/12/08 15:04
にせかべや ひまにまかせて だいしゃりん
660お胸おっぱい:01/12/08 15:14
>>657
“コンピュータの設定”て。
それは置いといても、もう少し勉強してから来た方がいい。
661仕様書無しさん:01/12/08 19:17
>>660
あ、おっぱいちゃんだ。
で、どんな勉強してるの?
662仕様書無しさん:01/12/08 21:19
BOOL foo(void);

返り値
TRUE: 成功
FALSE: 失敗
ERROR: エラー

もうどうにかして…
663お胸おっぱい:01/12/08 22:05
>>661
いろいろだよん。

>>662
Win にもあるし。
 BOOL GetMessage(
  LPMSG lpMsg, // メッセージ情報
  HWND hWnd, // ウィンドウのハンドル
  UINT wMsgFilterMin, // 最初のメッセージ
  UINT wMsgFilterMax // 最後のメッセージ
 );

 WM_QUIT 以外のメッセージを取得した場合、0 以外の値が返ります。
 WM_QUIT メッセージを取得した場合、0 が返ります。
 エラーが発生した場合、-1 が返ります。
664仕様書無しさん:01/12/08 22:30
もうBOOLとは呼べない。
665仕様書無しさん:01/12/08 22:45
VBで
On Err Goto 何々:

何でErrやErrorだろが,おまけに最後の:(コロン)は何やと小1時間問い詰めたい。

あほうが多すぎ。
666仕様書無しさん:01/12/08 22:51
>>664
「BOLはBOOLであってブール代数とは関係ありません」がMSの見解かも。
667666:01/12/08 22:54
訂正。
>>664
「BOOLはBOOLであってブール代数とは関係ありません」がMSの見解かも。
668仕様書無しさん:01/12/09 00:31
>>663
GetMessage() は似非 BOOL だけど、PeekMessage() は本当の BOOL (エラーは帰ってこない)
なんだよね。PM_REMOVE を指定すると GetMessage() と似たようなものだと思うんだが、謎だ。
669仕様書無しさん:01/12/09 01:25
はっはっは。
うちのプロジェクトには8,000行オーバーのクラスがあるぞ。
その他にも4桁のクラスが目白押し。たぶん100以上ある。
しかも、そんなクラスですも、メソッドは2〜3個。

ダレカタスケテ・・・
670669:01/12/09 01:31
ですも -> ですら

書き忘れた。
いちおうJavaです。だれもオブジェクト指向なんて理解してないでしょう。
671490:01/12/09 07:02
ホワイトスペースとTABが混在しているソースコード
672仕様書無しさん:01/12/09 07:47
ホワイトスペースとホワイトベースが混在しているソースコード
673仕様書無しさん:01/12/09 12:14
ホワイトソースとホワイトスペースが混沌としているン─スコ─ド
674仕様書無しさん:01/12/09 12:56
全角スペースが入っているけどたまたまコメントだったのでコンパイル通って
ラッキー,なソースコード。
675仕様書無しさん:01/12/09 13:10
漏れ、全角スペースでコンパイルが通らず、
一時間ぐらい悩んだことがある。
676仕様書無しさん:01/12/09 13:19
秀丸とかで全角文字表示やってないやつが、たまに陥るな
あと、何度いっても

/*
 〜〜〜
 /**/
 〜〜〜
*/

は無理っていうのが理解できないやつもいる
677Kusakabe Youichi:01/12/09 13:22
In article >>676, 仕様書無しさん/676 wrote:
> /*
>  〜〜〜
>  /**/
>  〜〜〜
> */
> は無理っていうのが理解できないやつもいる

昔はそれをできるようにするローカルな拡張があるコンパイラーが多かったですね。
まあ、いまは「//」を使えばいいので、そんな機能があるコンパイラーも減りましたが。
678仕様書無しさん:01/12/09 14:27
>>677
> 「//」を使えば
何がよいのですか?
679仕様書無しさん:01/12/09 14:39
コメントのネストで悩まないで済む。
680Kusakabe Youichi:01/12/09 14:49
In article >>678, 仕様書無しさん/678 wrote:
> > 「//」を使えば
> 何がよいのですか?

意味不明な質問ですね。
681Kusakabe Youichi:01/12/09 14:58
In article >>680, Kusakabe Youichi/680 wrote:

> 意味不明な質問ですね。

そういうことにしたいのですね。
682仕様書無しさん:01/12/09 15:02
組み込み向けコンパイラでは、いまだもって
コメントとして"//"が使えないものもあります(泣
683仕様書無しさん:01/12/09 15:08
>>676
コメントを色付きで表示してくれるエディタなら問題なし
684仕様書無しさん:01/12/09 15:08
>>677
コンパイラって、何のコンパイラ?
685Kusakabe Youichi:01/12/09 15:09
In article >>682, 仕様書無しさん/682 wrote:

> 組み込み向けコンパイラでは、いまだもって
> コメントとして"//"が使えないものもあります(泣

まあそれは標準規格に適合していないっていうだけのことで。
686Kusokabe Youichi:01/12/09 15:11
In article >>684, 仕様書無しさん/684 wrote:

> コンパイラって、何のコンパイラ?

民明書房ソフトウェアのだしてる角度付きのやつです:)
687仕様書無しさん:01/12/09 17:40
>>686
民明書房は武闘本と歴史本以外に技術書も出していたのか。
688仕様書無しさん:01/12/10 17:04
ところでさ。
mallocってみんなどう読んでいる?

(1)エムアロック
(2)まろっく
(3)えむえーロック

俺は(1)
689仕様書無しさん:01/12/10 17:19
>>688
まろっく、りあろっく、きゃろっく、あろっか
(四段活用)
690仕様書無しさん:01/12/10 17:47
>>688
おいら「ま〜ろっく」
691仕様書無しさん:01/12/10 17:51
俺はエムアロック、シーアロック、リアロック派
692仕様書無しさん:01/12/10 17:56
>>688
(4)えむ あろぅく
て読んでたけど、周りが (2) の読み方をしてたので、
いつの間にかうつった。
693偽ASIMO:01/12/10 18:15
えむぁーろっく
694仕様書無しさん:01/12/10 18:19
>>607
爆笑してコーヒー吹き出してしまった。
モンジュール!
695仕様書無しさん :01/12/10 18:20
ころっけ
696688:01/12/10 18:26
そうか・・・「まろっく」も結構呼ぶんだな。ありがとう >>返答者ALL
ここの職場、今までの読み方が尽く通じないから、またネタかと思ってたのだ。

通じない呼び方の例:
 define(デファイン) ・・・デフィン
 cording(コーディング) ・・・コーフィング
 debug(デバッグ) ・・・デバッガ
 単体テスト ・・・単独テスト
 simulate(シミュレート) ・・・シュミレート
 LANケーブル ・・・LAN線(らんせん)
 Virus Baster ・・・ウイルスチェッカー
 Header File ・・・ヘッダソース
 Compile ・・・結合(けつごう)



漏れはmemory allocateだから、「えむ・あろっく」と呼んでたんだが。
ん。memcmp, memmove, memcpy は「めむ・〜〜〜」って呼んでるから、
「めむ・あろっく」のほうがいいのか?
697仕様書無しさん:01/12/10 18:54
>>696
とにかく可能な限り字面どおり読む。発音が困難なら母音を無理やり入れたりするが。
memcmpは「めむこんぷ」
strcpyは「すとらこぴー」 (苦しい)
mallocは「まろっく」
charは「ちゃー」
cronは「くろん」
masmは「ますむ」
だなあ。
698仕様書無しさん:01/12/10 19:41
>>697
charは「シャア」
と読みますが、なにか?
699 :01/12/10 19:42
つまらん
700仕様書無しさん:01/12/10 20:20
私が始めた頃は、C++だったので、
先輩達は使ってたけど、俺はmallocは使罠買ったよ。
701仕様書無しさん:01/12/10 20:37
× 使罠買った
○ 塚得な狩った
702仕様書無しさん:01/12/10 21:40
memcmpは「ねむこんぷ」
.は「ぽち」 (main.c -> メイン ぽち しぃ)

そう教育されましたから まちがってる?
703仕様書無しさん:01/12/10 21:44
sysVはなんて読む?
704仕様書無しさん:01/12/10 22:02
よみかた、なら子熊ちゃんが面白かった。

>sysV
ば、バルタン…
705仕様書無しさん:01/12/10 22:34
main.c -> メイン しぃ
暗黙の「.」が解らん奴に用はない。
706仕様書無しさん:01/12/10 23:22
>>697
俺の読み方とすべて一致!!あんた俺か!?(藁
707607:01/12/11 01:24
文殊〜る! (<< やめい)

.は「ぽち」って読まにゃ。やっぱ。
~ ←「にょろ」「へにゃ」
^ ←「ぼうし」
* ←「ぴか」
= ←「げた」
708お胸おっぱい:01/12/11 01:39
/ : すらっしゅ
// : すらすら
709607:01/12/11 01:41
; ←「汗」 (w
710仕様書無しさん:01/12/11 01:43
mallocの読み方とstdio
の読み方の組み合わせで相関が見られそうな。
「めもり・あろっく」と「すたんだーどあいおー」
「まろっく」と「すたでぃお」
ってな具合に。


# 誰かの煽りが入りそうな話題だがみなさん大人の対応を
711仕様書無しさん:01/12/11 02:04
すっかり牛レスだが
>>696
cordingって、codingのこと?
712仕様書無しさん:01/12/12 09:59
>>697
mallocは「まろっく」->えむ・あろっく
以外は一緒です
ちなみにstdio.hは すたでぃお・えいち
//の すらすら は疑問無しで読んでました。
713Kusakabe Youichi:01/12/12 10:06
In article >>712, 仕様書無しさん/sage/712 wrote:
> ちなみにstdio.hは すたでぃお・えいち

...
714仕様書無しさん:01/12/12 23:06
えすてぃーでぃーあいおー

今の派遣先の大半の人は、スタディオって呼んでるね
715仕様書無しさん:01/12/12 23:15
>>710
「まろっく」と「えすてぃーでぃーあいおー」
716仕様書無しさん:01/12/12 23:19
echoは えちょー ですよね、きっと。
717仕様書無しさん:01/12/12 23:43
echo
延長。
‥まだやるのか。このデスマーチ‥
718仕様書無しさん:01/12/13 00:22
>* ←「ぴか」
ってすてき☆
おいらも使おう。
719仕様書無しさん:01/12/13 00:52
ていうか、今の職場の30代の人、「バッチファイル?へえ、そんな便利なものがあるんだね」とか
言ってて萎えた。
720仕様書無しさん:01/12/13 01:32
>>719
マジっすか?
30代の営業?
SE?
いくらなんでも、PGじゃないよね?
721仕様書無しさん:01/12/13 01:34
MCのプログラムを打ち込む

帰りがけに自動運転&自動電源遮断

翌日出勤

MCを見る

キリコしか無い・・・・。

素材を全部削って何も無い

・・・・・・帰って寝た
722仕様書無しさん:01/12/13 01:34
つまらなすぎる
723仕様書無しさん:01/12/13 04:47
return malloc(-1);
724仕様書無しさん:01/12/14 00:35
char は「ちゃら」じゃないのか・・・俺の地方だけ?
725仕様書無しさん:01/12/14 00:42
かー
726仕様書無しさん:01/12/14 00:47
ちゃる
727仕様書無しさん:01/12/14 00:49
ASPで、

Go To L1
Sub CalcSums(arrKingaku)
(中略)
End Sub
L1:

とやってるベテランPGが・・・・・
もう、GOSUB じゃないんだからさあ・・・・
728仕様書無しさん:01/12/14 02:58
>>727
ASPってgotoつかえないんじゃなかったっけ?
729仕様書無しさん:01/12/14 15:34
>>1
1つのソースファイルのサイズが1Mを超えていたとき。
そして.cファイルをinclideしていたとき。
730仕様書無しさん:01/12/14 19:07
>>721
NC じゃなくて?
731仕様書無しさん:01/12/14 19:48
既存のソースのコメントやインデントをすべて自分流に直すプログラマー萎え。
732仕様書無しさん:01/12/14 20:15
コメントやインデントぐらいいいじゃないか
デバッグしやすいように、わざわざ関数の戻り値を変数に入れて条件分岐させてreturnで
返しているのを、C++風だか何だか知らんが1行判断文にした上、それをreturnに放り込んで
「見やすくしました!」
と有無を言わさずサーバーのファイルを書き換えまくったやつを知っているよ
>>730
たぶん、マシニングセンターだろう。
↓こういうの
http://www.suzutami.com/sz_h_st201.htm
734仕様書無しさん:01/12/14 23:59
WORKING-STRAGE SECTION.
01 OUT-REC PIC X(80).
01 ICHI.
(略)
01 NI.
(略)
01 SAN.
(略)
01 YON.
(略)
01 ITTUTTU.
(略)
01 ROKU.
(略)

PROCEDURE DIVISION.
(略)
WRITE OUT-REC FROM ICHI.
WRITE OUT-REC FROM NI.
WRITE OUT-REC FROM SAN.
WRITE OUT-REC FROM YON.
WRITE OUT-REC FROM ITTUTTU.
WRITE OUT-REC FROM ROKU.

COBOLプログラム&40歳以上のCOBOLer氏ね。
735731:01/12/15 00:46
>>732
しかしそいつの触った全ソースのコメントから"/* */"がすべて排除され
"//"オンリーのソースになってるのを見ると、こいつ先にもっと別のこと
やれよ!とか思うわけで。

結果はともかくコードの可読性をあげようという意志のあった732の言うやつ
より何を考えてるのかわからんよ。
736仕様書無しさん:01/12/15 01:29
>>735
"/* */"を"//"にするのは十分意味があるとおもうけど
作業の優先順位とかは無視してだけど
737仕様書無しさん:01/12/15 01:34
>>736
それ、もちろんプログラム書いて処理したんだよね? 手作業で書き直していたら、とりあえず
氏んでもらう。
738Kusakabe Youichi:01/12/15 02:13
In article >>737, 仕様書無しさん/sage/737 wrote:
> それ、もちろんプログラム書いて処理したんだよね?
>  手作業で書き直していたら、とりあえず

っていうかそんなののために「プログラム組んで」るほうが馬鹿だな:)
(手作業より偉いとかいってるレヴェルでもうおしまいでしょう^^)

プログラムなんかくまなくても一発でできるでしょうに。
739仕様書無しさん:01/12/15 02:14
キチガイ登場。
740731:01/12/15 02:19
>>736
そうか?
単なる趣味の問題かと思うんだが。
どこらへんに意味が?

>>737
もちろん手作業です。
一生懸命なおしてる姿には思わず涙が出そうになりました。(T T)
741仕様書無しさん:01/12/17 11:05
#define E extern
#define C char
#define UC unsigned char
#define C2 short
#define UC2 unsigned short
#define PC (char *)
#define UPC (unsigned char *)
#define I int
#define UI unsigned int
#define L long
#define UL unsigned long
#define HEX16 0x
#define DEC10 (0+)


もー腹よじれたね。

例:
a = (I)HEX16820;
b = (L)DEC10921;
742Kusakabe Youichi:01/12/17 11:09
In article >>741, 仕様書無しさん/741 wrote:
> #define HEX16 0x
> #define DEC10 (0+)
>
> もー腹よじれたね。
> 例:
> a = (I)HEX16820;
> b = (L)DEC10921;

実際どうなるか試してみましたか?
743741:01/12/17 12:12
モチロソ。
先輩が「コンパイルエラーがとれん!」
とかいっているソースのこと
744仕様書無しさん:01/12/17 13:19
コメントとかインデントとかは普通 indent を通しませんか。
いちいち直すというレベルでもないような気が。
745仕様書無しさん:01/12/17 13:33
ネタじゃなかったのか...
746仕様書無しさん:01/12/19 05:57
あげるね
747仕様書無しさん:01/12/22 09:28
嫌々派遣に出された先のA社での話。
そこの客先のB社からこのソースを改修してつかえという指示あり。
一見とてもきれいに書いてる。が、内容がイミフメ。
変数名や関数名が少しずつ違っている同じソースが2つずつ数十KBある。
これらをまとめただけでも、ソース量は2/3になりそうだた。
また、データブロック(不定長)をバイト単位で挿入したり、削除して空いた部分を
後ろのデータを前詰めしたりするのだが、データブロック長の計算を奇妙な方法で行っていた。
奇妙な計算方法というのは各データのサイズを別にdefineして足し算引き算をする。
sizeofを知らないのか?元のソースを書いたC社?
構造体を使ってsizeof使えば、さらにソースはその2/3くらいになりそうだった。

B社からはかな〜り納期が迫った時点で元のソースの//をすべて/* */に直せとお達しがあった。
そうでないと品菅がうんと言わないとか。デバグで修羅場のときにそんなんするか。
そんな大量にコメントを置き換えたら、作業ミスで何がおきるかわからんのに。
#A社はあほの○○工場系
748747:01/12/22 09:44
#A社はあほの○○工場系 ->B社はあほの○○工場系
749仕様書無しさん:01/12/22 11:59
>>747
A社とB社の企業名キボンヌ
750仕様書無しさん:01/12/22 13:18
「XMLを操作している」というプログラムが、
DOMツリーをいじるんじゃなくて、
Stringを切ったり張ったりしていた。
751仕様書無しさん:01/12/22 14:14
一つの関数で
SELECT
CASE
 数千ステップ(10個以上ネストあり)
CASE
が意味不明のコメントとともに続いてた時

全部消して作りなおしたかった
752仕様書無しさん:01/12/22 14:51
1 クラス 1 メソッド、5,000 コードステップ。
1 クラス 3 メソッド、7,000 コードステップ。
753仕様書無しさん:01/12/22 14:52
JSP の中で String 使ってシコシコ HTML を作ってた。
最後に out.print(html) してた。
754仕様書無しさん:01/12/22 15:39
main(){
 return 0;
}

ってどうなの?
gccはなにも言わなかった。
755仕様書無しさん:01/12/22 15:52

プロジェクトで作ったソースから grep で「思う」を検索したら 80 件近く引っかかった...
756仕様書無しさん:01/12/22 16:02
>>753
ASPで同僚が似たようなことをやっていた。
うっかり真似したら大変なことになった。
757仕様書無しさん:01/12/22 16:16
>>755
ワラタ
758仕様書無しさん:01/12/22 16:28
>>754
C++だったら,クラス作ってそのコンストラクタだけで結構な処理できるぜ
メインは空
コンストラクタが5000ステップって奴を遊びで作った事有る
759仕様書無しさん:01/12/22 16:59
>>758
DQN企業へのお勤めご苦労様です。
760仕様書無しさん:01/12/24 03:37
Java使いなのに、C/C++で書かれた製品の動作が遅いからと高速化チームに
投入されたときのこと。(この時点でかなり問題あるよ…)

全部で5万行くらいのコード全体に
#ifdef DEBUG
がちりばめられ、チェック用のコードが大量に囲まれておりました。

DEBUGの定義は、たしか
#define DEBUG 0
みたいな感じになっておりました。

readme.txtには
「リリースするときは DEBUG の値を 0 にしてください」
みたいなことが書かれておりました。

Cは今でもよくわからん私ですが、かなり高速化できました。
とても感謝されましたです。はい。
761仕様書無しさん:01/12/24 04:08
コンパイルに50分ぐらいかかるので、ちょっとした機能分けに
 #ifdef DEBUG
とかでデバッグを有効にしてテストして通ったらコンパイルスイッチを外して・・・という
効率悪すぎな作業をしていたチームに入った。
なんだ、これなら最初に入力するデバッグ用のキーを2種類にしてフラグ立てればすぐじゃん・・・と
改良!

するとリーダーが一言。

「A君、なに無駄なことやっているの?えっ、まさかコンパイルオプションの存在をしらないの?」

アホとはやっとれん。。
762仕様書無しさん:01/12/24 05:20
>>758
デストラクタはありますか?
無ければ関数として使ったに等しいのかな?
763仕様書無しさん:01/12/24 08:46
インタフェースがすべて対話型。
こんな感じで作れと・・・
$ ./a.out
入力ファイル名:xxx
出力ファイル名:yyy
処理を開始します。
処理中です。しばらくお待ち下さい。
処理が終了しました。
764仕様書無しさん:02/01/09 15:42
> バッチファイル?へえ、そんな便利なものがあるんだね

makeを知らないアフォよりひどい
765仕様書無しさん:02/01/14 07:47
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /    クーソーは、     /
           /  頭のコヤシです。    /
          /                 /
          /  「遊び」をクリエイトする /
         /    株式会社765    /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ^∀^) /                /(^∀^ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)大円団モナ
766仕様書無しさん:02/01/14 08:51
派遣PGの作ったASPで

x=i
dim i
dim x

いったい何がやりたいコードなのやら。
コード全体がこんな感じで悲惨な状態。
引き継いだMさん。ご愁傷様です。
767仕様書無しさん:02/01/14 08:57
>>761
それ以前に、「コンパイルに50分ぐらいかかる」と言うのがおかしい
と思うが...。(分割コンパイルとか make とか知ってるよね ?)
768仕様書無しさん:02/01/14 12:33
>>767
それ以前にその元ソースがとんでもないスパゲティーのような気配が…(w
769仕様書無しさん:02/01/14 16:06
>761
そもそもどんな開発環境でやってるんだろ・・・・UNIX系ならともかく、
最近の開発統合環境で50分もかかるコンパイラって・・・・
そんなクソ長いソースを開けるエディタがすごい(藁
100万行でも無理ちゃう?<50分
770仕様書無しさん:02/01/14 16:30
>>769
???
771非761:02/01/14 17:46
>>767
#define DEBUG
が各所にちりばめられていて全部コンパイルしなおすハメになるのでは。

>>769こそ分割コンパイルやmakeを知らないと思う。
772仕様書無しさん:02/01/14 22:54
10行のエラー処理が各関数についているのだが、エラー処理がコピペで何百も続いている。
移用されている関数20個X10行のエラー処理=200行。

 エラー処理を関数にまとめると、
使用されている関数20個X1行のエラー処理=20行 に縮んでしまった。

わーい、すごい圧縮率!と喜んでいたら、同じようなソースがあと5万行以上はあるのを発見してしまった。
鬱。
773仕様書無しさん:02/01/15 02:03
新人の頃、アボーンなプログラム引き継いで短くしてやったら怒られた。
…理由、「1行いくら」だからナルベク長くなるように書けだって(鬱
774仕様書無しさん:02/01/15 02:09
>>773
俺も昔、ソースの行数が見積もりの数パーセント以内の誤差で
ならなければならないらしくて、
ループを展開したりして、行数を調整しろって指示を受けてた。
775仕様書無しさん:02/01/15 02:22
ソースじゃないけど、バッチで何件TRがあるかわからないのに
全件更新し終わるまで、コミットしない設計書を見たとき。

#ロールバックセグメントがパンクしたらセグメントを拡張するんだってさ。
776仕様書無しさん:02/01/15 12:37
>>775
そしてロールバックセグメントのパンクが怖いので常にコミット
を投げてしまう罠
777仕様書無しさん:02/01/15 16:09
>>766
似たようなコード見たことあるよ。VBSだけど。
Option Explicitが使えないという罠を併発していたけど、勘弁してほしい。

つーかそいつ、さっき新人に「VBSは変数を宣言しなくていい」とかほざいていた。
氏んでくれ‥‥‥
778仕様書無しさん:02/01/15 20:30
>> 777
同意、これって良くない、バグの元、習慣的にも良くない。
779仕様書無しさん:02/01/15 20:57
>>777
「VBS は変数を宣言しなくて良い。」だったらわかるけど、
「VBS は変数を宣言しなくて イイ!!」だったら寒いな。
780仕様書無しさん:02/01/15 21:31
つ〜か、初期化もしてない変数同士で代入をしてどうするのだろうか?
781仕様書無しさん:02/01/19 00:25
アンニョンハセヨ〜
782仕様書無しさん:02/01/19 09:38
char *a;
(int)a += 5;

何がしたいのかわからん。
783仕様書無しさん:02/01/20 15:11
VBで漢字(日本語)で変数書くとダサいとか間抜けとかいうヤツ多いけど、
それならスペルミスやローマ字さえ使えないお前らのほうがダセーだろ、と思う・・

漢字使うのそんなに変か?
変というヤツは多いが、ダサい、ぐらいの理由しか言わないからなあ
784仕様書無しさん:02/01/20 15:39
>>783
ダサいとは思わないけど、コードメンテするのが日本人とは限らないから。
785仕様書無しさん:02/01/20 16:11
** コノプログラムニワ シヨウシヨハアリマセン. ガンバツテ カイドクシテネ!!
IDENTIFICATION DIVISION.
(以下略)
786仕様書無しさん:02/01/20 17:12
>>784
コードメンテするのが日本人と限らないなら、コメントも日本語ダメじゃ
ん。(もちろん、仕様書も)

>>783
本質的には、識別子だけ日本語にしてもねぇ...、と思っていたが最近 SQL 触り
だしたら、結構日本語のフィールド名とか違和感なくなってしもうた。意外に食
わず嫌いと言うのが本当のところじゃないのかな。(あとちょっと入力が面倒だし)

でも、よく考えたら英語圏のプログラマーって以前からこういう感覚なんだろう
な。ちょっとうらやましいぞ。
787仕様書無しさん:02/01/20 17:31
>>783
英語版Windows用に変更してくれ、なんて言われたら悲惨。
英語版VBでコンパイルしないといけないんで、ローカライゼーション
どころではなくなってしまう。
ちなみにAccessで漢字のフィールド名使ってる場合も同じく悲惨。
788783:02/01/20 18:18
意見サンクス >>784 >>786 >>787
皆さんの意見はまっとうで、反論の余地はないですね。
でも、現実問題(漏れの周りだけかもしれないが)仕様、プログラムの目的とかを無視して
「日本語使ってんのか?お前ダサすぎるぜ!」って言うのが多いんですねえ。

確かに「もし外人がコーディング引き継ぐとなったらどうするんだ!」と言う人もたま〜にいますけど、
それなら >>786 さんの言うように「じゃあコメントは?仕様書は?」と言い返したら「それはなんとかなる」とか
ワケの判らない返答をする。

つうか、外人が引き継ぐとしても、例えばDBのキー名が「HHISSND」となっている、「発想履歴情報」という
項目の変数名を HHisSnd とキー名そのままにしているより「発想履歴情報」にしている方が、調べる手間が省けると思うんだがなあ。
仕様変更でキー名変更になった場合も、日本語による単語の変換のほうが誤変換少ないし(一概にはいえないが)
VBとかだと、自動メンバ表示で . を打てば構造のツリーが出るから打つのが面倒ってのも理由にならないし。
つかね、うちの会社の人間だと HsRirekiJyoho とかいう変数にするんだよな(w
外人にとってはローマ字も酷じゃねえの?と・・・

はあ、愚痴スレに書くべきだったかも。ということでさげ
789仕様書無しさん:02/01/20 22:30
キー名はEUCでしょうか、それともSJISでしょうか。
ms932
791仕様書無しさん:02/01/21 11:24
変数名の頭に必ず自分のイニシャルつけるやついるんだけども・・・。
792仕様書無しさん:02/01/24 23:10
共通変数にて(VBとOracleのOO4Oを使用)
 Stra = Val(Orafields(0).Value)
793792:02/01/24 23:13
書いている途中で送ってしまいましたすみません。
Str1 = Val(Orafields(0).Value)
Str2 = Val(Orafields(1).Value)
:
Int1 = Val(Orafields(4).Value)
何でもかんでもVal関数を使っている。中にはABC00Aのような
コードになっているのもあるのでこれを使うと…。(涙)
794仕様書無しさん:02/01/25 15:27
おいおい、グローバルで仕様するヘッダー内で変数宣言すんなよ。
externって知ってる?
795794:02/01/25 15:29
仕様→使用の変換ミス。鬱だ氏脳・・・・・・。
796仕様書無しさん:02/01/25 15:33
// テーブルがnullだったら初期化する
if ( pTable == null ) {
pTable = null;
}
797仕様書無しさん:02/01/25 15:40
>>796
コンピュータは信用できないからね。
念のためだよ。念のため。
798仕様書無しさん:02/01/25 15:58
>>788
外人に渡すソースコードなんて
関数名がsushi()とかgeisya()でも問題なし。
799仕様書無しさん:02/01/25 16:20
>>798
ninja()は大丈夫ですか?
800仕様書無しさん:02/01/25 16:47
>>799
大丈夫です。nimda()は駄目です。
801仕様書無しさん:02/01/25 17:41
>>794
あんたも、五十歩百歩のような気が、、、
802仕様書無しさん:02/01/25 18:32
>>798
kichiku_beiYeah()

はどうですか?
803仕様書無しさん:02/01/25 18:37
>>802
kusakabe_Youichi();
に見えた
804仕様書無しさん:02/01/25 20:10
>>803
kusakabe_youichi(chr * in_word){
 return(gen_dares(););
}
805794:02/01/25 22:11
>>801
ああ、すまんかったよ。
「宣言」じゃなくて「定義」だって言いたいんだろ。
806仕様書無しさん:02/01/25 22:54
グローバルで仕様 !!??!
807仕様書無しさん:02/01/25 23:01
>>806
過去レス読め。
declare @suryo001 decimal(13,5), @suryo002 decimal(13,5), …, @suryo372 decimal(13,5)

あのー、ファイルを開いた瞬間やる気が一気に−∞になったのですが、
このファイルだけこういう書き方されている特別な理由があるのでしょうか?
罰ゲーム?(TдT)
809仕様書無しさん:02/01/26 00:38
SELECT TBL_SYSTEM_DATA_1.foo TBL_SYSTEM_FILE_1.hoge
FROM TBL_SYS TBL_SYSTEM_DATA_1, TBL_FILE TBL_SYSTEM_FILE_1
WHERE ...
 
 
 
 
自称A級SQL使いの先輩のソース。
省略するやろ普通・・・
810仕様書無しさん:02/01/26 00:52
ビューのクリエイト文の末尾でCOMMIT。(オラクル)
811仕様書無しさん:02/01/27 23:32
age age
812仕様書無しさん:02/01/28 23:05
guest guest
813仕様書無しさん:02/01/30 13:14
#define retrun return
814仕様書無しさん:02/01/30 20:02


#define RET return
#define EXT exit
#define EXT2 extern

なら知っている
815仕様書無しさん:02/02/01 12:45
会社で見たわけじゃないけど。某誌に出てたWin16→Win32の移植の記事
に付いてたリスト。ほぼすべての行に突っ込みたくなった。

struct ffblk fat *Top,*p;

Top = (struct ffblk far *)GlobalAlloc( ...*10000 );

//×Win16ではこれは使えなかった
//○Win32ではこれでよい
p+=sizeof(struct ffblk)*8000L;

//○Win16ではこれが正しい方法
//×Win32では間違い
p=MK_FP(FP_SEG(p)+FP_OFF(p)/16+(int)((sizeof(struct ffblk)*8000L)/16),
FP_OFF(p)%16+(int)((sizeof(struct ffblk)*8000L)%16));
//単純なポインタ操作の例
p++; この様な操作は問題ない


#ifdef __WIN32__
#define FixPointer(p) p
#else
LPSTR FixPointer(LPSTR p)
{
return (LPSTR)MK_FP(FP_SEG(p)+FP_OFF(p)/16,FP_OFF(p)%16);
}
#endif
//これを P=FixPointer(p);のように使う。


long SubPointer(char far *a,char far *b)
{//Win16の場合はこれが正しい
return ((FP_SEG(a)-FP_SEG(b))/8)*0x10000L+FP_OFF(a)-FP_OFF(b);
}

long SubPointer(char *a,char *b)
{//Win32の場合はこうなる
return (long)a-(long)b;
}
そういや、ソース内に会社の内部情報が書かれてたってことがあったな。
すでに何世代も管理されてきたソースコードだったんで、今で言うと
2ちゃんねるのスレッドのようなコメントになってた。

しまいにゃ
/* こんなとこにコメント書くと思った? */
/* 俺読んだ。よってぺたぺたと足跡 */
/* 今日昼飯なんにする? */
こんな駄スレも、、、
817もういや:02/02/01 14:34
fax出すと原稿まで電線に乗っで相手に行くと今だ思って
必ずコピーとってからfax出す社長がいる。
818仕様書無しさん:02/02/01 19:35
↑日本語と漢字の勉強をしようね。

819ポテチ:02/02/01 20:23

monthly_sum = 0;
d = 0;
while( 0 ){
/* 集計処理 */
monthly_sum += v[d];
d++;
if( d >= cal_table[m] ){
break;
}
}

こういうソース書いて、全然集計されない!コンパイラのバグだぁっ!って叫んでたヤツと同じプロジェクトになったとき。
820SORT:02/02/02 02:03
変数宣言 CHAR(もしくはval)
モデル
入力(数値) a b c
while(並び換えている間中){
call A
call B
call C
}
出力 a' b' c'

sub A{
if(組み合わせ6個のうちの一つ) then a'=a
if(組み合わせ6個のうちの一つ) then a'=b
・・・
}

sub B{
if(組み合わせ6個のうちの一つ) then b'=a
・・・
}

数が増えたり、動的の時は、DBに一時書きこんで、読みなおすんだって。
821仕様書無しさん:02/02/02 18:27
この会社辞めようと思ったシステム設計
http://pc.2ch.net/test/read.cgi/prog/1011181987/
822仕様書無しさん:02/02/02 18:29
この会社辞めようと思った上司の一言#2
http://pc.2ch.net/test/read.cgi/prog/1003497181/
823仕様書無しさん:02/02/02 23:58
>>810

甘い。SQL*Plus での DML, DDL, SQL*Plus命令文("set def &" など)
PL/SQL ソースファイルのコンパイル・・・いずれも作業後は礼儀
正しく COMMIT を行うのが常識(藁)。
824仕様書無しさん:02/02/03 01:23
class Hoge{
 public Hoge(){
   ・
   ・
  Boke boke = new Boke();
   ・
   ・
 }
 public static void main( String args[] ){
  Hoge hoge = new Hoge();
 }
}

class Boke{
 public Boke(){
   ・
   ・
   ・
 }
}

なんかコンストラクタで、すべての処理やってんですけど・・・(Java)
825仕様書無しさん:02/02/04 13:52
>824
コンストラクタで無限ループ(メッセージ受信かなんか)を
しているのは見たことあるがナ。
VBのForm.Loadとかと勘違いしているのではないでしょうかねぇ。
826:02/02/04 15:58
前にVBで作った通信ソフト(24時間動作)は、無限ループで動いてた(謎
・・・チトビビタ。
827仕様書無しさん:02/02/04 17:02
/*
ここ問題あるかもしれません ○本
(´-`).。oO(仕様だけに{しようがないかも})
*/

こいつを殺して僕も死のうかと思いました。
828仕様書無しさん:02/02/04 17:04
829仕様書無しさん:02/02/04 19:05
VBのソースで、データにエラーがあると永久ループに陥る
作者いわく「細部まで練りこまれたプログラム」
830仕様書無しさん:02/02/05 08:53
バグが練りこんであります
831桂正明:02/02/05 19:11
>>829
お呼びですかあまりひどいことを言うと法的手段に売った絵描けますよ
832仕様書無しさん:02/02/05 20:35
833仕様書無しさん:02/02/05 22:51

>831 どんな絵?描いてみせてよ。
834仕様書無しさん:02/02/06 00:14
>824
新人研修でやったなそれ。
835Perl使い:02/02/06 03:00
Perlで書いてあるCGIの修正を頼まれたので、

#usr/local/bin/perl

#include <studio.h>
#include <stdlib.h>・・・(以下略)
#define kMaxValue hogehoge
#define kMaxAccount hogehoge ・・・(以下略)

こんなんを50行くらい延々と連ねてアップ。
延々と考え込んでいたアフォ上司に辞表を叩き付けました。
836仕様書無しさん:02/02/06 21:04
最も驚愕したgotoの使い方。しかもインデントも異常なほどバラバラだった。
for( .... )
{
if( .... )
{
labelA:
}
}
.
.
.
if( .... ) goto labelA;
さらに元ねたがあったのかあっちこっちのプロジェクトに同様のコードが・・・。
837仕様書無しさん:02/02/07 00:25
>>836
俺は逆にそういうコードを書かされそうになったことがある。
ループの中にとびこむフローチャートを渡された・・・
今時フローチャートってとこもあれだが
838仕様書無しさん:02/02/07 01:27
Option Explicit(宣言なしでの変数利用を禁止)が使われていないVBのプログラム...。

書いたヤツは関数というものを知らないのか、はたまた2ちゃん常駐のDQN者なのか、
似たような処理をコピペしまくり。

だが、ラベル名や変数名を直すのを忘れてて、しかも、それが関数の戻り値への代入
だったりするが、Option Explicitなしだと別の変数領域が自動的に割り当てられる
から、コンパイルエラーは出ない。 だが、実行時の関数の戻り値は不定。

あとTYPO(数字の'0'とある英文字の'O')を間違えてるとか、スペルミスなどのスパイス
も少々。

たとえIf〜Else〜End IfステートメントでFunction値を返さないパスが存在したとし
ても、VBは害務省官僚並みに賢いので、ワーニングエラーといった余計な報告はしない。

さらには、ローカル変数や変数の引数渡しで済むようなものまで、グローバル変数
使いまくり。 

しかも、そのグローバル変数名が「N」とか。(T_T) どこで使われてるか調べるため
ソース検索しても、余計なとこで引っ掛かりまくり。 もちろん、変数にコメント
などは一切なし。

しかし一番DQNなのは、これまで見かけ上動いていたというだけで、そんなクズプロ
グラムを高く評価しているクライアント。
839仕様書無しさん:02/02/07 01:33
お、リファクタリングの腕の見せどころか?
まずは、変数名を置換して、関数名を付け直して、
クラスを導出。


ぐあー、やってられるか、書き直しじゃあ。
840仕様書無しさん:02/02/07 02:26
>>838
前に派遣でいった会社に、そういう人がいたっけなあ。
そこ、VB始めて3週間〜1ヶ月という人がゴロゴロしてて、経験半年の俺が
めちゃくちゃ優遇された。(業務経験半年、趣味で1年半使ってた)
  dim aaa(20000)
とか平気でやっとるから、redimの存在を教えてやったら
rec = get_rec(filehoge)
  redim aaa(rec)
とか意味ねーことするから、preserveを教えてやらないといけない始末とか。

で、そこに >>838 みたいな人がいた。本人曰くVBはかなり出来るということだったが、
見ると関数はform_load1つでgotoとgosub使いまくり。frmのソースの頭にdimで変数宣言、NとかIとかA1とかA100とかで
合計300個オーバー。

他の人の担当分をサポートする余力がなく、それぞれ任された部分をやるのに必至。一人、ペースが遅れている人がいるので
サポートしてやって・・・という立場でスタート。ソース見て唖然。そして報告「これ1から作り直さないとヤバいですよ。」

2週間後、その人(社員さん)はクビ(爆)、漏れの1ヶ月契約が半年に延びてそこの担当となって作り直し。
最終的にはそこのチームの一番負荷の高い画面を担当することになり、結局2年ぐらいそこでVBやってたさ。

同じような人はいるもんだねえ・・・

841840:02/02/07 02:34
そのDQNがクビになった理由は
 ・そいつが作ったプログラムは、MDBのテーブル10個ぐらいから
  SQL使って情報読み取り、条件比較して起動、の処理が
  2分ぐらいかかっていた。
  つまり実行して画面が出るまで2分。
  社長にも「なんとかできないのか」と言われてたが本人は「これがVBの限界です」と解説。

  SQLでJOIN一切なしで、しかもrecordsetの使い方最悪で、1000件必要なら1000件一気に
  取ってくるrecordset使うのが常識なのに、条件1つずつで1000回ループとか平気でやっている始末。

  漏れが組みなおすと、わずか6秒ほどで画面起動。
  社長が改めて「どういうことだ」とその人に問い直すと「かなり高等な技術を使っているのでしょう」と言う。
  俺に説明を求めてきたので、全社員(6名ほど)の前で説明。
  その人「へええ、凄いですねえ。そんな方法があったのかあ。」

 ・動きがおかしい。仕様を見ると、条件文の組み合わせどおりに動いてない。
  調べていくと、日本語の解釈がかなり変。

 ・そんなこんなで、実は過去に2回ほど”お荷物”になっていたようで、その時の失態がきっかけで社長に
  ボロカス言われたら、翌日から出社拒否(w

 で、クビ。
  

842仕様書無しさん:02/02/07 13:33
strcat(strcat(strcat(strcat(buffer, str[0]), str[1]), str[2]), str[3]);

これだけでもかなりアレだが、何を思ったか

strcat(strcat(buffer, str[0]), strcat(strcat(str[1], str[2]), str[3]));

みたいに書き直してメモリぶっ壊してたヤツ。
843仕様書無しさん:02/02/07 14:47
>>842
いるよね。sprintf知らんやつ
844仕様書無しさん:02/02/08 02:48
このスレ見てると、自分は恵まれてるなぁと思う。
ネタとしか思えないようなソースがイパーイ。
でも、このスレにあるようなソースが世間に出回ってると思うと怖い・・・
845仕様書無しさん:02/02/08 03:20
ソースが出回っているというより、こんなソースで作られた
製品(携帯電話とか携帯電話とか携帯電話とか)が出回っている、
今自分が使っているもの(携帯電話とか携帯電話とか)もそういう
ソースでコンパイルされた、と思うと怖くなってきますな
846仕様書無しさん:02/02/08 11:22
hashtableには、数字のみで構成された文字列が入ってる。
それを取得して、intに変換する。

int i = (new Integer((String)hashtable.get("key"))).intValue();

まぁ、このくらいなら、可愛いもんだね。
847仕様書無しさん:02/02/08 15:12
>>846
うわ、漏れそうやってるよ、ダメなのか…

ちなみに正しくはどうやるん?ウザくなければ教えて( ゚д゚)ホスィ…
848838:02/02/08 15:12
>>840
ゴキブリ同様、ひどいプログラマがどこにでも居るのは、仕方のないことかもしれんけど、
あなたはまだマシな方だと思うよ。 だって、派遣先の会社は、あなたの説明をちゃんと
聞いて、見合う費用も出してくれたわけでしょ。

上で書いたのはネタでもなんでもなくて、今まさに俺が手直ししてる、ある保険会社の
営業支援ソフトのソースの一部なんだが、>>838 で挙げた以外にも、数値を入力するテキ
ストボックスに数字だけでなくアルファベットも入るし、入力のエラー判定が中途半端
だから、プログラマが想定していない順序でデータ入れたりすっと、エラーでプログラム
が簡単に落ちてしまう。 タブオーダーの設定に至っては、てんでバラバラ。

あと、テキストボックスに「複数行入力」のプロパティが存在するのを知らないらしく、
行末の改行コードを取り除くためにわざわざ ...

Private Sub TextBox_Change()
Dim n As Integer

n=TextBox.Text
TextBox.Text=n
End Sub

とかやってる。(それも全部そうしてるならまだマシだが一部だけ。 当然、コントロール
配列なんてものも知らないようだ)

同じ会社の依頼で前に修正したソフトなんぞ、顧客からソース一式(やはりドキュメント
はなし)渡されて修正して送ったら、元のバージョンと動きが違うと言われて、調べたら
最新版として貰ったソースの一部が古いバージョンだった。(T_T)

結局、既に一回修正したとこを、差し替えたソースに反映して、再度動作検証やり直した
わけだが、その作業で余計にかかった分に対する追加支払いはなし。

しかも、VB6がリリースされて久しい(つぅか、次のバージョンがもう出る)ってのに、
開発環境はVB5指定だよ。(旧バージョンはVB4で開発)

俺はVB6での開発を強く薦めたが、社内の他のアプリとの整合性の問題があるからってんで
結局こうなった。 ちなみに開発環境はVB5指定だが、なんとWindows XPでの動作確認って
のが開発要件に入ってる。

こっちはVB5を指定されたお蔭で、今回の開発中に2つの大きなバグで悩まされた。(1つは
Active-Xの使用とコード最適化に絡むもので、VB5のコード最適化を無効にすれば発生せず、
VB6では最適化有効でも再現せず。 他方は、VB6SP4で修正されていることをMSの資料で
確認)

当然俺も、>>839 さんが言うようにゼロから作り直した方がはるかに早いとは思ったんだが、
それはあくまでちゃんとした仕様があればって前提での話。 ソフトの操作手順書らしきもの
はあっても、ソフト内で何をやってるのか説明した満足な資料がないんだよ。

しかもクライアントは、仕様がない(なければ作るのが筋だが、仕様を起せない)のを開き直っ
てる始末。

それどころか、こっちがソフト内容を調べて、いちいちお伺いを立てるのを当然と思ってる
らしい。(そんなやり方したら、当然開発期間も費用も倍以上かかるのに、見積りのままで
やれるとも、思っているらしい)

んで、ありきたりの決まり文句で「うちは客だぞ」と。
849838(続き):02/02/08 15:15
とりあえず、当初のスケジュールから2ヶ月オーバーして、なんとか修正したソフト送ったら
ドキュメントをよこしてないにも関わらず、前バージョンと挙動が違うとか抜かしよるんで、
こっちもブチ切れて、納品条件の仕様を箇条書きでよこせと要求したが、もう丸2日経つが
返事がない。

ちなみに契約書には ...

その他、今後のメンテナンスが効率よくなるようなコードの改修
潜在的なバグが含まれるプログラムコードの洗い出しと修正

仕様変更については

必須機能、改修内容及び青果物について変更がある場合、委託者・受託者両者協議の上決定
するものとする。

と書いてあったりするのだが、そもそも「仕様」を記したドキュメントが存在しないのは先述
のとおり。 当然、開発のやり方がまずくて2ヶ月余計にかかった分の支払いはないし、損害
賠償請求とか言うてたが、その訴状もまだ届いてないな。

もう10年以上コンピュータ関係の仕事やってるけど、自分の責任を果たさずに要求ばかり
してくる会社ばかりで、はっきり言っていい加減疲れたよ。

ここでは具体的な会社名を出せないが、まぁ裁判沙汰にでもなって公になるようなことでも
あれば、もしかしてあの時のとでも思い出してくれたまい。

ところで、こんなクズソフトを書いてるのがドコの会社だろうと思ってたところ、プロジェ
クトのプロパティ見たら、著作権者のとこに会社名(業界大手)が書いてあった。 ちなみに
ヒントは「女房の脱税疑惑で辞めさせられた、元阪神の監督」とだけ言っておこう。
850仕様書無しさん:02/02/08 15:20
sscanf("%3d%3d%3d", buff, &a, &b, &c);
逆だよお。
851仕様書無しさん:02/02/08 15:40
>>850
ワロタ
852仕様書無しさん:02/02/08 16:18
>847
int i = Integer.parseInt((String)hashtable.get("key"));
853840:02/02/08 16:49
>>848
ご苦労様です。

>んで、ありきたりの決まり文句で「うちは客だぞ」と。

これは俺も言われたが、言い返した。

「でも、このままだと今後確実に問題が発生して大変なことになりますよ。
 理由は、〜〜〜〜〜〜〜〜〜〜〜〜〜」 で小一時間説明し、問いただせたのだ。

金関係言ってくるから、1からやり直さんと会社の信頼なくすことになるよ、みたいに
言ってやったんで。ま、1からやり直せと言うだけのものが作れる自信があったからでもあるんだが。
854仕様書無しさん:02/02/08 22:07
>>848
>営業支援ソフトのソースの一部なんだが、>>838 で挙げた以外にも、数値を入力するテキ
>ストボックスに数字だけでなくアルファベットも入るし、入力のエラー判定が中途半端
指摘したらおそらくこう言うだろうと思われ。「はぁ?だって普通入れないでしょう」又は「そんなの
入れるほうが悪い」はたまた(「しょうがねーなこいつ。そんなこともわからんのか。やれやれ苦労す
るぜ」と言わんばかりの顔で)。ちなみにそいつ(ら?)の経験年数はいかほど?
855仕様書無しさん:02/02/08 23:16
>>852
そういう話なのか?
静的型安全チェックの話ならGenerics使うのが一番だが、まだコアAPIじゃ
ないので、仕方ないから委譲。

class IntegerKeyMap/**Mapを継承しちゃだめ。
put(Object,Object)やget(Object)をサポートしなきゃならなくなるから。**/{

 private Map impl = new HashMap();
 public void put(int key,Object val){impl.put(new Integer(key),val);}
 public Object get(int key){return impl.get(new Integer(key));}

//後は自分で何とかしろ

}
キーがint限定の時。値側の制約が欲しい時は、同様にコーディングせよ。
856仕様書無しさん:02/02/09 01:39
#define DQN '1'
 :
 :
int func_dqn(char *);
のような宣言があって、

int ret;
 :
 :
ret = func_dqn((char *)DQN);

ウゴクワケネーダロ クソ
857仕様書無しさん:02/02/18 08:47
age
858仕様書無しさん:02/02/19 01:58
>>838
こっちで愚痴ってんだし、わざわざMLにまで投稿せんでもいいんとちゃう?
#気持ちは非常にわかるが。
859仕様書無しさん:02/02/21 03:38
printf( " 〜
printf( " 〜
printf( " 〜
printf( " 〜
printf( " 〜
printf( " 〜

  :(以下数百行)
try{
...
err = func(hogehoge);
if(err){
goto Err;
}
...
}catch(HogeException* ex){
...

Err:

...
}
唖然、、、
861仕様書無しさん:02/02/21 13:39
>860
しかも、funcって関数が、
// C++しらないので、Java風に書くと...
boolean func(HogeHoge hogehoge) {
 try {
  // : 処理

 } catch( Exception e ) {
  return false;
 }
 return true;
}
ってかんじで、例外を全部吸収しちゃってませんか?
# だったらうちの会社と激似。
862仕様書無しさん:02/02/21 15:07
前にも書いたけど、派遣された先で見せられた
「XMLを使ったプログラム」ってのが、プログラム内部で
Stringにタグを切り張りしてるバカプログラムだった。

String xml = "<?xml version="1.0" encoding="ISO-8859-1"?>";
xml = xml + getHogeTag() + getHageTag();

みたいなの。
「そんなのXMLじゃないじゃん、DOM使わないで何がXML?」
と思ってたら、会社中のプログラマ全員がそのバカプログラム書いてたよ。
潰れねーかな、この会社。
863仕様書無しさん:02/02/21 21:53
XMLのXの意味が、X−BOXみたいな会社だね
>> 861
反応ありがとうございます。
それより何より、gotoでcatchに飛び込むとexが不定なので
アクセスすると落ちる、という(-_-;)

でも、普通に例外でcatch節に来たときは、exを使って
例外処理しなきゃいけないし。

こんなのどうやってメンテせぇっちゅーねん。
865仕様書無しさん:02/02/22 06:58
飛んだ先でHogeExceptionオブジェクト
作るって言うのはどう。
866 ◆YjtUz8MU :02/02/22 12:55
>>864
とりあえず NULL を throw するってのはどう?
cygwin の g++ でやったら core 吐いたが、VC++ じゃうまくいったよ。
やっぱこれは根本的にgotoを消す以外に方法はないと思います。
868仕様書無しさん:02/02/26 00:27
>867
例外やbreakやcontinueで、gotoよりももっと複雑なコードを
考えだされちゃいそうなので、だめ。

っていうか、いまだに「ダイクストラは正しいのか」っていう
問題について議論が起こりうるんだなぁ。
869仕様書無しさん:02/02/26 01:24
いっそgotoしか使わないってのも、アセンブラちっくでそれはそれでありかも
870仕様書無しさん:02/02/26 06:33
まあ、longjmpじゃなかったって事で。
>>862 String xml = "<?xml version="1.0" encoding="ISO-8859-1"?>";
String xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
じゃないの?

というくだらないツッコミは置いておいて、ここ面白いですね。
高専1年生で初めてC言語やってる学生と同じようなソースばかりなんでビックリしてます。

私は学校の事情しかわからないんですが、分かってない事を教えようとする教官に腹立ちますね。授業中にウソ教えるなとか。サンプルで配布したプリントに

void main(void)
{
...
}

とか書いてあったときは、学校辞めたくなった。

なんか、企業も学校も同じですね。って、こんな学校でプログラミングを覚えた連中が就職して作ってるソースなんだ……鬱氏
872仕様書無しさん:02/02/26 07:58
>871
こんなやつに限ってコピーコンストラクタ書かなかったり。
873仕様書無しさん:02/02/26 08:07
>>862
XMLドキュメントをまるごと生成する場合は、
Stringの切り貼りはよくやるよ。
どうせ構造が変わったら手直しが必要になるのは同じだし。
DOMでやるより高速だし、見た目の整形もやりやすい。
874仕様書無しさん:02/02/26 12:48
別にプログラミングに興味ない奴が突然放り込まれることもあるわけだから。
875仕様書無しさん:02/02/26 21:23
>>871
void main(void)
{
}

の何が悪いんだか。
876仕様書無しさん:02/02/26 23:32
>>875
同感。

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

じゃないとダメとか?
877仕様書無しさん:02/02/27 00:17
>>875
戻り値が悪いんだろ、当然。
878875:02/02/27 07:21
voidだから戻り値がないのは当然だが?
悪いってなんだ。謎。
mainにはintで戻り値を書くのが常識だと思っているなら、悲惨だな
879仕様書無しさん:02/02/27 09:51
ランタイムライブラリはmainをintの戻り値があるとして呼び出し、
帰ってきた結果をOSに終了値として渡すことになっている。
voidで書いたら不整合で不定値が帰る。

その結果がどうでもいい場面においてはvoidでもかまわんが
広く使われるコードにもその調子で適用すると、正常終了が0だとして
呼び出す「正しい」使われ方をしたときに騒がれることになる。

なんでもないときは単に0を返しておけばすむだけの話なので
ほんの少しの手間をケチるのはあんまり良くないね。
そのような考え方の人は他にもそういう調子でやっているかもしれないし。

最終結果まで把握した上で特定の場面でケチってるだけだ、ということなら
その特定の場面では問題はないんだろうが。

まあ、このネタはあまりにもガイシュツなので、ネタなんだろうな。
880871:02/02/27 12:41
>> 872
コピー代入忘れるなよ。
881877:02/02/27 20:37
>>878
> voidだから戻り値がないのは当然だが?
いや、もちろん戻り値の型を問題にしてたのだが。
戻り値を実際に戻すかどうかは別に問題じゃない。

> mainにはintで戻り値を書くのが常識だと思っているなら、悲惨だな
常識なんていういい加減な話じゃなくて、そういう規格なのんだけどな、Cでは。

規格に従わった処理系ばかりじゃねーとか言いたいのかとも考えたけど、そこまで
考えてる奴はもうちょっと別の書き方をするような気がする。

つーか、ネタじゃなかったのか、これ。
ネタにマジレスしてカコワルイ、となる予定だったのだけどな。
882875:02/02/27 20:53
いや、ネタでした。
ということで

  ネタにマジレスしてカコワルイ >>877
883仕様書無しさん:02/02/27 23:38
int main( int argv, char *argc[] ) {
}

もうね、アフォかと。バカかと。
884仕様書無しさん:02/02/28 00:49
一瞬?だったけど、わかって少しウケた。

多分最初にそう覚えてしまったんだろうね。
885仕様書無しさん:02/02/28 01:36
>>879
必ずしもOSに返すわけじゃないだろ。
呼び出し元に返すんだから。必要なけりゃvoidでいい。

ネタニマジレスカコワルイ?
886仕様書無しさん:02/02/28 05:57
つか、いつの間にかランタイムライブラリ限定の話になっているのが笑えた。
871は10年以上プログラム・・・でDOS系のプログラムを知らないドキュンということでいいですか。
今までずっとコボルで、最近C始めたのかな?
887仕様書無しさん:02/02/28 09:30
>>885
普通の処理系では必要なくてもintで書くもんです。

↓この後泥沼の予感
888仕様書無しさん:02/02/28 12:41
おまえら邪魔だからム板逝け
889仕様書無しさん:02/02/28 14:23
>888
s/ム板/fj/
890仕様書無しさん:02/02/28 19:20
しかし 現実には
void main の
コンパイラも存在したのだ
むかしの C には voidなんかなかったから
これでいいのだ

そこの講師が化石だとしても 嘆くひつようもない
891仕様書無しさん:02/02/28 19:47
むかしのfjにはvoidはいたのだろうか?
892仕様書無しさん:02/02/28 22:58
>876
int
main(int argc, char *argv[]){
}
じゃないとダメ(w
893仕様書無しさん:02/02/28 23:15
C-FAQから:
11.14:
void main()と宣言してうまくいかないわけがないと思う。なぜなら
main()から戻る代わりに、exit()を呼んでいるから。だいたい今使っ
ているオペレーティングシステムはプログラムのexit値/戻り値を無
視する。

A:
main()から戻ってくるかどうかは関係ないし、そのステータスを見る
かどうかも関係ない。問題はmain()の宣言がおかしいと、呼び出し側
(実行時のスタートアップのコード)がmain()を正しく呼び出すことす
らできないかもしれないことにある(呼び出し規約が一致しない可能
性があるため。質問11.12b参照)。

void main()を使用して、BC++ 4.5でコンパイルするとクラッシュす
る、という報告がある。幾つかのコンパイラは(DEC C V4.1や特定の
警告オプションを有効にしたgccも含めて)、void main()に文句をつ
ける。

君が使っているオペレーティングシステムは終了時のステータスを無
視して、void main()でもうまく動くかもしれない。しかし、このや
りかたは移植性が低いし、正しくもない。
894仕様書無しさん:02/02/28 23:37
貴様等スレタイを100万回書き取りして来い。明日までの宿題だ!
昔はそうだったかもしれないけど、今の時代voidを返すmainを
教えるなんて、どう考えても教官のほうがバカでしょ。
ここにいるおっさん達には悪いけど、時代というものをもっと
見据えて発言したほうがいいよ?
896仕様書無しさん:02/03/01 04:28
時代を見据えるのも良いけど、歴史を知っておくことも大切だと思われ。
「今」しか見えないってのもねぇ・・・。
897仕様書無しさん:02/03/01 08:03
どういう場で配られた「プリント」なんだか、もちっと文脈が、
聞きたくもあり聞きたくもなし。

だって「プリント」だぜ?

動かして金取ってるソースの話でもなく、アフォなバグが仕込まれてて唖然とした話でもなく。

「1文字たりとも間違えず、このプリント通りに入力して、動かしてみましょう」
とかか? だったら、その環境を書いてみればいいし、

単に、こんな感じなんですよ、とかの話なら、
「先生、このカッコの中はどういうことなんですか?」
「今日のところは気にしなくてよろしい!」
くらいじゃない?

次の講座(?授業)が、「プログラムにパラメータを渡そう!」とかだったり。
898仕様書無しさん:02/03/01 13:59
>>881
>そういう規格なのんだけどな、Cでは。

これは C90 規格か、それを翻訳して作られた JIS 規格かな。
ところが、C99 規格では、main の型については規定していないんだよ。
ただ、通常推奨される prototype として、
int main(void) か、
int main(int, char*[])
という意味の記述はあるけどな。

C90 では、return も exit もない場合の戻り値について規定がなかったが、
C99 では変更された。
int あるいはそれと同等な関数値を返すとされた main があるとき、return も exit
も呼び出されずにプログラムが終了する場合は、0 を返すものとする。
それ以外の型の関数値を返すと宣言されている場合は、何返すかは未定義。

ちなみに C++ でも、main は int の値を返すなんて定義されていない。そ
れどころか implementation-defined で、処理系依存と堂々と書いてあるぞ。
899名無しさん@Emacs:02/03/02 04:12
組み込み屋やってっと
mainは引数も戻り値もねえしなあ。
900仕様書無しさん:02/03/02 11:04
cは型チェックしないから例えは

#include <stdio.h>
int main=0;

でもコンパイルできるが。
901仕様書無しさん:02/03/02 11:23
>>900

実行はできんと思うが...
でも配列形式で実行コード埋め込めばできるかも

int main[] = {
0x12345678,
0x9abcdef0,
};
902仕様書無しさん:02/03/02 11:32
Cで単純にファイルを読むのにも下のような決まりがある。

filename = "hogehoge.txt";
fileopen_read();
if (!strcmp(filename, "ERR"))
 exit(1);

while (1) {
 fileread();
 if (!strcmp(filename, "END"))
  break;

 printf("%s\n", readdata);
}

fleclose_read();

こんなコードを何も疑うことなしに
スイスイ読んだりスイスイ書く先輩らって異常。
みんな洗脳されちゃっている。

903仕様書無しさん:02/03/02 11:51
>>899
そもそもmainから抜けることが無いだろ?
904仕様書無しさん:02/03/02 14:47
mainが終了しちゃうファームはエロすぎます
905仕様書無しさん:02/03/02 18:48
>>894
for(int i=0;i<ヒャクマソ;i++) print "この会社〜 ";
906仕様書無しさん:02/03/02 19:15
for(int i=0;i<ヒャクマソ;i=0) print "この会社〜 ";
907仕様書無しさん:02/03/03 03:04
>>901
それは昔、「もっとも汚い C プログラム」とかいう賞を貰ったという黄金パターン(w
確か先頭に「VAX PDP-11 only」とかコメントが……

static int main[] = { ここに PDP-11 の機械語 };
という代物だったかと。

これが本当に動くと分かるのは、結構 C を分かっている人ですな。
908 :02/03/03 10:13
とにかく、
void main(void){
}
は基本なんだよ。キホン。定説だ、ゴルァ。
909fight:02/03/03 10:17
僕ページ作ってたらお宝見つけたので紹介します
http://www.geocities.co.jp/Bookend-Ango/2352/
910仕様書無しさん:02/03/03 10:52
>>907

頭にstatic付いてたらリンカが困ると思うが...
911仕様書無しさん:02/03/03 11:07
if ( false == GetGAL() ) {
  Poe();
} elseif ( GetPower() == true ) {
  Puni();
}

true,false を右か左かどっちかに統一しれ!
912仕様書無しさん:02/03/03 20:44
#define GOBACK return
:
:
913仕様書無しさん:02/03/03 22:49
>>911
隠れ右翼?(w
914仕様書無しさん:02/03/03 23:03
Unification Church? (LOL
915仕様書無しさん:02/03/07 21:32
>>898
マジレスしてみよう。
> ちなみに C++ でも、main は int の値を返すなんて定義されていない。そ
> れどころか implementation-defined で、処理系依存と堂々と書いてあるぞ。
ちょっと不正確。ISOの規格では、int main() { } と
int main(int argc, char *argv[]) { } の 2つは必ず通ることになっている。
それ以外は実装定義だということ。だから、この2パターン以外の main を
書いてもいいけど、それは特定の実装でしか通用しないリスクを負った上で
やれ、ということ。
916仕様書無しさん:02/03/07 23:59
一応JAVAです。

String[] anArray;

int len = 0;
for(int i=0; i<anArray.length; i++; ) {
 len = len + 1;
}

何を数えているんだろう…
917仕様書無しさん:02/03/08 00:01
>>916
なんか、笑えた(*^_^*)
918仕様書無しさん:02/03/08 00:02
>>914
チャットするなよぉ!(藁
919仕様書無しさん:02/03/08 00:02
>>911
true や false と比較してる所には突っ込まないのか…
920dynaric ◆YyOSenYg :02/03/08 01:26
え?trueやfalseと比較するように、って先輩から指導受けたのだが。
Javaのequalsメソッドに対しても、ってのはやりすぎだと思うが
ユーザー定義メソッドや関数の場合はif(true==bolFoo())とか
やらないっすか?
921仕様書無しさん:02/03/08 03:31
Javaなら必要ないと思う
922名無しさん@Emacs:02/03/08 03:35
>>920
false(偽)は0と特定して良いが、
trueは「falseでない」ものだから、
本当は'=='では判定できないはず。

923仕様書無しさん:02/03/08 05:10
>>911,>>922
スレがスレだからな。
「true」や「false」が実際には何なのかわからんぞ。
まあ、見た目は別の関数からの返値と比較(なのか?)だからな。
結局Poe()もPuni()も実行せんという場合もあるのかもしれんし(w

924仕様書無しさん:02/03/08 13:19
>>922
Javaでは、falseは0ではなくfalseでしかないはず。型が違う
925仕様書無しさん:02/03/08 13:53
>「true」や「false」が実際には何なのかわからんぞ。

falseは0、これ決まり。
926仕様書無しさん:02/03/08 14:33
この会社辞めようと思わせるやつらが大量発生してます。ご注意ください。
927仕様書無しさん:02/03/08 19:50
今辞めると、再就職大変だぞ
928仕様書無しさん:02/03/08 21:08
なんだこのスレ
929仕様書無しさん:02/03/08 21:32
なんだと言われても、見るまま感じるままだが
930仕様書無しさん:02/03/08 21:57
もし君が「if((a == b) == TRUE)」が「if(a == b)」の改良版であると信じるのなら、な ぜそこで止めるのか。
なぜ「if (((a == b) == TRUE) == TRUE)」を 使わないのか
931仕様書無しさん:02/03/08 22:14
な ぜと言われても、困るんだが
932仕様書無しさん:02/03/08 22:30
な ぞな ぞ
933仕様書無しさん:02/03/08 23:39
一行ずついちいちコメントつけるやつ。

見にくいってば。
934仕様書無しさん:02/03/08 23:44
public class Mona {
int a=0;
int b=0;
int c=0:

 ・

まとめて書けやカスが。
935仕様書無しさん:02/03/09 00:01
>>923
スレがスレデも、
他のアプリとの連携や、通信や、別環境でビルドされたライブラリとかは
考慮しないでいいんじゃないか?
別関数でも同じ環境(コンパイラ・インタプリタ)で
解釈されたものであれば、関数ないでtrue(論理値)を返した場合、
trueで判定できるからね!その範疇でよいでがしょう。
936仕様書無しさん:02/03/09 00:09
>>934
そういう記述が正しい
937仕様書無しさん:02/03/09 00:25
トリアエズ
#define true (0==0)
#define false (0==1)
です
938仕様書無しさん:02/03/09 00:40
>>934
一般的には、まとめるほうがドキュソ
939仕様書無しさん:02/03/09 00:45
全部同じ値で初期化するならまとめても問題ないと思うが。
まとめると問題ある場合って何?
940仕様書無しさん:02/03/09 00:52
>>930
920が言っているぞ。
「先輩から指導受けた」からだろ?
941仕様書無しさん:02/03/09 00:53
>>934
君がカスね
942仕様書無しさん:02/03/09 00:55
>>939
まとめないと問題ある場合って?
943仕様書無しさん:02/03/09 00:59
>>942
つまりどっちでもいいってこと?
944仕様書無しさん:02/03/09 01:02
どっちでもいいことが分からない方がドキュン。

臨機応変。
945仕様書無しさん:02/03/09 01:10
よかった・・・一瞬俺ってカス?先輩や後輩に、クソコード書く
チンカス野郎って陰口たたかれて、明日会社に行ったら椅子の上に
画鋲が撒かれてて、泣きながら掃除してる自分の姿を想像しちゃったよ。
946仕様書無しさん:02/03/09 01:12
>>943
まとめる必要がないならまとめないほうがいい。
947仕様書無しさん:02/03/09 01:42
コーディングスタイルが定まらない奴のコードが一番読みにくい
948仕様書無しさん:02/03/09 11:16
>>934
 ソースからドキュメントを起こすツールがあるけど、まとめて書いた場合でも
きちんと起こしてくれるかな?
 それが気になる。

 一人で書くならどんな書き方しようが勝手だけど、仕事で複数人が関る場合
なんかは、なるべくまとめないほうがよいだろう。ローカル変数の全てに説明の
コメント付けること考えると(本当にそういうことを要求されることはある)、1行に
複数の変数定義をするのはおすすめしない。
949仕様書無しさん:02/03/09 11:45
>>948
俺はまとめない派なんだが、以前新卒にそれ注意したら

「えっ、コメントなんて

 int ia = 0, ib=0, ic=0; /* ループ用変数 */

 で全然問題ないじゃないですか。」

と反論しやがった。
950948:02/03/09 11:55
>>949
 まずループ変数に ia,ib,ic とつけているところを小一時間以下略。

 まあ、漏れもループ変数は必ず lc で始める(lc, lc1, lc2, lcx など)
という自分基準は持っているけど、それでもまとめては書かんなあ。


 それはそうと、あの書き方に慣れていると、VB だとかなり悲惨なこ
とになるな。
 この場合 ia が integer で、ib, ic は variant になるんだっけ。
 まあ VB なんて使う方が以下略。
951仕様書無しさん:02/03/09 12:12
ん。 それはVB5までで、VB6では最初の宣言と同じ型になるんじゃなかったっけ。
952仕様書無しさん:02/03/09 18:07
VB6までじゃないか?VB.NETだとまとめて宣言できるらしい。
VBあんまり使ったこと無いんで良く知らんけど。
953仕様書無しさん:02/03/09 18:19
>>949
注意?自分の主義を人に押しつけるのは感心できないと思うが。

それはそうと、そのコードはCだよな?C++だったら痛いぞ。
954仕様書無しさん:02/03/09 19:00
ループの変数は i,j,k と使って、z まで逝ったらa に戻る。

に決まってるジャン。
955仕様書無しさん:02/03/09 19:12
ループ変数にも意味のある単語を使う、これ最強
first_suffix_of_hairetsu
second_suffix_of_hiretsu
etc...
956仕様書無しさん:02/03/09 19:33
>>955
hairetsu (w
957仕様書無しさん:02/03/09 19:33
だれか次スレたてろや!
958仕様書無しさん:02/03/09 20:26
zまで逝くようなループなんて…
959仕様書無しさん:02/03/09 20:27
俺は変換ミスを防ぐために、ループ変数は ii, jj, kk ... にしている >>954
960仕様書無しさん:02/03/09 20:33
>>955
やっぱり、ひれつなのはいけないとおもいます。
961仕様書無しさん:02/03/10 22:10

   ,,v‐v-/l_  (⌒)
  _「/ ̄  く   /
  lYノノ/_ノl_ヽ))
  <イ( l l )l>  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 <|)'|l、"(フノ|l  < hiretsuなのはいけないと思います!
  ,(ヨリ<>o<>リ']  \______________
  |ト‐!]-ム- i']l
  ヽ_ノv__l/ /
.  ノ[//‐─‐/_/、
 ( /E|,   (フlヨ \
 ,-| El___lヨ /
└-\`^^^^^^´/
     ̄ ̄ ̄
962仕様書無しさん:02/03/10 22:15
if(...)
goto hoge1;
if(...)
goto hoge2;
.
.
.
.

こんなのが永遠と100行ぐらい続いてました。
何とかしてください。
963仕様書無しさん:02/03/10 22:55
>>959
その方法いいかも、iとjが見づらくて、jをトバしてたんだよね。
かといって、愛ははずせない。

>>962
何をしてるプルグルム?
964962:02/03/10 23:01
>>963
昔のBASICと同じだと思ってくれ
965仕様書無しさん:02/03/10 23:03
>>962
ステップ数で賃金の請求をしてるプログラマの仕業です
許してあげましょう。
966仕様書無しさん:02/03/10 23:09
アセンブラ?
967仕様書無しさん:02/03/11 00:10
i,j,k.....FORTRANの呪いがこんなところに.....
968948:02/03/11 00:38
>>967
 それを言っても昨今のプログラマには分からんってば(w
 だいたい下手すると「Fortran? 何ですかそれ?」だと思うぞ。

 今って情報処理技術者試験で Fortran 使えたんだっけ?
 いいよね今は。 C も BASIC も使えるんだから。
 昔はなあ、Fortran と COBOL と PL/I とアセンブリだぞ(w
 結局アセンブリか Fortran しか選択肢がないと同じ。

 それよりも罠は午前の「簿記会計」だったけどな(w
969仕様書無しさん:02/03/11 01:17
でも情報処理技術者が、今時アセンブラは無いだろと問い詰めたい。
だから俺みたいな嘘っぱちが受かっちまうんだYO!
970仕様書無しさん:02/03/11 19:55
>969
確かに開発でアセンブラはほとんど死滅しただろうけど、
計算機の理解度を調べるためのアセンブラは有効でしょ?
971仕様書無しさん:02/03/11 20:19
printf("hoge\n"); /* <-意味は無いけどコレが無いとcore吐くので */

マジで。殺意が芽生えた。
972仕様書無しさん:02/03/11 21:20
>>971
禿同。
973仕様書無しさん:02/03/11 21:21
過去3年分のデータを処理するストアドプロシージャで、
ifが36段ネストしていました。
if ...
 if ...
  if ...
AAかと思ってしまうくらいに傾斜がきれいでした。
974仕様書無しさん:02/03/11 21:26
>>973
それって、再起を利用することはできなかったのか?と問いたい。
975仕様書無しさん:02/03/11 21:29
オブジェクト指向とは言わない。
構造化も我慢しよう。
たのむから同じ処理は一つの関数にまとめてくれ!
不実宇●●ネット■■の皆さんよお!
976仕様書無しさん:02/03/11 21:29
>>971
漏れが何も知らない新人だったころ、
「これがないと動かないんだよね〜。おまじないって言うんだよ」
って先輩が笑いながら教えてくれた。
へ〜そうなんだ〜、おもしろいなぁ〜、と感じたことを
思い出した(鬱
977仕様書無しさん:02/03/11 21:29
36段ネスト・・・3×12か
見たいなぁ、組んだ奴の顔。
978仕様書無しさん:02/03/11 21:31
おまじないは、神への敬意です。
蟲を鎮める神聖な神の命でしゅ。
979仕様書無しさん:02/03/11 21:34
>>975
漏れ明らかに他社だけど、2〜3回までなら同じ処理でもまとめません。
処理の長さにもよるけどね。20stepくらいまでかなぁ、まとめないのは。
だめ?
980仕様書無しさん:02/03/11 21:36
2step以上で処理としてのまとまりがあるのであれば、まとめる。
981仕様書無しさん:02/03/11 21:41
単純にソース中でよくみかけるコードを切り出して無理やり関数化す
るのは勘弁して〜。「ふにゃららをする」と定義できないものは関数
化するなと言いたい。
関数化しようとする意思は認める、が、「ふにゃららをする」と定義
できるまとまりで切り出せ、と言いたい。
982仕様書無しさん:02/03/11 21:42
関数呼び出し時のpush/pop(引数の受け渡し)のコストを気にしてしまう。
983仕様書無しさん:02/03/11 21:43
可読性と修正時のコストを気にしてしまう。
984仕様書無しさん:02/03/11 21:45
>>981
同意。
すわりが悪いのは勘弁。
だからといって重複が許されるわけではない。
もちょっと工夫していい切り口を探してホスィ。
985仕様書無しさん:02/03/11 21:47
>>982
シビアな処理なら、あとできっちりテストしながら最適化すれ。
push/popなんぞよりもっとひどいボトルネックをまず全部つぶして、
それでも処理のスピードが要求に満たないのなら、そんときpush/pop
のコストを考えよう。
986仕様書無しさん:02/03/11 21:55
>>982
ていうかインライン展開スレ。
987仕様書無しさん:02/03/11 22:24
>>981
単に似ているから無理やり関数化して、
内部で謎の引数で分岐してるやつとか
988仕様書無しさん:02/03/11 23:14
>>987
謎のグローバル変数で分岐してるのを見たことありやす。
989仕様書無しさん:02/03/12 00:23
>>971
>printf("hoge\n"); /* <-意味は無いけどコレが無いとcore吐くので */
意味がないわけではなく、コンパイラだかリンカだかのバグを回避するために入れる必要があった。
(コメントをうまく解析できなかったんだっけ…うろ覚えでスマソ)
990仕様書無しさん:02/03/12 00:32
さてと、1000ゲトはまだかな?
991仕様書無しさん:02/03/12 00:33
コソコソ
992仕様書無しさん:02/03/12 00:33
コソコソコソコソ
993仕様書無しさん:02/03/12 00:34
コソコソコソコソコソコソ
994仕様書無しさん:02/03/12 00:34
コソコソコソコソコソコソコソコソ
995仕様書無しさん:02/03/12 00:36
連続投稿解除!
996仕様書無しさん:02/03/12 00:37
コソコソ
997仕様書無しさん:02/03/12 00:38
コソコソコソコソ
998仕様書無しさん:02/03/12 00:38
コソコソコソコソコソコソ
999仕様書無しさん:02/03/12 00:38
               '"':,       ,:'"':,
              ,:' ,:':.':,      ,:' ,:'::':,
             ,:' ,:':::.::::':,,,.....,, ,,,:' ,:'::::::::':,
             ,' ,:'::::::::::::',    ,:' ,:'::::::::::::':,         1000・・・・・・・
           ,::'                 '::,
          ,:'..                    ':,________
          ,':.        ●       ●   ',           /\
         ;;::   \|/                ;;.           /   \
         ;;::   /|\    -------       ;'.        /      \
          ':,::                     ,:'        /         \
        / '::,::..                 ,.::'      /            \
       /    "''':; ''           ""; ''"      /              /
     /       :;              :;       /              /
    /| ̄ ̄ ̄ ̄ ̄:;;:..   ;: ̄ ̄:;    ;: ̄ ̄ ̄ ̄ ̄|\            /
  /  |        :;:::   :i:   :i    ;:         . |  \         /
../   |        :i::..   ;:   :;    i: .         |   \      /
     |        .`.、.、..、.,'    `..、.、..、.,'          |     \   /
     |           |                  |      \/
     |           |                  |     /
      |           ヽ_l     レ ヽ      .|    /
      |                             |  /
      |___________________.|/
1000仕様書無しさん:02/03/12 00:39
↓おめでとう!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。