1 名前:仕様書無しさん mailto:sage [2007/07/06(金) 14:42:11 ] この会社辞めようと思ったソースコード。 プログラマとして幻滅するソースコード。 プログラマを悩ませるソースコード。 をつらつらと綴っていって頂戴。 ちなみにここは質問スレじゃないので 技術的な質問がしたいならム板 pc11.2ch.net/tech/ に逝って。 前スレ この会社辞めようと思ったソースコード#16 pc11.2ch.net/test/read.cgi/prog/1175485506/
201 名前:仕様書無しさん mailto:sage [2007/07/12(木) 15:53:24 ] >>195 見よう見まねで内部結合しようとしたら、なんかいっぱい返ってきたから チェックするようにしました、みたいな。 ヴビ厨が得意。
202 名前:仕様書無しさん mailto:sage [2007/07/12(木) 16:19:41 ] データベースを使ったデータ操作関連プログラムは、テーブルの設計がしっかり していれば糞ソースになりにくい。
203 名前:仕様書無しさん mailto:sage [2007/07/12(木) 16:32:42 ] いや、なるでしょ。 テーブルの設計と、プログラマが書くコードは別問題。
204 名前:仕様書無しさん mailto:sage [2007/07/12(木) 16:33:09 ] >>202 ダメな奴は、正規化すればするほど >>201 みたいなことに陥りやすい件。
205 名前:仕様書無しさん mailto:sage [2007/07/12(木) 16:41:12 ] テーブル設計がしっかりとしたものになるかどうかは、 6割の努力と4割の運任せだよって、かあさんが言ってた。
206 名前:仕様書無しさん mailto:sage [2007/07/12(木) 16:51:42 ] >>205 それはブイヤベースの間違いじゃないかい?
207 名前:仕様書無しさん mailto:sage [2007/07/12(木) 17:05:48 ] 運任せってのはわかるな。 初期設計の時は見落としていた活用の道が出てきて、転用しようとしたら設計が悪くて、再構築になることがある。 再構築しなくてよいテータベースがあると、その設計に感嘆する。 センスの差なのかもしれんね。
208 名前:仕様書無しさん mailto:sage [2007/07/12(木) 17:05:59 ] 結局、最前線に配置されている兵隊が駄目だと、どんなに すばらしい作戦も失敗すると。
209 名前:仕様書無しさん mailto:sage [2007/07/12(木) 17:07:35 ] >>207 >再構築しなくてよいテータベースがあると、その設計に感嘆する。 ER図がぱっと頭の中に浮かぶんだな。
210 名前:仕様書無しさん mailto:sage [2007/07/12(木) 17:22:05 ] >>207 発展型の転用と、思いつきの転用の差だと思う。 ユーザーがぶれてないだけで、設計の良し悪しはあまり関係ない気がする。
211 名前:仕様書無しさん mailto:sage [2007/07/12(木) 18:45:01 ] テータベースに萌えた
212 名前:仕様書無しさん mailto:sage [2007/07/12(木) 21:47:11 ] >再構築しなくてよいテータベースがあると、その設計に感嘆する。 本来はそうなるように最初から設計しておくものだが・・・。 Excelしか触ったことなかったり、Accessが256以上のカラムが使えないから困るとか 言う人には夢の話なのかもしれんが。
213 名前:仕様書無しさん [2007/07/12(木) 22:29:53 ] >>212 1レコード212のカラムの設計するほうが難しいと思うんだがw でも・・・あるんだよなぁ・・・・orz 超汎用テーブルとかだれが思いつくのさ
214 名前:仕様書無しさん mailto:sage [2007/07/12(木) 22:50:36 ] >>213 みかか村で過去に14テーブルぐらいそうゆうのみたなw
215 名前:仕様書無しさん mailto:sage [2007/07/12(木) 22:59:21 ] こんなDBもあるんだからびっくりだ 名前, 種類, データ1, データ2, ・・・・, データ99, 予備1, 予備2,・・・予備99
216 名前:仕様書無しさん mailto:sage [2007/07/12(木) 23:04:34 ] そんな用途不明のフィールド量産してどうするんだwww 暗号か?www
217 名前:仕様書無しさん mailto:sage [2007/07/12(木) 23:07:11 ] データベースの設計は基本的に「1 fact 1 place」を頭に入れておけば そう難しいモノでもないのだが、どーもCOBOLerとかAccessやExcelしか 知らん人は不思議なテーブル設計をするよな。 なんでそんなに面倒で難しい方向に走りたがるのかよーわからん。
218 名前:仕様書無しさん mailto:sage [2007/07/12(木) 23:08:37 ] >215 予備の無意味さに吹いた
219 名前:仕様書無しさん mailto:sage [2007/07/12(木) 23:14:10 ] C++で、構造体にメンバ変数を追加する必要があって、 その構造体を扱っているコードをみていたら、わざわざ メンバ変数を一個ずつコピーしてる関数が。 HogeCopy(Hoge* dst, Hoge* src) { dst->a = src->a; dst->b = src->b; dst->c = src->c; : : } これ、*dst = *src; でいいだろと思ったけど、念のためにコードを確認してみると、 メンバ変数は31個なのに、コピーしてるのは29個だけ。 ただのバグだと思うけど、*dst = *src;に置き換えて全部コピーするようにして、なにか 影響があるといやなので、(影響がないか調べるのもめんどうなので)上のコードに、 追加したメンバ変数を、コピーするコードを追加しておきました。 (こうやってどんどんダメなコードになっていくんだろうなぁ)
220 名前:仕様書無しさん mailto:sage [2007/07/12(木) 23:17:01 ] >>217 COBOLは、レコード長固定のファイルに対して 1レコード読む→レコードを桁で区切る→処理 をすることに特化した言語だからな 予備カラムなんて考え方もそれに由来するんだろう コボラはその考え方でしか理解出来ないからDBにまでそれを持ち込む
221 名前:仕様書無しさん mailto:sage [2007/07/12(木) 23:18:36 ] ポインタのコピーは、ポインタが上書きされるだけでは? それを行うならmemcpy(だったっけ)を使うのでは?
222 名前:仕様書無しさん mailto:sage [2007/07/12(木) 23:20:06 ] >>221 メンバ変数にCStringがあるから、それやると、逆に大惨事に。
223 名前:仕様書無しさん mailto:sage [2007/07/12(木) 23:36:04 ] >>221 >219 のどの辺がポインタのコピーなのかkwsk
224 名前:仕様書無しさん mailto:sage [2007/07/12(木) 23:52:26 ] src->aのメンバ変数aが何の型か 解からないけど実はポインタ型とか 勝手にいい方に解釈してみるテスト
225 名前:仕様書無しさん mailto:sage [2007/07/13(金) 00:29:36 ] >>219 数にもよるが俺ならこう書くかもしれない。 HogeCopy(Hoge * dst, Hoge * src) { Hoge * dstOld = dst; // とりあえず全部コピー *dst = *src; // 以下2つはコピーしたくない dst->x = dstOld->x; dst->y = dstOld->y; }
226 名前:仕様書無しさん mailto:sage [2007/07/13(金) 00:31:55 ] 強い保障されたswap( )実装しろよ
227 名前:215 mailto:sage [2007/07/13(金) 07:19:23 ] 実はこれある大手銀行のデータベースなんだ・・・ 二度とそこには預金しなくなったYO
228 名前:仕様書無しさん [2007/07/13(金) 08:34:20 ] >>215 前、銀行子会社のソフト会社に勤めてた。 親絡みの仕事してる事業部と、親関係ない自前パッケージ作ってる事業部があって 関係ない方にいたんだけど、親絡みの方から移動してくるコボラはそんな感じだった 内部コード、ソート順、名称、種別、区分、大分類、中分類、少分類、ステータス1、ステータス2… 内部コードとソート順にキーをはってるくせに 実際は種別でテーブル分けろよみたいな動きを切替えて 区分でみてるデータと大中小分類でみてるデータがあって 有り得ないデータの制御はアプリで規制するの 正規化とかはなにそれ?って感じなの だって単項目マスターに全マスターほおりこむから 高望みしないからせめてソート順のキーをはずしてくれ… 意味のない内部連番キーにしてるんだから十分じゃないか
229 名前:仕様書無しさん mailto:sage [2007/07/13(金) 10:03:31 ] HogeCopy(Hoge * dst, Hoge * src) { Hoge * dstOld = dst; // とりあえず全部コピー *dst = *src; // 以下2つはコピーしたくない dst->x = dstOld->x; dst->y = dstOld->y; } *dst = *src した時点で、dstOldのさしている先も更新されているって…
230 名前:仕様書無しさん mailto:sage [2007/07/13(金) 12:51:28 ] >>225 おまえ C 使えないだろ。
231 名前:仕様書無しさん mailto:sage [2007/07/13(金) 14:11:00 ] >>224 メンバ変数aがポインタ型だったとして、 dst->a = src->a と *dst = *src がどう違うと言うんだ? >>225 ワロタw
232 名前:仕様書無しさん mailto:sage [2007/07/13(金) 14:51:23 ] >>225 馬鹿!!!
233 名前:232 mailto:sage [2007/07/13(金) 14:52:49 ] およよ。既に突っ込まれ済みですかw
234 名前:仕様書無しさん mailto:sage [2007/07/13(金) 15:28:05 ] >>225 の人気に嫉妬
235 名前:仕様書無しさん mailto:sage [2007/07/13(金) 17:43:53 ] >書くかもしれない ってとこからして、間違った時のことを想定してるんじゃないの?
236 名前:仕様書無しさん mailto:sage [2007/07/13(金) 17:59:37 ] >>225 と寿司九位タイ
237 名前:仕様書無しさん mailto:sage [2007/07/13(金) 18:17:50 ] >>>Hoge * dstOld = dst; -- <<<Hoge dstOld = *dst;
238 名前:仕様書無しさん [2007/07/13(金) 18:30:36 ] 女なら普通に3本まではつっこめる。 男でも3本くらいはつっこめる。
239 名前:仕様書無しさん mailto:sage [2007/07/13(金) 18:55:29 ] >>225 イジメないから出ておいで。
240 名前:仕様書無しさん mailto:sage [2007/07/13(金) 20:18:13 ] ・・・いぢめる?
241 名前:仕様書無しさん mailto:sage [2007/07/13(金) 20:58:31 ] 当然だろ
242 名前:仕様書無しさん mailto:sage [2007/07/13(金) 20:59:50 ] >>237 そのpatchはコンパイルが通らなくなる可能性が・・・
243 名前:仕様書無しさん mailto:sage [2007/07/13(金) 21:38:16 ] HogeCopy(Hoge * dst, Hoge * src) { Hoge dstOld = *src; *dst = *src; dst->x = dstOld.x; dst->y = dstOld.y; } か? >>231 メンバにポインタや参照があるとシャローコピーになってしまう恐れがあるって事じゃ?
244 名前:仕様書無しさん mailto:sage [2007/07/13(金) 22:59:08 ] ホイコーローコピーってどんなコピーだっけ?
245 名前:仕様書無しさん mailto:sage [2007/07/14(土) 00:26:54 ] つーか、SQLだとテストいらなくて、同処理をするjavaだとテスト必要って ....なにが違うの?
246 名前:仕様書無しさん mailto:sage [2007/07/14(土) 00:31:29 ] >>245 SQLはプログラミング言語ではなく、 javaはプログラミング言語だからです。
247 名前:仕様書無しさん mailto:sage [2007/07/14(土) 00:40:56 ] あまり複雑なストアドは書かんでほしい。 デバッガはもちろん、printデバッグもできんじゃないか。
248 名前:仕様書無しさん mailto:sage [2007/07/14(土) 07:44:07 ] SQLもプログラム言語というか普通に命令セットの集合だと思うが。 つか、SQLと同処理をするJavaはそりゃテスト要るだろ。 SELECT WKDATE,DAYNAME(WKDATE),COUNT(NUM1).AVG(NUM1) FROM HOGE WHERE YEAR(WKDATE) = 2006 GROUP BY WKDATE ORDER BY WKDATE ; SQLだと1行(?)ですむ処理がjavaだと結構な行数(?)になるしな。
249 名前:仕様書無しさん mailto:sage [2007/07/14(土) 11:31:43 ] >>248 SQLはプログラム言語じゃないよ。 PL/SQLはプログラム言語だよ。
250 名前:仕様書無しさん mailto:sage [2007/07/14(土) 11:47:15 ] >>249 「〜じゃない」は言えるけど、「〜だ」が言えないタイプの奴だなw 脊髄反射で否定するのは得意。 まあ俺も SQL はプログラミング言語に分類するより、データベースに特化した クエリ言語に分類するのが適当だと思うけれども。
251 名前:仕様書無しさん mailto:sage [2007/07/14(土) 11:57:30 ] SQLは問い合わせ言語であって、プログラム言語じゃないよ。
252 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:00:48 ] マシンに明確な指示を与えるための規則の集合という意味では プログラミング言語と呼んでも間違いではないと思うんだが。 クエリ言語という分類があるとすれば、集合的には、プログラミング言語とクエリ言語の積といったところか。 HTMLはプログラミング言語か―というような議論と同質だな。
253 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:01:03 ] >>250 アホかw 「俺も〜が適当だと思う」って、お前の意見なんか聞いちゃいねーよw SQLのことをよく知らないの丸わかりだな
254 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:03:38 ] >>252 htmlをプログラミング言語なんて思ってる奴なんか、何も知らない初心者だけだろう。 テキストをマークアップするだけの作業のどこがプログラムなんだ? 本に蛍光ペンや赤ペンで線引いたりするのと本質的には同じ作業だろうが。 つまりお前は何も知らない初心者と言うことだ。
255 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:09:17 ] >>254 様々なプラットフォームのブラウザに同一の表示結果を与えるための マークアップは、プログラミングと言っていいと思う。
256 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:10:26 ] 実際、たとえばOracleのcaseを駆使したSQLなんかはプログラムと言っても差し支えはないだろうが もともとそういうのはクエリを呼び出した側がやるべき処理ではあるんだよな。 SQLがどんどん高性能化していってるせいで境界線がよくわからなくなってきてる。
257 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:12:23 ] >>255 いいわけがない。 そもそも、htmlを読んでどう表示するかはブラウザ側の実装次第。 つまり「様々なプラットフォームのブラウザに同一の表示結果を与えるため」に必要なのは ブラウザ開発者側の努力だよ。 だからAcid2なんてものがあるんだろ。
258 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:15:20 ] Acidテストも知らない新人がなに息巻いているんだ? 休日使って勉強でもしとけや
259 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:17:09 ] つかドラゴンブックにHTMLはプログラミング言語だって 書いてあるけどな
260 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:21:32 ] クエリ言語っていうかSQLの一説は構造化照会言語なんだから そのまんまな話に思えるが。 ストアドなSQLは立派にプログラム言語してると思う。
261 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:23:17 ] つか、字句を拾って構文を読み取る者全般を プログラミング言語って解釈だぞ。
262 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:23:54 ] あなた方の発言はこちら向きです pc11.2ch.net/test/read.cgi/prog/1179420838/
263 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:25:59 ] >>261 じゃあ、面接か何かで 「プログラム言語が得意です!とくにHTMLです!」 って言ってみてよ。 俺にはできない。 それで笑われたら「字句を拾って…」って同じ反論してみてよ。 俺にはできない。
264 名前:261 mailto:sage [2007/07/14(土) 12:35:01 ] 俺、今はもう作ってないけど 組込み向けのブラウザ作ってた時期があった(都合により退社) んで今の会社の面接で得意な言語はなんですか?って聞かれて 最近ではHTMLですね。バリバリかけますって言ったよ。 採用担当者とエンジニアは笑ってたな。 レンダリングエンジンを作ってたのでHTMLは得意なんですよねって 言い直した。 まぁ今その会社で7年目だが文句あるか?
265 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:38:49 ] >>264 >最近ではHTMLですね。バリバリかけます じゃなくて >レンダリングエンジンを作ってた ここが重要だったんだろ? 日本語が不自由だって自覚を持った方がいいよ。
266 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:39:47 ] >>264 結局>>257 が書いてるのと意味合い的には何も変わっていないわけだが
267 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:51:28 ] バイナリだって言語と呼べるのかもな。 CPUが解釈できる命令のことを機械語って言ったりするし。 >>257 それはブラウザ以外にも言えることだと思う。 そもそも、機械語を読んでどう処理するかはプロセッサの実装次第。 つまり「過去のプロセッサ含め、さまざまなプロセッサで同一の処理結果を保証するため」に必要なのは プロセッサ開発者側の努力だよ。 だから・・・なんてものがあるんだろ。(←思いつかなかったw)
268 名前:仕様書無しさん mailto:sage [2007/07/14(土) 12:55:39 ] >>267 本物の馬鹿がやってきた
269 名前:仕様書無しさん mailto:sage [2007/07/14(土) 13:01:21 ] >>267 スレタイも読めないんじゃ、そんなバカな書き込みもむべなるかな。
270 名前:仕様書無しさん mailto:sage [2007/07/14(土) 13:03:04 ] 自分の固定観念で追いつけなくなるとすぐ馬鹿呼ばわりする プログラマってのはこういうのが多いなw プログラミング言語でも何でも出来合いのものを組み合わせて作るのはうまいが 自分から新しいものは作り出せない香具師が多い理由がわかる気がするわ
271 名前:仕様書無しさん mailto:sage [2007/07/14(土) 13:04:59 ] 今までさんざんスレ違いな会話していて、俺がきたら「スレタイ嫁」かよw まあいいや、続きをドゾー。おじゃましますた^^
272 名前:仕様書無しさん mailto:sage [2007/07/14(土) 13:06:54 ] >>271 だって、プログラミング言語の話なのに、CPU持ち出すんだもん。 そりゃ違うじゃん。
273 名前:仕様書無しさん mailto:sage [2007/07/14(土) 13:10:17 ] いくらなんでも「HTMLはプログラミング言語じゃない」から>>267 の話は飛躍しすぎ 揚げ足取りのコピペって時点でもどうかと思うが >>257 の書き込み自体はもっともじゃないのか
274 名前:仕様書無しさん mailto:sage [2007/07/14(土) 13:16:03 ] アバヨいっといてまた書き込むのもアレだが、俺は端的に言語の例を挙げただけなんだがな。 プログラミング言語の範疇だとか定義だとか、これほど曖昧な物はない。 データの処理のしかたを規定するものなら、例外なくプログラミング言語だと、俺は思うんだが。 SQL然り、HTML然り、機械語然り。どれも何かを処理する手順書という点では共通。
275 名前:仕様書無しさん mailto:sage [2007/07/14(土) 13:28:34 ] 定数が1ずつずれちゃってたときなんか修正がいやだったなあ・・・
276 名前:仕様書無しさん mailto:sage [2007/07/14(土) 14:35:46 ] いや、>>245 はSQLだろうがJAVA組もうがテストしろと 言いたいだけではない
277 名前:仕様書無しさん mailto:sage [2007/07/14(土) 14:49:05 ] この会社辞めようと思った腐れ上司の一言0x1E pc11.2ch.net/test/read.cgi/prog/1179420838/ もし日本語が読めるのであれば、どうぞこちらへ
278 名前:仕様書無しさん mailto:sage [2007/07/14(土) 15:31:05 ] >>263 君の話は飛躍しすぎ 厳密に言えばhtmlもプログラミング言語の範疇であろうが、普段われわれがプログラミング言語として考えるところのCやJavaなどから見ればプログラミング言語らしくないというだけの話 ここで面接官がいうPLにhtmlが含まれないであろう事は当たり前である。でもそれはhtmlがPLに含まれないことを示すものではない
279 名前:仕様書無しさん mailto:sage [2007/07/14(土) 15:46:28 ] 君の文は読み悪すぎ 厳密に言えば句読点の使い方もあやしいし そもそも適度な改行が入っていないのがおかしいという話
280 名前:仕様書無しさん mailto:sage [2007/07/14(土) 15:55:49 ] Q. SQLってプログラミング言語なの? A. 全然違うよ。全く関係ないよ。
281 名前:仕様書無しさん mailto:sage [2007/07/14(土) 16:38:45 ] ttp://ja.wikipedia.org/wiki/SQL >SQLは「宣言型プログラミング言語」と分類される
282 名前:仕様書無しさん mailto:sage [2007/07/14(土) 16:46:23 ] >>278 PLってなに?甲子園の常連校?
283 名前:仕様書無しさん mailto:sage [2007/07/14(土) 16:51:06 ] この会社辞めようと思った糞議論。
284 名前:仕様書無しさん mailto:sage [2007/07/14(土) 17:11:46 ] >>279 この、改行厨めがっ >>282 常連ってほどでもないだろ、最近は 昔は強かったよねぇ
285 名前:仕様書無しさん mailto:sage [2007/07/14(土) 17:17:10 ] >>281 うぃきをソースにスンナよ糟が
286 名前:仕様書無しさん mailto:sage [2007/07/14(土) 17:18:15 ] >>285 うるさい、お前はもっとかす
287 名前:仕様書無しさん mailto:sage [2007/07/14(土) 17:19:36 ] 「言語」と「プログラミング言語」は分けて考えようぜ。
288 名前:仕様書無しさん mailto:sage [2007/07/14(土) 17:21:46 ] くっだらねぇ そんな本質的でないところにこだわるなよ 議論するなら、定義を持ち出してきて白黒決着つく形で議論しろよ これだから糞文系プログラマーは面白い
289 名前:仕様書無しさん mailto:sage [2007/07/14(土) 17:26:37 ] 公理も定義もない状態で議論しても主観によるところが大きいから、お互いの論理に矛盾無しに反立しうる。 つまりはお互い平行線のまま水掛け論になりうる。そんな無駄な議論の好むのがえてして文系。あいつらの考えることはよくわからん。
290 名前:仕様書無しさん mailto:sage [2007/07/14(土) 17:29:21 ] どうでもいいけどオナニー文章書いて 悦にはいるのはやめてけろ
291 名前:仕様書無しさん mailto:sage [2007/07/14(土) 17:38:25 ] この会社辞めようと思った腐れ上司の一言0x1E pc11.2ch.net/test/read.cgi/prog/1179420838/ もし日本語が読めるのであれば、どうぞこちらへ
292 名前:仕様書無しさん mailto:sage [2007/07/14(土) 20:47:46 ] 俺、今からメロン食う みんな応援ヨロシクな
293 名前:仕様書無しさん mailto:sage [2007/07/14(土) 20:51:21 ] 馬鹿野郎 コロッケだろ 台風なんだから
294 名前:仕様書無しさん mailto:sage [2007/07/14(土) 20:53:17 ] メロン半分食い終わった
295 名前:仕様書無しさん mailto:sage [2007/07/14(土) 20:54:10 ] 俺、今からスイカ食う みんな応援ヨロシクな
296 名前:仕様書無しさん mailto:sage [2007/07/14(土) 20:55:20 ] Wikipediaをウィキと呼ぶプログラマが書いたソース。
297 名前:仕様書無しさん mailto:sage [2007/07/14(土) 21:14:34 ] >>296 おお、新しい。 メールの内容の英数字が全角半角混在のやつが 書いたソースなみにいやだなあ。
298 名前:仕様書無しさん mailto:sage [2007/07/14(土) 22:15:41 ] 10年単位の長きに渡ってつぎ足しつぎ足しして熟成されたソース
299 名前:仕様書無しさん mailto:sage [2007/07/14(土) 22:35:21 ] >298 カオスっぷりが頭に浮かぶなw
300 名前:仕様書無しさん mailto:sage [2007/07/14(土) 22:59:47 ] プログラミング言語の定義(誰が言ったかは忘れた) 『逐次実行・条件分岐・繰り返しの構造を持つ言語』 …コレがホントかどうかも忘れた。
301 名前:仕様書無しさん mailto:sage [2007/07/14(土) 23:57:06 ] ダイクストラの構造化定理が似てるが、 プログラム→順次・反復・分岐で書ける という感じの命題だから、論理学的には「逆」だな。
302 名前:仕様書無しさん mailto:sage [2007/07/15(日) 01:05:21 ] じゃあやっぱりSQLもHTMLも含まれないでFAなんじゃん
303 名前:仕様書無しさん [2007/07/15(日) 01:41:50 ] Programming with Stored Query Language.
304 名前:仕様書無しさん mailto:sage [2007/07/15(日) 01:44:06 ] プログラミング言語かどうかはともかく、テストはしなくちゃな。 JavaやSQLの記述はもちろん、iniファイルの内容を書き換えた場合ですら。 そういえば設定内容を書き換えるのは開発じゃないと思ってる輩がいたっけ。
305 名前:仕様書無しさん mailto:sage [2007/07/15(日) 01:56:50 ] >>304 設定ファイルを書き換えることさえ開発だって言ってたら 運用の人まで開発者になっちゃうじゃまいか
306 名前:仕様書無しさん mailto:sage [2007/07/15(日) 02:00:56 ] その理屈だと秀丸の背景色を変えることすらも開発さ
307 名前:仕様書無しさん [2007/07/15(日) 02:07:38 ] ソフトを完成しさせて人手に渡るところまでは開発だろ Iniファイルだって完成前までの初期設定変更とかは開発だと思うけど そっからさきは違うだろうね
308 名前:仕様書無しさん [2007/07/15(日) 02:13:49 ] JAVAなんてアホでも出来るように作られてる言語なんだし そんなに熱く語るほどの事かね?
309 名前:仕様書無しさん mailto:sage [2007/07/15(日) 02:18:57 ] >>308 そのJAVAをこれから始めてみようと思う俺が来ましたYO!
310 名前:仕様書無しさん mailto:sage [2007/07/15(日) 04:16:26 ] // このURLへは今後接続しないことを示す public boolean discnct(String cnurl) { try{ URL url = new URL(cnurl); HttpURLConnection urlconn = (HttpURLConnection)url.openConnection(); urlconn.disconnect(); return true ; } catch(Exception e){ return false ; } }
311 名前:仕様書無しさん mailto:sage [2007/07/15(日) 08:52:46 ] >>310 何をしたいのかがサッパリだ
312 名前:仕様書無しさん mailto:sage [2007/07/15(日) 09:22:16 ] discnct という名前からして、いい感じに腐っている。 いまだに母音を省略する命名ルールが生きのこっているなんてガラパゴスか?
313 名前:仕様書無しさん [2007/07/15(日) 10:34:14 ] コメントが全部、日本語をローマ字表記。 koreha, komento desu. kokode***suru [debagu yy/mm/dd]
314 名前:仕様書無しさん [2007/07/15(日) 10:38:12 ] IME壊れたんだろう
315 名前:仕様書無しさん mailto:sage [2007/07/15(日) 11:46:40 ] > [debagu yy/mm/dd] にしても、これはちょっと。debug でいいやん。
316 名前:仕様書無しさん mailto:sage [2007/07/15(日) 11:59:26 ] せめてdebaggu
317 名前:仕様書無しさん [2007/07/15(日) 12:00:17 ] テーブル名とかカラム名がローマ字ならよく見る TORIHIKITBLとかHURIKOMIKINGAKU CHAR(10)みたいな
318 名前:仕様書無しさん mailto:sage [2007/07/15(日) 12:03:25 ] それならいいけど 未だに母音抜いてTRHKとかHRKMKNGKとかの方がよく見る気がする ヘブライ語かよ
319 名前:仕様書無しさん mailto:sage [2007/07/15(日) 12:36:35 ] discnctについては、母音省略もアレだが、dis-を「〜しない」だと思ってる のがイタイな。
320 名前:仕様書無しさん mailto:sage [2007/07/15(日) 12:37:52 ] >>318 KWSKかよ
321 名前:仕様書無しさん mailto:sage [2007/07/15(日) 12:38:40 ] >>313 文字コード関係じゃね いちおう・・・
322 名前:仕様書無しさん mailto:sage [2007/07/15(日) 12:43:36 ] >>JAVAなんてアホでも出来るように作られてる言語なんだし アホにはむり、コボラならOKの言語
323 名前:仕様書無しさん mailto:sage [2007/07/15(日) 13:16:14 ] >>319 disconnectは普通に「切断」という意味だが・・・?
324 名前:仕様書無しさん mailto:sage [2007/07/15(日) 13:18:24 ] >>323 そうだよ。 すでにつながっているものを「切断」するんであって、 最初からつながないという意味じゃない。
325 名前:仕様書無しさん mailto:sage [2007/07/15(日) 13:36:30 ] 最初から繋がらないなんてどこに書いてあるんだ 最初から繋げない じゃないのか
326 名前:仕様書無しさん mailto:sage [2007/07/15(日) 13:49:23 ] メソッド名としては、testConnectibityとかの方が助かると思う。
327 名前:仕様書無しさん [2007/07/15(日) 13:54:18 ] >>324 disableは最初から出来ないと思うよ
328 名前:仕様書無しさん mailto:sage [2007/07/15(日) 13:56:19 ] disableは、可能であることを出来ないようにしておくことだね。
329 名前:仕様書無しさん mailto:sage [2007/07/15(日) 13:56:32 ] >>327 できる/できないで話すのもなんだが、 It disable you to ~~ とかで使うから、出来なくするってのが一般的じゃないの? unableが最初から出来ない方なわけで。 dictionary.goo.ne.jp/search.php?mode=0&MT=disable&kind=ej&IE=sjis&type=sleipnir&ej
330 名前:329 mailto:sage [2007/07/15(日) 13:57:03 ] あ、it disable -> it disablesです。ごめんね。
331 名前:仕様書無しさん mailto:sage [2007/07/15(日) 13:57:15 ] >>326 それだ!
332 名前:仕様書無しさん mailto:sage [2007/07/15(日) 13:57:17 ] >>327 最初から出来ないのは unable じゃ?
333 名前:仕様書無しさん [2007/07/15(日) 14:27:26 ] >>332 ああ、そうだね。 だけど、身体障害者には生まれつきもあるわけで、 本来出来るというのは、健康な人間なら本来出来るが、その人は障害のために最初からできないわけで、 つまり、構造的に接続できるようになってる物を、切断した状態にしておくのが切断であり、 さっきまで接続していたかどうかとか、時間的経過に関係なく切断状態にあるのが切断だと思うよ。>>324
334 名前:仕様書無しさん mailto:sage [2007/07/15(日) 14:28:29 ] 正直どうでもいい
335 名前:仕様書無しさん [2007/07/15(日) 14:30:47 ] >>334 名前と実際が食い違うのをいちいち関数仕様を読んで覚えたりソースコード追っかけたりするのは面倒だろ?
336 名前:仕様書無しさん mailto:sage [2007/07/15(日) 14:37:10 ] >>333 日本語と英語じゃ言語構造も単語の細かい意味も変わってくるので、 生半可に論じられないし、そもそもスレ違いだからEnglish板にでもいってらっしゃい。 そして、ここでdisconnectといっているのは、切断のことではなく、 「〜を切断する」ということです。他動詞ですね。
337 名前:仕様書無しさん mailto:sage [2007/07/15(日) 14:38:59 ] >>333 disconnect(切断する)じゃなく disconected (切断状態にある)ならいいんだろうな。 元のはdiscnctだからそこまで考えてないだろうけど。
338 名前:仕様書無しさん mailto:sage [2007/07/15(日) 14:40:10 ] distnctにするとぜんぜん違う意味になりますな。
339 名前:仕様書無しさん mailto:337 [2007/07/15(日) 14:40:59 ] ×disconected ○disconnected 細かい綴りの話してるときにtypoしちまったぜ orz
340 名前:仕様書無しさん mailto:sage [2007/07/15(日) 14:45:06 ] kiretemasu?
341 名前:仕様書無しさん mailto:sage [2007/07/15(日) 14:47:23 ] kiretenaissuyo
342 名前:仕様書無しさん mailto:sage [2007/07/15(日) 14:54:01 ] >>310 確認するけど、コメントと関数名とやってることの三つがバラバラというのが問題なんだよね? やってることは、与えられたURLに接続してみて、 接続できたら(例外が発生しなければ)trueを返し、例外が発生したらfalseを返す。
343 名前:仕様書無しさん mailto:sage [2007/07/15(日) 17:56:01 ] そもそもこんないらん議論を呼ぶ 変数名つけるのが問題
344 名前:仕様書無しさん mailto:sage [2007/07/15(日) 18:15:24 ] もう全部 func001(); func002(); でいいよ
345 名前:仕様書無しさん mailto:sage [2007/07/15(日) 18:23:57 ] >>344 いちばんスレにふさわしいやつだな。
346 名前:仕様書無しさん [2007/07/15(日) 18:31:26 ] ・・・ if (ret == false) { // 上記の処理が以上の場合、ファルスを返す。 return ret; }
347 名前:仕様書無しさん [2007/07/15(日) 18:33:59 ] if (ret==false) { return true; }
348 名前:仕様書無しさん [2007/07/15(日) 18:57:03 ] >>346 ,347 変数名の付け方に問題があるかもしれんが一概に悪いとは思わんよ。 以下のような場合もあるから bool ret = 何かの初期化メソッド(); if(ret == false) { // 初期化失敗 return false; } // ほかの処理 .. return true;
349 名前:仕様書無しさん [2007/07/15(日) 19:02:26 ] // (略) falseを返す。 のつもりを // (略) バルスを返す。 と書いていた奴。。。(読みはファルスじゃねぇし)
350 名前:仕様書無しさん mailto:sage [2007/07/15(日) 19:19:36 ] >>349 いや、あれだよと突っ込んでほしいのか?
351 名前:仕様書無しさん mailto:sage [2007/07/15(日) 20:54:06 ] >>349 自爆装置を仕込んでいるのか
352 名前:仕様書無しさん mailto:sage [2007/07/15(日) 20:55:06 ] >>349 コードを追記したら func(); // 目がぁ〜目がぁ〜 はお約束だな
353 名前:310 mailto:sage [2007/07/15(日) 21:44:15 ] 変な議論呼んだようですまん 貼った俺自身もこのメソッドが何をしたいのかよく分からなかったんだが、 呼び出し先メソッドが↓のレスなんで、 どうやら接続した後の切断処理をやってるつもりなのかなぁ、と考えてる
354 名前:310 mailto:sage [2007/07/15(日) 21:46:05 ] // 接続先のファイルサイズを取得 public long getFileSize(String cnurl) { boolean isCnct = cnct(cnurl) ; // ※接続テストをしているらしい if (!isCnct) { return -1; } // 接続可能ならtrue URL url; try { url = new URL(cnurl); HttpURLConnection urlconn; urlconn = (HttpURLConnection)url.openConnection(); long fullsize = 0; Map headers = urlconn.getHeaderFields(); String key = "Content-Length" ; String e = (headers.get(key)).toString(); e = e.substring(1,e.length()-1) ; fullsize = Long.parseLong(e) ; boolean isDisCnct = discnct(cnurl) ; // ※ここで310呼び出し if (!isDisCnct) { return -1 ; } if(fullsize < 0) return -1 ; else return fullsize ; } catch (IOException e1) { } return 0; }
355 名前:仕様書無しさん mailto:sage [2007/07/15(日) 22:08:18 ] なんというコード・・・
356 名前:仕様書無しさん mailto:sage [2007/07/15(日) 22:18:14 ] 何したいわけ?
357 名前:仕様書無しさん mailto:sage [2007/07/15(日) 22:27:07 ] cnct(対象URLに接続) ↓ getFileSize(ファイルサイズ取得) ↓ discnct(切断処理) ・・・がやりたかったのかな?
358 名前:仕様書無しさん mailto:sage [2007/07/15(日) 23:41:45 ] たった二十行程度のコードに 山のように突っ込みどころが・・・
359 名前:仕様書無しさん mailto:sage [2007/07/15(日) 23:55:07 ] >>310 のコメント // このURLへは今後接続しないことを示す が、 /** @return true 切断成功 false 失敗。このURLへは今後接続しない */ ならまぁよかった、ということなのかな。
360 名前:仕様書無しさん mailto:sage [2007/07/16(月) 00:49:09 ] つか成功したかどうかHashかなんかで管理して 余計なオブジェクト毎回接続するたびに作らないようにしね? 結果の保持が必要な場合は別途なにかクラス作って 突っ込んだ方がよくね?
361 名前:仕様書無しさん mailto:sage [2007/07/16(月) 01:01:17 ] あまりにひどいコードに絶望した…! でもそういうコードを以前見かけたことが あるのに気づいて更に絶望した!!
362 名前:仕様書無しさん mailto:sage [2007/07/16(月) 02:02:50 ] コメントにアスキーアートがはってあったぞ 「カイジ」のやつ
363 名前:仕様書無しさん mailto:sage [2007/07/16(月) 02:11:13 ] __,,,.... -――‐- .._ そりゃあ…かまわない /vV///∠∠彡:ニニヽ おまえらの疑問に答えること それ自体は容易い 簡単だ {/`ー-‐'''"´ 二二ニニl 例外時の処理はこれこれこう こういうメソッド行き /ー--‐''''"´ 二二ニニ| 返り値は…?パラメータは? ,/ー---‐'''"´__ ニニ二二| そんなコメントは いくらでもできる 〈べヽ l. ヾニ-‐'''ヾ> =r-、ニニ| },-o-> ヽPニニ ミ ス.|ニ二| しかし 今 オレが そんなコメントを 仮に付けたとしても . |二/,' ー― ' `に!|二ニト、 その真偽はどうする…? |/,' __ ヽ\ r<二ニ| \ | 「r---一ァ'! | \ニ| |`'ー-、__ 真偽など どうでもいいから | !` 三 ̄ l | \! | 読みたいと言うのか…? \ _.. -''" /| | _,.. ‐'''"`ー <´ / | | ククク……
364 名前:仕様書無しさん mailto:sage [2007/07/16(月) 02:23:55 ] >>363 一見まともなコメントにこんなの付いてたら嫌になるな。
365 名前:仕様書無しさん mailto:sage [2007/07/16(月) 05:00:11 ] 何を信じればいいのかw
366 名前:仕様書無しさん mailto:sage [2007/07/16(月) 05:06:11 ] >>363 プログラマやめろよ、つかやめてくれw
367 名前:仕様書無しさん [2007/07/16(月) 12:26:01 ] >>354 酷いな・・・8行で済むのにそんなにダラダラと・・・
368 名前:仕様書無しさん [2007/07/16(月) 13:11:02 ] >>363 お前とは仕事したくねぇよ・・
369 名前:仕様書無しさん mailto:sage [2007/07/16(月) 19:13:26 ] 納期は命より重いっ・・・!
370 名前:仕様書無しさん mailto:sage [2007/07/16(月) 20:32:25 ] ざわ・・・ ざわ・・・ ざわ・・・ 俺のバグですたorz
371 名前:仕様書無しさん mailto:sage [2007/07/17(火) 11:34:53 ] >>344 ローカル関数に関してはそのルールで書く人を知っている。 本人曰く、『どーせ俺しか読まねぇし』。
372 名前:仕様書無しさん mailto:sage [2007/07/17(火) 12:00:04 ] 3年後の「俺」には読めない罠。
373 名前:仕様書無しさん mailto:sage [2007/07/17(火) 12:44:05 ] あるあるwww
374 名前:仕様書無しさん mailto:sage [2007/07/17(火) 12:51:10 ] >>372 一年後に読める自信がないです。 覚えているうちに仕様変更とかあればいいんだが…
375 名前:仕様書無しさん mailto:sage [2007/07/17(火) 12:54:19 ] 違う仕事一個でも挟むと無理そうだ
376 名前:仕様書無しさん [2007/07/17(火) 13:05:25 ] >>372 三週間でも微妙
377 名前:仕様書無しさん mailto:sage [2007/07/17(火) 13:50:59 ] >>376 って言うか、たったの3連休で頭真っ白なんですが・・・ 先週までの俺が何をどうしたかったか、やっと何となく解ってきたw 今週の俺によると、先週までの俺は未熟者だったらしいww
378 名前:仕様書無しさん mailto:sage [2007/07/17(火) 16:11:58 ] 前日の日記をつけろ。毎日3行程でいいぞ。
379 名前:仕様書無しさん mailto:sage [2007/07/17(火) 19:13:28 ] 似たようなのもう出てそうだが、 Hoge1() { __asm { : : } } Hoge2() { __asm { : : } } 7000行ほどでコメント一切無し
380 名前:仕様書無しさん mailto:sage [2007/07/17(火) 19:32:47 ] Cool!w
381 名前:仕様書無しさん [2007/07/17(火) 19:45:12 ] >>379 昔は、マシンコードを定数の配列にして、関数ポインタで指してたり...
382 名前:仕様書無しさん mailto:sage [2007/07/17(火) 19:55:24 ] 定数ならまだいいが、技術的な制限から、コードを実行中に書き換えながら走らせることもあったな。 当分使われないコードセグメントはメモリから削除して、空いた空間に別のコードセグメントをロードしたりとかもしたし。 今となってはOSが担当する処理だが、その当時はそんなトリッキーなことを強いられたもんだ。
383 名前:仕様書無しさん mailto:sage [2007/07/17(火) 19:59:06 ] >>381 今でもやっていたりする....
384 名前:仕様書無しさん mailto:sage [2007/07/17(火) 20:04:59 ] 辞めさせられないようにする為の保険か?
385 名前:仕様書無しさん mailto:sage [2007/07/17(火) 21:29:30 ] メモリに入りきらない。
386 名前:仕様書無しさん mailto:sage [2007/07/17(火) 22:01:34 ] >>379 何か問題でも?
387 名前:仕様書無しさん mailto:sage [2007/07/18(水) 02:59:01 ] せめてコメントぐらいはつけて欲しいな
388 名前:仕様書無しさん mailto:sage [2007/07/18(水) 03:38:17 ] ソースコードが残ってなくてROMがあるんだけど、バグ対処してねとかいうのもあったな。 電算室(古っ!)に配属になって初めて書いたプログラムが自己変更コードだった。指導者乙。 そういうのがお行儀悪いことだと知るのはその10年後。
389 名前:仕様書無しさん mailto:sage [2007/07/18(水) 11:48:54 ] 10年は長いですね。
390 名前:仕様書無しさん mailto:sage [2007/07/18(水) 11:58:05 ] その部署の文化になってればそれが当たり前になっちゃうからなあ。
391 名前:仕様書無しさん mailto:sage [2007/07/18(水) 12:07:48 ] >>388 Intel 8x86 の時は、自己書き換えしても問題なかったから、メモリの制約とあいまって、 むしろあたりまえのプログラミング技法だったと思う。 80x86nになってキャッシュの概念が出てきて、メモリ上で自己書き換えしてもそのコードが 保持されないので問題が顕在化して、行儀が悪いということになった。
392 名前:仕様書無しさん mailto:sage [2007/07/18(水) 12:17:59 ] 行儀の問題はキャッシュとは関係ないっしょ
393 名前:391 mailto:sage [2007/07/18(水) 12:42:13 ] いや、この場合は関係あると思ってるんだが。 「キャッシュのために今までのノウハウが使えなくなった」が「行儀が悪い」にすりかえられた。 まあ今じゃ通用しないノウハウだし、「行儀が悪い」という言葉にはよっぽどのひねくれ者じゃなければ 逆らおうと思わないから、いいけどね。
394 名前:仕様書無しさん mailto:sage [2007/07/18(水) 12:48:29 ] すげーどうでもいいことだが。 x86の自己書き換えはパイプラインで問題になった。 キャッシュは最初から対策してる。
395 名前:仕様書無しさん mailto:sage [2007/07/18(水) 13:10:44 ] 自己書き替えはそれこそZ80の時代から「行儀が悪い」とされてましたが何か
396 名前:仕様書無しさん mailto:sage [2007/07/18(水) 15:13:54 ] 86 系で自己書き換えのときのキャッシュのフラッシュ(の欠落)が問題になったのは ハーバードアーキテクチャを初採用した Pentium から。 Mac では 68040 を積んだ Quadra から。 メモリ上の自己書き換えやコード生成は今でも結構使われていて別に問題のある技法でもない。 他により妥当な方法があるのに使いたがるのは問題ある行為かもしれないけど。
397 名前:仕様書無しさん mailto:sage [2007/07/18(水) 18:36:28 ] 今はメモリ使い回すメリットがほとんどないだろ メモリが小さかった時代には一つのひゅほうだったかもしれないが
398 名前:仕様書無しさん mailto:sage [2007/07/18(水) 19:09:25 ] ひゅほうでんせつ
399 名前:仕様書無しさん mailto:sage [2007/07/18(水) 21:19:00 ] 最近は データ領域:書き換え○ 実行× コード領域:書き換え× 実行○ みたいなことやるしな。
400 名前:仕様書無しさん mailto:sage [2007/07/19(木) 00:50:51 ] LISPだと自己書き換えってどういう感じに捉えられているんだろう?
401 名前:仕様書無しさん mailto:sage [2007/07/19(木) 01:00:31 ] すべてがS式なんだから、コード書き換えもアリとは思う。 けど、アルゴリズムとしてトリッキーに過ぎる感はあるな。 で、そういう感覚もっていることは、PGとしては大事。
402 名前:仕様書無しさん mailto:sage [2007/07/19(木) 01:11:23 ] longjumpで書き換えまくるのは普通だし 今でもそうゆうコード書いてる。 書くなって言われるけどなんでって思う
403 名前:仕様書無しさん mailto:sage [2007/07/19(木) 01:18:32 ] テクニックとしては面白いんだけどな。バッファオーバーラン攻撃の基本だし。 だからといって、製品の中に自己書き換えを組み込むのは勘弁。動的に書き換わるコードは追跡が難しすぎる。 動的コード生成にしても、機械語直接生成よりもスクリプトを吐く方が簡単に済みそう。
404 名前:仕様書無しさん mailto:sage [2007/07/19(木) 01:26:53 ] >>402 longjmpは自己書き換えしなくても作れるだろう。 ものすげー変なCPUまで把握してないが。
405 名前:仕様書無しさん [2007/07/19(木) 02:18:03 ] コード書き換えはマルチタスクで動かせないだろ
406 名前:仕様書無しさん mailto:sage [2007/07/19(木) 06:58:17 ] iTRON準拠のマルチタスク環境では動いていたというか動かしていたよ。
407 名前:仕様書無しさん mailto:sage [2007/07/19(木) 10:06:50 ] >>405 >コード書き換え と >マルチタスク に、まるで相関がない。
408 名前:仕様書無しさん mailto:sage [2007/07/19(木) 15:50:24 ] 自己書き換えはすたれてるけど、コード生成自体は ATL のサンクとか JIT コンパイラ的技法とかで必要に応じて使われているよね。
409 名前:仕様書無しさん mailto:sage [2007/07/19(木) 18:43:12 ] HaskellのコンパイラがDEP(データ実行防止)に引っかかった。 HaskellはHaskell自身で書かれているらしいから、どうもコード生成or自己書き換えしてるっぽい。 まだまだ現役だな。
410 名前:仕様書無しさん mailto:sage [2007/07/19(木) 19:24:16 ] >>409 >>408 >JIT コンパイラ的技法
411 名前:仕様書無しさん mailto:sage [2007/07/19(木) 22:37:16 ] ふとリコンフィギュラブルを思い出した。 ttp://www.atmarkit.co.jp/fsys/zunouhoudan/037zunou/intel_reconfig.html
412 名前:仕様書無しさん [2007/07/19(木) 23:57:15 ] ふとりプリキュアに見えた
413 名前:仕様書無しさん mailto:sage [2007/07/20(金) 00:28:50 ] >>412 病みすぎ
414 名前:仕様書無しさん mailto:sage [2007/07/20(金) 14:03:15 ] うーん。「自己変更コード」とか「自己書き換えコード」とか呼ばれているけど。 誰も「自己改竄コード」とは呼ばないな。
415 名前:仕様書無しさん mailto:sage [2007/07/20(金) 14:08:29 ] 普通は悪用目的の書き換えを指すんじゃまいか?改竄て。
416 名前:仕様書無しさん mailto:sage [2007/07/20(金) 23:08:58 ] 進化するコード
417 名前:仕様書無しさん mailto:sage [2007/07/20(金) 23:32:27 ] >>414-416 だんだんウィルスになってないか?
418 名前:仕様書無しさん mailto:sage [2007/07/21(土) 00:35:34 ] 暴走してウィルス化するなんていかにも漫画的なシチュエーションだ
419 名前:仕様書無しさん mailto:sage [2007/07/21(土) 01:11:30 ] ソースが貼られず自称上級者の醜い言い争いばっかりじゃねーか もっとトンデモソースで俺を癒してくれよ
420 名前:仕様書無しさん mailto:sage [2007/07/21(土) 03:18:33 ] switch( cValue ) { case 0: hogehoge( ); break; case 1: ・・・ case 255: hugahuga( ); break; default: ASSERT( False ); break; }
421 名前:仕様書無しさん mailto:sage [2007/07/21(土) 05:19:36 ] これでcValueがucharなら笑えるな
422 名前:仕様書無しさん mailto:sage [2007/07/21(土) 08:40:07 ] 関数名が func0()〜func255() じゃないってことは、コボラーじゃないのか....
423 名前:仕様書無しさん [2007/07/21(土) 09:22:02 ] while( flg == TRUE){ switch( hoge){ case 1: hage1(); hoge = 2; break; case 2: hage2(); hoge = 5; break; ・・・・・ case 25: hage25(); hoge = 10; break; } } こんな感じのswitch文が3つあってループの関数は1000行くらいある。 当然コメントも仕様書もマニュアルも何もない。あるのはソースだけ。 VC++1.52でコンパイルするのだが、改変して行数が増えるとコンパイラがコンパイルしてくれない。 case12 とかで hoge = 0 とかしてるのと、あっちこっちジャンプしながら 最終的にcase12にたどり着くので無限ループにはなっておらず、しょっちゅうトラブるが、大抵はなんとなく動いている。 だけど何で動いているのか分からない上に、改造しようにも手がつけられない。
424 名前:423 mailto:sage [2007/07/21(土) 09:24:38 ] あ、case 12ではhoge=0じゃなくてflg=FALSEだった。 ま、5年ほど前に面倒見させられたソースです。 その部分はごっそり書き直したけどね。
425 名前:仕様書無しさん [2007/07/21(土) 09:25:14 ] >>423 コードの意味がわからないってのはわかるが、 改変して行数が増えるとコンパイラが通らないって何? VC++1.52だと最大行数の制限があるの?
426 名前:仕様書無しさん mailto:sage [2007/07/21(土) 09:27:51 ] >>423 パーサーとかそんな感じで作るけど #ifdef DEB_PRINTしこんで コールグラフ作ればいいだろ。 んで文法作ればいい。おそらく処理しきれない 例外を見過ごして別の規則に遷移してるだけ じゃねーの?
427 名前:仕様書無しさん [2007/07/21(土) 09:28:44 ] 16ビットの制限とかあるんじゃね?
428 名前:仕様書無しさん mailto:sage [2007/07/21(土) 09:33:31 ] >423 hogeX()や各case値に意味あるんだろうから、そっから状態遷移図でも描いて見れば。
429 名前:仕様書無しさん mailto:sage [2007/07/21(土) 09:46:32 ] >>428 hogeX()や各case値に意味あるケースは稀じゃね?w
430 名前:仕様書無しさん mailto:sage [2007/07/21(土) 09:49:31 ] そうなのかw
431 名前:仕様書無しさん mailto:sage [2007/07/21(土) 09:55:27 ] caseでのコードではこんなのあったな@Java メンテしろと言われたけど、拒否したら左遷された 後任は自殺未遂したらしいけど・・・ うろ覚え int i = 20; label WHILE_LABEL; while(true) { switch (i) { case -3: i = func3(); break WHILE_LABEL; case -2: i = func3(); break WHILE_LABEL; case -1: i = func3(); break WHILE_LABEL; // 中略 case 50: i = func50(); break; default: i = func0(); } } 423のに似ているけど戻り値がリザルトコードになっていてマジでカオス
432 名前:仕様書無しさん mailto:sage [2007/07/21(土) 10:25:39 ] オブジェクト指向はおろか構造化すら怪しいグラマが必死に考え出したコードっぽいな。 こんなコードが随所にあるなら431は拒否して正解だ。
433 名前:431 mailto:sage [2007/07/21(土) 10:31:32 ] 随所どころか、辛うじて理解できた一部だよ 結局、ほとんど理解できなかった
434 名前:仕様書無しさん mailto:sage [2007/07/21(土) 10:42:34 ] 例はちょっと書けないけど最強にカオスなコードならあるぞ make yaccでmake+コード自動生成 生成コードmake yaccでmake+コード自動生成 ・・・ これが15回も繰り返されるカオスなコードあったよ
435 名前:仕様書無しさん mailto:sage [2007/07/21(土) 11:58:45 ] >>434 それは何のプログラムなの?
436 名前:423 mailto:sage [2007/07/21(土) 12:10:28 ] >>425 1関数のサイズの上限が決まってたと思う >>426 ,428 何年も前に終わった仕事について批判されてもなぁ・・・ 大体1関数が1000行って時点で何かおかしいんだから直して当然だろ
437 名前:仕様書無しさん mailto:sage [2007/07/21(土) 13:08:52 ] 関数ってどんなに多く書いても数百行で済まないか? 絶対処理分割できるぞ
438 名前:仕様書無しさん [2007/07/21(土) 14:23:36 ] >>436 関数の制限じゃなくてswitchの制限だと思うよ。
439 名前:仕様書無しさん mailto:sage [2007/07/21(土) 14:51:16 ] >>437 普通に手続き言語をやってくれば、どんなに長くても数百行なんだが、 大昔のPLCしか触ったことない奴だとだらだら書く事しか知らなくて、1000行とかいく事がある。
440 名前:仕様書無しさん mailto:sage [2007/07/21(土) 16:49:09 ] 実行される行数が50を超えたらそれは長すぎ。
441 名前:仕様書無しさん [2007/07/21(土) 16:52:49 ] >>440 実行される行数ってコンパイルした後の話か?
442 名前:仕様書無しさん mailto:sage [2007/07/21(土) 17:38:24 ] 実行後の行数なんて意識する必要ないだろ、50行超えたら読みにくいだけ
443 名前:仕様書無しさん mailto:sage [2007/07/21(土) 17:43:39 ] 別にコードなんて動けばどーでもいいんだよ オマイラだってどうせ適当に書いて後は野となれ山となれだろう? この会社辞めようと思ったソースコードなんてお高くとまってないで 正直になれよ プログラムなんてちゃんと動けばそれでいいんだよ
444 名前:仕様書無しさん mailto:sage [2007/07/21(土) 17:44:18 ] 煽り乙
445 名前:仕様書無しさん mailto:sage [2007/07/21(土) 17:54:01 ] >>443 中国産は長い・意味不明・動かないの3拍子揃ってるぜw
446 名前:仕様書無しさん [2007/07/21(土) 18:05:21 ] >>445 コメントが中国語なら尚可。