- 1 名前:仕様書無しさん mailto:sage [2007/07/06(金) 14:42:11 ]
- この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。 プログラマを悩ませるソースコード。 をつらつらと綴っていって頂戴。 ちなみにここは質問スレじゃないので 技術的な質問がしたいならム板 pc11.2ch.net/tech/ に逝って。 前スレ この会社辞めようと思ったソースコード#16 pc11.2ch.net/test/read.cgi/prog/1175485506/
- 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 ]
- ソースが貼られず自称上級者の醜い言い争いばっかりじゃねーか
もっとトンデモソースで俺を癒してくれよ
|

|