5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :仕様書無しさん:01/09/21 21:40
この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。
プログラマを悩ませるソースコード。
をつらつらと綴っていって頂戴。

■過去スレ

この会社辞めようと思ったソースコード
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

2 :2: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
世の中にまともなソースコードがあるなら教えてくれ!

8 :sage: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");
 }
}

60 :52: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>

61 :52: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;
}

62 :60: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
さすがにそれはプリコンパイラで自動生成だろうな

68 :61: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文だった。
わかりやすくて簡単でためになるソースをいくつか与えて、お手本にさせると良いと思われます。

72 :69: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?

86 :69: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以外にバックアップ」が当たり前という認識を持てるようになったわけで。

98 :69=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で組むのやめて 逝ってくだちい

110 :shige: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が無い理由もしりたいな。

122 :ミ(゚◎゚)ミ  ◆c2uMaIpA :01/09/29 16:26
>>121
残業中にSUBA_0というのを見ると、スバオーと読み間違い、
急にスパ王が食いたくなってコンビニに逝ってしまうから。

123 :仕様書無しさん:01/09/29 18:19
subb.hにsuba.hと同じ定義をするところがイタイ。せめて名前を共通にしてインクールドしてくれ。

124 :DQNPG: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
何と比較して?

128 :ミ(゚◎゚)ミ  ◆c2uMaIpA :01/09/29 22:58
>>12
#defineと比較してでは?

129 :>>105:01/09/29 23:41
確かにポインタのサイズは普通に宣言するとintサイズになるんだけど、16ビットと32ビット混在環境だったし、16ビットから32ビットに変更するときそういう表記すると問題になると思って。
>>105に反論してる人はnearとかfar使ってた?

130 :105:01/09/29 23:46
あと、「ポインタに変数を代入しています」とかいうワーニング出ません?

131 :105: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ナニソレ? な少年だった。

134 :DQNPG: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とかの話を聞いて思っただけ。

147 :140: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行とかなっているから、最後の構造体のアドレスをポインタ参照するように変えたら
「どこを指しているのかわかりにくくなるから、余計なことはしないで下さい」と叱られたこともあるな・・・

153 :152:01/10/19 22:57
ぱなそに、なんて口が裂けても言えない。

154 :仕様書無しさん:01/10/19 23:18
>>152
オレの知っている工場だったりして
豊橋にないかい?(藁

155 :152: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言語でもいるよ、そのパターン。

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

せっせと同じ箇所をコピー&ペースト

163 :157: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禁止の典型的なコードだよね。
ウザイけどこのレベルならまだ許せる。

171 :167: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
なんかなつかしい。
まだオブジェクト志向どころか構造化プログラミングという言葉が
なかった頃、こんなコーディングをしがちだった。
もっとも、その頃はラベルもローカル変数も使えなかったんだけど。

176 :167: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
普段プログラマーしてても、こーゆープログラマー以前のとこ
できない人って少数ながらいるよ。

199 :198: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
つーか、日本語をもうちょっとどーにかすれ。

212 :なあ、ななし突撃兵さんよ:01/10/23 15:26
>>210
それはナニか、if ()に続く{ ... }がif ()の条件の真偽とは無関係に
常に実行されるってことか?

213 :仕様書無しさん:01/10/23 15:32
>>210
>さて、課長に教えてやるべきかどうか?(w

遊びでやってるんじゃないんだからさ・・・。

214 :210: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
それよりも「共通変数仕様」なるヘンテコリンなものを拒絶せよ。

62 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)