[表示 : 全て 最新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/

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 って今でもあるの?


146 名前:仕様書無しさん mailto:sage [2007/05/13(日) 19:35:09 ]
確かにその書き方なら間違いが防げるけど、何故か普及してないな。

147 名前:仕様書無しさん mailto:sage [2007/05/13(日) 19:36:49 ]
if( NULL == a)
と書くのはお断りだ

148 名前:仕様書無しさん mailto:sage [2007/05/13(日) 19:38:54 ]
>>146
昔から議論はあるけど、警告が出るからそんなヘンな書き方をすることは無いってことで落ち着いてる。

149 名前:仕様書無しさん mailto:sage [2007/05/13(日) 19:40:09 ]
>>144
きもいくて古い書き方は捨てろ。恥だ 


150 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:18:41 ]
if(a)

が一番美しい。

151 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:25:30 ]
>>150
>>121

152 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:31:36 ]
>151
>127



153 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:36:17 ]
プログラムってのはデータと命令しかないわけよ。
そのデータが真偽値であるとか整数であるとかあるいは文字列であるとかの意味付けは
言語処理系上でのみ行われている文脈上のものでしかないの。
文法的に許されているなら>>150を支持する。実際、美しい。
キモイとか許せないと思うなら
if(a)
という記述を許さない言語を使えば良いでしょ。

154 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:37:43 ]
無限ループって怖くね?w

155 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:38:51 ]
最初の書き込みで、aに入ってるのがbool値(0かそれ以外)か、ただの数値(たとえば0〜100とか)とか何も
書いてないのに、いきなり

「if (a) と書く」とか言うのは変だって言ってるんだろ。

156 名前:仕様書無しさん [2007/05/13(日) 20:45:37 ]
個人的に
if(a)
で書ける状況でもこういう書き方はしないなぁ。
たまたま文法的に成立するってだけだから。
古い書き方だと思う。
今はベタに、ちゃんと==使わないとダメだと思う。

157 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:45:46 ]
ねえ、今は False =0, True = 1 であたりまえなの?
昔はそれぞれ 0, 0xff って実装もありだったと思うんで、
True のつもりで a == 1 なんて怖くて書けない。
せめて a == True とするのが、他人が読む時も精神衛生的にいいんジャマイカ?

158 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:46:32 ]
>>155
>「if (a) と書く」とか言うのは変だって言ってるんだろ。 

別に。

また、プログラムの読み手にとっても、
aに入ってるのがbool値か、ただの数値か
なんて考える必要はない。

a の評価値が 0 かそれ以外かさえ分かればよい。
こんな単純な話はない。


159 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:49:42 ]
>>158
でも, bool値以外のデータだったら、

if (a == 1) を

if (a) にしたら、動作が違ってくるだろ?



160 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:50:14 ]
a == 1 の比較だろ

a = 0 or 1 ならともかく
a = 2 のときは?
a = 100 のときは?

161 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:50:16 ]
>>158
その場合、if(a) は発端>>115  の if (a==1) と同一ではない。
発端の if (a==1) はあなたの「単純な話」にあてはまらない。
元の話わかってる?

162 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:52:26 ]
aには、0か1が入ってるとか、
1,2,3のどれかが入ってるとか、なんら前提が示されてないのに、

if (a == 1) を if(a) と書き直したらダメだろ。



163 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:53:39 ]
凡庸なプログラマってこうした思い込みしてコーディングしてんのかな…

164 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:54:14 ]
なんかトンデモねぇ馬鹿が一匹迷い込んでないか
俺コイツと一緒に仕事すんのはマジで嫌
想定外の修正されてぶち壊されそう

165 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:54:56 ]
初心者の俺にはよく分からんのだが
aの型について触れずに論議が進められるのは何故なの?

166 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:55:46 ]
>165
何度か指摘してるんだが何故かまともに取り合ってくれないんだ(´・ω・`)

167 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:56:02 ]
aには、0か1が入ってるとか、
1,2,3のどれかが入ってるとか、なんら前提が示されてないのに、

if(a)をif (a == 1) と書き直したらダメだろ。

168 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:57:42 ]
>>167
>if(a)をif (a == 1) と書き直したらダメだろ。

それは誰もしてない。

169 名前:仕様書無しさん mailto:sage [2007/05/13(日) 20:59:43 ]
>>165
少なくともCにおいては、if()の中身は式であって、その型は無関係だから。

170 名前:仕様書無しさん mailto:sage [2007/05/13(日) 21:01:13 ]
>165
>166

>139


171 名前:仕様書無しさん mailto:sage [2007/05/13(日) 21:02:10 ]
>>157
>せめて a == True とするのが、他人が読む時も精神衛生的にいいんジャマイカ?

bool値のある言語でそれをやったら、ちょっとヘタクソっぽい。

Cだと、
#define TRUE 0
#define FALSE -1
とか、ありえるので、わからなくもない。



172 名前:仕様書無しさん mailto:sage [2007/05/13(日) 21:04:05 ]
キモイとか言える次元かよw
感覚上身についているかどうかのレベルの問題じゃね?
(センスというにはあまりに次元が低すぎる)
#include <stdio.h>
char* a;

int main(){
if (!a){
printf("a");
}
}
とかどうすんだよ。aが初期化されて無い判定は。
まさかbool型とか、コンパイラがうまくやってくれるからとか言っちゃって0で、==するのか?www
ショッペーーー




173 名前:仕様書無しさん [2007/05/13(日) 21:05:31 ]
今日はとくに変だな
このスレw

174 名前:仕様書無しさん mailto:sage [2007/05/13(日) 21:05:35 ]
この人なんで火病ってんの?






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

前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