- 1 名前:仕様書無しさん mailto:sage [2007/04/02(月) 12:45:06 ]
- この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。 プログラマを悩ませるソースコード。 をつらつらと綴っていって頂戴。 ちなみにここは質問スレじゃないので 技術的な質問がしたいならム板 pc11.2ch.net/tech/ に逝って。 前スレ この会社辞めようと思ったソースコード#15 pc11.2ch.net/test/read.cgi/prog/1167117526/
- 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 と書かれてないか調べたか? w
- 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 とするのが、他人が読む時も精神衛生的にいいんジャマイカ?
|

|