[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 09/11 23:08 / Filesize : 95 KB / Number-of Response : 441
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:仕様書無しさん mailto:sage [2007/04/02(月) 12:45:06 ]
この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。
プログラマを悩ませるソースコード。
をつらつらと綴っていって頂戴。

ちなみにここは質問スレじゃないので
技術的な質問がしたいならム板 pc11.2ch.net/tech/ に逝って。

前スレ
この会社辞めようと思ったソースコード#15
pc11.2ch.net/test/read.cgi/prog/1167117526/

45 名前:仕様書無しさん [2007/04/21(土) 10:19:21 ]
沖縄県の方へ(命に関わる注意事項です)

沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」等で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…

※一国二制度
 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
 さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。

今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。

46 名前:仕様書無しさん mailto:sage [2007/04/21(土) 15:37:30 ]
>>40
そりゃあ>40みたいな前提条件を勝手に組み込めばそういう解釈も可能だが
シンプルな>31だけを見せられたら>33のような反応してしまうのが普通だろ。

ここで>40とは正反対の前提条件があったとして、>31のような書き方をされたら
ありもしないニュアンスを醸しだしてかえって迷惑。

47 名前:仕様書無しさん mailto:sage [2007/04/21(土) 17:54:27 ]
>>41
VBって暗黙の型変換が意味も無く強力過ぎ
たしかVB5のときに型変換のルールが微妙に変わった様な飢餓するが
今となってはどうでもいい事だ

48 名前:仕様書無しさん mailto:sage [2007/04/21(土) 19:08:06 ]
char* buf = new char[sizeof(Hoge)];
Hoge* hoge = (Hoge) buf;
.
.
.
delete[] buf;




わかってねぇ〜〜〜〜〜。

49 名前:仕様書無しさん mailto:sage [2007/04/21(土) 19:27:18 ]
なんかまずいの?
馬鹿にしたかったら馬鹿にしていいけど、その後でちゃんと何が分かってないのか説明してね。

50 名前:仕様書無しさん mailto:sage [2007/04/21(土) 19:32:28 ]
キャストがおかしいってことか。
仮に typedef void *Hoge; だとしたらこれでOKって、いや違うC++だとアウトだ。

あれ?

51 名前:31 mailto:sage [2007/04/21(土) 19:37:43 ]
>>40
>>31は、実際に見たものをココに書くために行った
抽象化の過程が悪かったと思います。
>>32及び>>40も、ごもっともだと思いますよ。

実際自分が見たコードは>>31で書いた風なものより"もっと"酷く、
貴方がされたような弁明の余地なんて無いだろう
ってな感じのものでした。

実際の処理をfileの有無に替えて書くと、

if( [条件] ) { 
 existFile = true; 
 a.setExsitFile(true); 
 b.setExistFile(true); 
} else { 
 existFile = false; 
 a.setExistFile(false); 
 b.setExistFile(false); 


こんな感じでした。

意味的にも書き分けるような部分ではないんです。
つまり、正に>>35の言う通りな感じかなーと思ってます。

52 名前:仕様書無しさん mailto:sage [2007/04/21(土) 20:34:41 ]
パケットのデータを取り出すのによく>>48みたいなキャストするけどいかんのかね?
ま、確保したばかりの変数をキャストするのは珍しいと思うけどさ

53 名前:仕様書無しさん mailto:sage [2007/04/21(土) 21:27:33 ]
>>52

普通は

Hoge* hoge = new Hoge;

だわな。
よくCから中途半端にC++へ移行した人がやってるのを見かける。
どうせnew=malloc程度に理解してんだろうね。



54 名前:仕様書無しさん mailto:sage [2007/04/21(土) 23:49:33 ]
>>49
説明するまでもないだろ。

55 名前:仕様書無しさん mailto:sage [2007/04/22(日) 01:05:47 ]
キャストは基本DQNでございます。
memcpyとか大好きなDQNがごろごろ。

大人しくCでもいじってろ。


56 名前:仕様書無しさん mailto:sage [2007/04/22(日) 01:30:29 ]
先日見たJavaコード

long hoge = 1;
 :
Long page = Long.valueOf(String.toString(hoge));

文字列にする意味ねぇ・・・

57 名前:仕様書無しさん mailto:sage [2007/04/22(日) 14:58:11 ]
>>56
"valueOfがイイ、使え"
とか言われた人間がそこで思考停止するとそうなるな...

58 名前:仕様書無しさん mailto:sage [2007/04/22(日) 16:21:19 ]
>>56-57
もっと深刻な「コボラ上がり」だったんじゃないかな。
やつらは、数値="0"〜"9"の並び(=ゾーン形式)っていう観念から
離れらんないから。


59 名前:仕様書無しさん mailto:sage [2007/04/22(日) 23:10:42 ]
>>48も基本がなってない。
(Hoge)じゃなく(Hoge *)だろ。

60 名前:仕様書無しさん mailto:sage [2007/04/23(月) 13:19:44 ]
主旨は違うんだけど、ここの
tp://d.hatena.ne.jp/nowokay/20070323

// null => 0, not null => 1
int p = Boolean.toString(data == null).length() - 4;

ってのが好き。やられた。

61 名前:仕様書無しさん mailto:sage [2007/04/23(月) 15:03:51 ]
ソースコードじゃないんだけど。
DBのDDLをバージョン管理システムに入れてまして。

外注さんが直接DBをいじっちゃったので、
リポジトリのDDLに変更を反映してくれって頼んだら。

hoge.sql(手付かず)
hoge_日付.sql(新規)

ってファイルがリポジトリにあって
面白かったです。

62 名前:仕様書無しさん mailto:sage [2007/04/23(月) 21:40:52 ]
最初、DLLと読んでしまったので、理解するのに時間がかかってしまった。

バージョン管理システムを、読み書きに手順が必要なファイルサーバだと
思ってる人、確かにいますね。



63 名前:仕様書無しさん mailto:sage [2007/04/23(月) 21:58:34 ]
>バージョン管理システムを、読み書きに手順が必要なファイルサーバだと
>思ってる人、確かにいますね。

今のPRJリーダのことかーーーー

CVSなのになぜか
hoge
hoge_2
hoge_3
とディレクトリを切っている。
旧ソースを全てコメントとして残したり、
日付と変更者をコメントに書いて変更箇所をサンドイッチしたり。

ストレージとしてしか使っていないよ・・・orz



64 名前:仕様書無しさん mailto:sage [2007/04/29(日) 14:33:46 ]
変更者が変質者に見えた・・・俺相当疲れてるな・・・

65 名前:仕様書無しさん [2007/04/30(月) 01:15:17 ]
IF IsNumeric(Cint(value)) Then

End If

orz ...

66 名前:仕様書無しさん mailto:sage [2007/05/01(火) 18:01:28 ]
元気出せ。

67 名前:仕様書無しさん mailto:sage [2007/05/05(土) 15:38:53 ]
VBの類は、暗黙の型変換を禁止するオプションがほしいよぬ

68 名前:仕様書無しさん mailto:sage [2007/05/05(土) 16:36:40 ]
>>67
vb.net にはあるぞ

69 名前:仕様書無しさん [2007/05/06(日) 14:05:22 ]
俺の会社ポインタ型は全部void *って全社共通で決まってるから
VBのキャストぐらいでは混乱しないよ。

70 名前:仕様書無しさん mailto:sage [2007/05/06(日) 14:14:37 ]
常に参照先の型について意識させることで社員の意識を高めようということか!


ごめん無理

71 名前:仕様書無しさん mailto:sage [2007/05/06(日) 15:12:53 ]
関数ポインタも?

72 名前:仕様書無しさん [2007/05/06(日) 15:33:12 ]
全部void *

型の意味がよくわからない使いかたしまくってるよ

void hoge(int *val);
こんな関数とか平気作るし

73 名前:仕様書無しさん [2007/05/06(日) 15:49:17 ]
C++では関数ポインタはvoid *だとまずいんだよな
オーバーロードが解決できなくなるから

こういうことやるならまだしも(できるんか?)
int func(int) { ... }
double func(double) { ... }

void *p = reinterpret_cast<int (*)(int)> (func);



74 名前:仕様書無しさん [2007/05/06(日) 15:51:08 ]
呼び出し側書くの忘れてた
reinterpret_cast<int (*)(int)> (p)(10);

75 名前:仕様書無しさん mailto:sage [2007/05/06(日) 15:52:53 ]
C++には、メンバ関数ポインタ、という鬼子もいるからね

76 名前:仕様書無しさん [2007/05/07(月) 11:14:57 ]
reinterpret_cast

なんでこれ導入したんだろうね。。。

77 名前:仕様書無しさん [2007/05/07(月) 11:58:25 ]
いや、わりと低水準なことをするときには必要だろ。

static_castだと型変換がかかって値(メモリ上のビット列)が変化することがある。
reinterpret_castは型だけを変化させてビット列そのものは変化しない。

78 名前:仕様書無しさん [2007/05/07(月) 12:13:08 ]
そんな場面あるか?

79 名前:仕様書無しさん mailto:sage [2007/05/07(月) 21:37:54 ]
組み込みとか


80 名前:仕様書無しさん [2007/05/08(火) 10:05:32 ]
kwsk

81 名前:仕様書無しさん [2007/05/08(火) 14:28:58 ]
ソースじゃないんだけど

あるSEがUML書きましたと言って提出してきた設計書が、
単なるフローチャートだったとき

しかもパーツの意味を間違えまくっているとき

82 名前:仕様書無しさん mailto:sage [2007/05/08(火) 18:15:31 ]
いいじゃんか。

全部アクティビティ図だと脳内で変換するんだ。
変換して現実から目をそむけると。

はっぴ?

83 名前:仕様書無しさん [2007/05/08(火) 18:54:42 ]
フローチャートって実戦で使わないだろw



84 名前:仕様書無しさん [2007/05/08(火) 19:09:35 ]
>>81
フローチャート通りに実装していいんじゃね?

85 名前:仕様書無しさん [2007/05/08(火) 22:07:33 ]
様式に神経質なぐらいこだわる奴はたいていろくでもない
要はしっかり設計できてりゃいいってのがわかってないんだよな・・・

86 名前:仕様書無しさん [2007/05/08(火) 22:24:16 ]
UMLキチガイのことか

87 名前:仕様書無しさん mailto:sage [2007/05/08(火) 23:39:21 ]
そうおもってさ。おぷそのつーるでグラフ化してみたわけよ、糞ソフト。


花火が見られた。

とりあえず生成結果を消した。

88 名前:仕様書無しさん mailto:sage [2007/05/09(水) 09:23:11 ]
Happy99とは懐かしいな。

89 名前:仕様書無しさん [2007/05/09(水) 10:07:23 ]
しあわせ99?

90 名前:仕様書無しさん mailto:sage [2007/05/09(水) 10:14:18 ]
ウイルスだったよな?確か

91 名前:仕様書無しさん mailto:sage [2007/05/09(水) 19:20:16 ]
昔流行ったよな。確か花火が上がるやつだと記憶している。

92 名前:仕様書無しさん [2007/05/09(水) 21:54:00 ]
>>80
たとえばnewとかで取得した領域のアライメント調整で使う

#define AREASIZE 80
#define ALIGNSIZE 4
char* p; void* q;
p = new char[AREASIZE+ALIGNSIZE-1];
q = reinterpret_cast<void*>((reinterpret_cast<int>(p)+ALIGNSIZE-1)&~(ALIGNSIZE-1))

// ...

delete p;

93 名前:仕様書無しさん mailto:sage [2007/05/09(水) 22:19:23 ]
 Dim flgUmu As String = "nasi"
 For Each ws In objBook.Worksheets
  If ws.Name = strName Then
   flgUmu = "ari"
  End If
 Next



もうどこからツッコめばいいのかorz




94 名前:仕様書無しさん mailto:sage [2007/05/09(水) 22:58:11 ]
時々居るなぁ、Boolean使わない奴。

95 名前:仕様書無しさん mailto:sage [2007/05/09(水) 23:15:01 ]
ポインタをintにキャストする香具師は、
LP64,LLP64環境で死亡で御座います

96 名前:仕様書無しさん mailto:sage [2007/05/09(水) 23:26:18 ]
uintptr_tかchar*でないとマズいね。
ところで~(ALIGNSIZE-1)ってそのままで大丈夫?

97 名前:仕様書無しさん mailto:sage [2007/05/09(水) 23:36:30 ]
ごめん、大丈夫そう。

98 名前:仕様書無しさん mailto:sage [2007/05/09(水) 23:57:03 ]
>>96
ALIGNSIZEが2の冪乗値という条件付きだけどな

文末のセミコロンが抜けてるのは痛い>92

99 名前:仕様書無しさん [2007/05/10(木) 01:43:21 ]
#define private public
#define protected public

本当にこれが書かれたコードがあった。
しかも俺のすぐ上の上司が書いたっぽい。

陰謀めいたものを感じて冷や汗が出たよ


100 名前:仕様書無しさん [2007/05/10(木) 09:36:17 ]
private宣言してもリアルタイムデバッグではアクセス可能だろ?
意味なくね?

101 名前:仕様書無しさん mailto:sage [2007/05/10(木) 11:00:05 ]
>>100
はあ?

102 名前:仕様書無しさん [2007/05/10(木) 11:49:46 ]
全然privateじゃないってこと

103 名前:仕様書無しさん mailto:sage [2007/05/10(木) 12:24:19 ]
カプセル化の意味も判らないんなら口挟まない方がいいんじゃね?



104 名前:仕様書無しさん mailto:sage [2007/05/10(木) 12:31:25 ]
そこで防御策として

#ifdef private
#undef private
#endif
#ifdef protected
#undef protected
#endif

と自分のヘッダの先頭に書く必要が出てくる。
もはや冷戦だな。

105 名前:仕様書無しさん [2007/05/10(木) 17:55:41 ]
>>104
勘弁してください……

106 名前:仕様書無しさん [2007/05/10(木) 18:57:15 ]
>>104
その後にインクルードされるヘッダファイルの中で

#ifndef private
#define private public
#endif
#ifndef protected
#define protected public
#endif

と書かれてないか調べたか?



107 名前:仕様書無しさん mailto:sage [2007/05/10(木) 19:19:40 ]
嫌な職場だなぁ

108 名前:仕様書無しさん mailto:sage [2007/05/10(木) 22:26:52 ]
まさに冷戦。 誰が核のボタンを押すのか、押せるのか。 いやまて核は何なのか。

109 名前:仕様書無しさん mailto:sage [2007/05/10(木) 23:18:03 ]
#define FIRE FILE なんての見て鬱になってたところだが、
ここ見てたらなんだか元気が出てきた。ウチはまだ大丈夫だ!

110 名前:仕様書無しさん mailto:sage [2007/05/10(木) 23:48:01 ]
>>106
オワットルwww

111 名前:仕様書無しさん mailto:sage [2007/05/11(金) 00:48:52 ]
>>109
知らぬ間に

#define FILE FIRE

になっているかもしれんぞ。

112 名前:仕様書無しさん mailto:sage [2007/05/11(金) 01:38:14 ]
大丈夫。
展開コードを参照すればw

113 名前:仕様書無しさん [2007/05/11(金) 10:34:47 ]
1つのプロジェクト内にファイルが1800個あったから、一体何かと思ったら
履歴を全部別ファイルにして残していて、わざわざコンパイルしない設定対象に1780個ぐらい加えているという・・・


バージョン管理ソフト使っていてこれかよ。出向先なので辞めるわけにはいかない、
明日から通勤時間に3年程かけようかとか本気で思った




114 名前:仕様書無しさん mailto:sage [2007/05/12(土) 01:22:44 ]
>>111
sonyのバッテリーが発火した原因はそれか。

115 名前:仕様書無しさん mailto:sage [2007/05/13(日) 07:16:31 ]
やめよう思うほどじゃないが
よく見るキモチワルイコード

if (a == 1) {
} else {
 なんかのしょり
 なんかのしょり
}

116 名前:仕様書無しさん mailto:sage [2007/05/13(日) 08:38:20 ]
>>115
俺、よくこういうコード書きかけてしまう…
具体的にはこんなんですが。

if (a == 1) {
 /* 〜ということやりたいけど後で考える */
} else {
 なんかのしょり
 なんかのしょり
}

(a == 1) の時の処理考えなくてよければ、こんなんかな。

if (a != 1) {
 なんかのしょり
 なんかのしょり
}

117 名前:仕様書無しさん mailto:sage [2007/05/13(日) 14:21:06 ]
>>116
コーディング中には俺もよくやる。
問題は納品後のソースにそれが残ってることだと思います。

//TODO:この機能いらなくね??
とか
//TODO:うんこしたい
とか
//TODO:仕様はやくきめろやぼけ!!殺すぞ!!
とか
他人にはとても見せられないようなコメント
入れといて実装漏れ、修正漏れは絶対起こさないようにすべき
このコメントを納品した後のソースで、見たらその人は
この会社やめようって思うんだろうなー

でも、顧客の悪口は洒落にならないから書かないぜ!

118 名前:仕様書無しさん mailto:sage [2007/05/13(日) 14:26:10 ]
んなコメント入れんなよ

119 名前:仕様書無しさん mailto:sage [2007/05/13(日) 17:13:43 ]
普通、if(a)って書かね?

120 名前:仕様書無しさん mailto:sage [2007/05/13(日) 17:20:56 ]
>119

出た〜〜〜っ!

121 名前:仕様書無しさん [2007/05/13(日) 17:41:28 ]
>>119
それキモい。
aはあくまでデータであり、真偽をあらわす値ではない。

122 名前:仕様書無しさん mailto:sage [2007/05/13(日) 17:44:10 ]
ところでいつ a が boolean になったんだ?

123 名前:仕様書無しさん mailto:sage [2007/05/13(日) 17:44:34 ]
C#とかだとコンパイルも出来ない。



124 名前:仕様書無しさん mailto:sage [2007/05/13(日) 17:47:02 ]
ifは0かそうじゃないかだけしか見ないんだから>>119で何の問題もないだろ
C#はシラネ

125 名前:仕様書無しさん mailto:sage [2007/05/13(日) 17:51:42 ]
ifは0かそうじゃないかだけしか見ないんだから
ifは0かそうじゃないかだけしか見ないんだから
ifは0かそうじゃないかだけしか見ないんだから
ifは0かそうじゃないかだけしか見ないんだから



ifは0かそうじゃないかだけしか見ないんだから〜



お前とは組みたくない。

126 名前:仕様書無しさん mailto:sage [2007/05/13(日) 17:56:10 ]
組込みマイコンのコンパイラでは常識的手法。
if(a)なら JNZ命令一行ですむ。

127 名前:仕様書無しさん mailto:sage [2007/05/13(日) 17:59:30 ]
>>121
まじすか。
ただ、適切な変数名をつけて問題領域で考えれば分かりやすいと思うんだけどなぁ
int型でも俺はそうやってる

128 名前:仕様書無しさん [2007/05/13(日) 18:07:33 ]
if (a) って書いたら a == 1 以外のケースでも真と判定されることに気づかないかね。

>>126
if (a != 0) を if (a) に最適化するのはコンパイラの仕事ですよ。

より効率の良く等価な記述に変換する最適化はコンパイラにさせて
人間は正しい意味論に則った保守しやすいコードの記述に努めるべき。

129 名前:仕様書無しさん mailto:sage [2007/05/13(日) 18:17:16 ]
で、aの型は・・・?

130 名前:仕様書無しさん mailto:sage [2007/05/13(日) 18:19:03 ]
お前ら、if (isdigit(c) == 1)って書くの?

131 名前:仕様書無しさん mailto:sage [2007/05/13(日) 18:23:03 ]
>>121
何か変なことになった場合に
if(a)の時点でa=0になっていると保証されてるなら
それでいいと思うが。

132 名前:仕様書無しさん [2007/05/13(日) 18:25:26 ]
>>130
isdigit関数の戻り値の意味は真偽値だとわかっているから if (isdigit(c)) で無問題。

ちなみに 真==1 とは限らないので、敢えて書くなら if (isdigit(c) != 0) が正解。

133 名前:仕様書無しさん mailto:sage [2007/05/13(日) 18:27:44 ]
>>128
int型でもブール変数として使う場合は
むしろ、a == 1 以外のケースでも真と判定されなきゃまずいと思うけど



134 名前:仕様書無しさん [2007/05/13(日) 18:32:31 ]
if(a)って書くとバグの温床になるからやめろ

等号式書いても、今のコンパイラなら80年代と違って等価のコード出す。
今、最適化意識して各のはアルゴリズムの性能と無駄なシーケンス省くことだけ。

きもいくて古い書き方は捨てろ。恥だ

135 名前:仕様書無しさん mailto:sage [2007/05/13(日) 18:38:06 ]
>>134
>if(a)って書くとバグの温床になるからやめろ
まぁif((hFile = CreateFile()))とかやってハマってた奴とかいたし、気持ちはわかるw

136 名前:仕様書無しさん [2007/05/13(日) 18:38:38 ]
isdigit

www

137 名前:仕様書無しさん mailto:sage [2007/05/13(日) 18:38:42 ]
だーかーらー前提としてaの型を明らかにして話を進めろ

138 名前:仕様書無しさん mailto:sage [2007/05/13(日) 18:47:19 ]
>135
じつはhFileの実体がスマートハンドルで、
operator boolみたいなのが定義されているとか

139 名前:仕様書無しさん mailto:sage [2007/05/13(日) 18:51:44 ]
>137

新人はだまってROMしてなさい!

140 名前:仕様書無しさん [2007/05/13(日) 18:55:15 ]
>>137

・aがブールを意味する値なら if (a) でおk
・そうでなければ比較の意図を明示的に表明すべし

でFA

141 名前:仕様書無しさん mailto:sage [2007/05/13(日) 19:04:34 ]
>140
上の連中それをごっちゃにして噛み合わない議論してねぇ?

142 名前:仕様書無しさん mailto:sage [2007/05/13(日) 19:08:37 ]
>>134
むしろ、バグの温床になるのは
if (a==0)
とかの方なんだがな・・・
typo で
if (a=0)
になってしまうから。


143 名前:仕様書無しさん mailto:sage [2007/05/13(日) 19:12:33 ]
はいはいif(0==a)



144 名前:仕様書無しさん [2007/05/13(日) 19:28:00 ]
つか
if( a == b )を間違えないように定数比較したいなら
if( NULL == a)って書けばいいだろ。定数は必ず初項として記述すればいいだろ
仮にif( NULL = a)ってやればコンパイルエラー出る。

つうか2000年ぐらいまでのコーディング規約でいいものだけ取り入れて
かけよ。一般人ができる最低限度のコーディングの礼節だと思うがな。



145 名前:仕様書無しさん mailto:sage [2007/05/13(日) 19:34:08 ]
>>144 読んで
ふと思ったんだが、
fj って今でもあるの?







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<95KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef