1 名前:仕様書無しさん mailto:sage [03/07/05 22:28] /*↓2ゲット禁止 */
675 名前:仕様書無しさん mailto:sage [04/03/21 09:30] >>672 fragってところにも食いついてもいいでつか? frag [fra] ━━ vt., n. 〔米俗〕 【軍】破砕性手榴弾(で嫌な上官を暗殺する). 出典:EXCEED英和辞典
676 名前:仕様書無しさん mailto:sage [04/03/21 18:41] >>675 そんな二重の暗号を解いた>>672 は凄ぇな。
677 名前:672 mailto:sage [04/03/21 20:27] いや、本人がインフルエンザから復帰するまでの4日間、 これ系の謎連発で殆ど解けなかった(−− ddrとかあるから、まさか?と思ったらdirectory data readだと本人は言ってたし、 mcpyとあったからまさか!?と思ったらmove copy pointer retry fragと本人が書いてくれた。 本人は、かなり格好いいネーミングセンスだと思ってたようで、そのまま頭の中まで インフルエンザで侵されて復帰しなければよかったのになーと思わされたひと時だったよ。
678 名前:仕様書無しさん mailto:sage [04/03/21 21:11] 人質みたいなコードだ
679 名前:仕様書無しさん mailto:sage [04/03/21 21:12] ローマ字大いに結構だと思う 画面遷移クラスにScreenFiberと名付けられるより…
680 名前:仕様書無しさん mailto:sage [04/03/21 21:25] 漏れはどうでもいい変数の名前にはあまりこだわらない。 強いて言えば後でエディタとかで検索する時に探しやすい名前をつける。
681 名前:仕様書無しさん mailto:sage [04/03/21 22:11] contents of the address part of the register contents of the decrement part of the register おまいらはどういう変数名にしますか?
682 名前:仕様書無しさん mailto:sage [04/03/21 22:20] >>681 ContentsOfTheAddressPartOfTheRegister ContentsOfTheDecrementPartOfTheRegister
683 名前:仕様書無しさん mailto:sage [04/03/21 22:22] regrAddrPart regrDecrPart …出直してくる。
684 名前:仕様書無しさん mailto:sage [04/03/21 22:36] ローマ字でも英語でも読めれば結構。しかし・・・・・ SetAppuri() 混在はやめてくれ・・・・・・(;´д⊂)
685 名前:仕様書無しさん mailto:sage [04/03/21 22:37] the は、いらんだろ
686 名前:仕様書無しさん mailto:sage [04/03/21 22:38] あっぷりかよ('A`)
687 名前:仕様書無しさん mailto:sage [04/03/21 23:01] >>681 adrList decList
688 名前:仕様書無しさん mailto:sage [04/03/21 23:11] RegAdrs RegDec
689 名前:仕様書無しさん mailto:sage [04/03/21 23:43] Rejistory
690 名前:仕様書無しさん mailto:sage [04/03/21 23:48] Addresu
691 名前:仕様書無しさん mailto:sage [04/03/22 00:25] a b
692 名前:681 mailto:sage [04/03/22 03:14] これを car, cdr と略したプログラマがいた。 もう50年近く前の話だがな。
693 名前:仕様書無しさん mailto:sage [04/03/22 04:07] >>684 漏れも基本的には「英語で統一」の方針なんだが。 でも分野によっては英語にできない時あるんだよな。 short GetShotai(...); みたいな。「書体」にはいろんな含みがあるし、 「フォント」に置き換えようとしても余計混乱するだけ。 話題がスレ違いになってるので、ここで仕事で扱ったコードの一部を晒そう。 if (iLen < iNeed) {/* 足りない */ /* 処理を残して帰る */ … このあと後始末が続くだけで家に帰ったわけじゃないとは思うが…。
694 名前:仕様書無しさん mailto:sage [04/03/22 22:50] >>692 括弧いいじゃん(・∀・)
695 名前:仕様書無しさん mailto:sage [04/03/22 23:34] >>693 そういえば「戻り値」を「還り値」と書いてたやつがいたっけな。
696 名前:仕様書無しさん mailto:sage [04/03/23 00:11] 返り血よりは…
697 名前:仕様書無しさん mailto:sage [04/03/23 04:21] tmp = func(hoge); DEBUG_PRINT(tmp); tmp = null; // 返り値を拭う
698 名前:仕様書無しさん [04/03/27 23:50] >>693 書体を typeface とするのは誤訳だろか。 >「書体」にはいろんな含みがあるし とあるから、正解ではないと思う。
699 名前:698 mailto:sage [04/03/27 23:51] sage 忘れスマソ。
700 名前:仕様書無しさん [04/03/28 04:55] 新入社員がVBでやっちまった・・・ Dim intNum As Integer intNum = 1 If ( intNum = 1 ) Then **** End If 条件文の前に初期化かよ( ´,_ゝ`)プッ
701 名前:仕様書無しさん [04/03/28 05:02] >>700 コードとコメントの繋がりがわからん…。 単にIf文要らないよって話に見えるんだけど。
702 名前:仕様書無しさん [04/03/28 09:40] >>700 はVBやってんのか(プ
703 名前:仕様書無しさん mailto:sage [04/03/28 10:46] ' 「オレってC使いだから」とかほざいていた奴の作ったDLLが ' バグバグで使いものにならないからVBで等価な処理を作った。 ' というか、この程度のものをわざわざ(以下略
704 名前:仕様書無しさん mailto:sage [04/03/28 11:32] ' : ' ふぅ、C版と等価にするためにバグを入れるのにてこずったぜ。
705 名前:ラマー12号 [04/03/28 11:33] うちの後輩、VBでコメントを1行も書いてなかったので少しぐらい書けよといったら一番先頭の行に処理概要として1行だけ書きやがった。しかも428桁目まで。もうアフォか。
706 名前:705の翻訳 mailto:sage [04/03/28 11:48] 後輩のコードを見ると、全くコメントを書いていなかったので 「少しぐらいは書けよ」 と言ったところ、頭の方に一行だけ処理概要を書いていた。 428桁あるコードなのに。 とりあえず、「なぜコメントを書けと言ったのか」って所を後輩に説明するの必要だな。 なぜコメントが必要なのか理解せずに「うるさいやつが何かいってるからその通りやっ ておこう」とか考えるとそういう風になる。
707 名前:仕様書無しさん mailto:sage [04/03/28 11:59] よくあるパターンかもしれないが・・・・ //テスト実装、要調整 アナログで調整できるのか、おめでてーな。 そうであっても調整してから出荷してくれや。
708 名前:仕様書無しさん mailto:sage [04/03/28 12:29] Function IE_Close() On Error GoTo err_IE_Enter objIE.Quit Exit_IE_Enter: Exit Function err_IE_Enter: Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = False '見えるようにする(お約束) ' Resume Exit_コマンド0_Click Resume Next End Function 今日後輩から引継ぎを受けたソース。 どこから突っ込むべきか・・・。 _| ̄|○
709 名前:仕様書無しさん mailto:sage [04/03/28 13:13] VBネタであれば、↓みたいなのあった。定数で書いてくれい。 Call MsgBox("もげもげ", 1 + 32, "うがー") API の定数なんかもそのまま写せばいいものを、勝手に書き換えてるし。 読むのに疲れた記憶がある。
710 名前:709 mailto:sage [04/03/28 13:16] んぁ、書くスレ間違いたな。すまんこ。
711 名前:仕様書無しさん mailto:sage [04/03/28 18:35] >>709 vbOK + vbOK とかやった馬鹿を知ってる。
712 名前:仕様書無しさん mailto:sage [04/03/28 19:46] 普通、vbOK<<1 だよな。
713 名前:仕様書無しさん mailto:sage [04/03/28 23:45] っていうか、VBネタは、ごく一部の人しかついていけないのでは、と。 ひょっとして、そこが笑うところですか?
714 名前:仕様書無しさん mailto:sage [04/03/29 00:28] VBプログラマーは真面目で優秀だから2ちゃんなんかに来ませんよ
715 名前:仕様書無しさん mailto:sage [04/03/29 03:33] >>712 乞説明。
716 名前:仕様書無しさん [04/03/29 08:07] >>709 ソイツは「1+32」がどういう意味か分かってない罠
717 名前:仕様書無しさん mailto:sage [04/03/29 09:01] >>679 これどこが笑いどころ?
718 名前:仕様書無しさん mailto:sage [04/03/29 09:43] >717 ちゃんと野菜食えよ。食物繊維は十分にとらないとな。てか、何だいまごろ。
719 名前:仕様書無しさん [04/03/29 12:47] >>713 そう、底辺にいる人間が自分はメジャーだと思っているところ が笑うところ
720 名前:仕様書無しさん mailto:sage [04/03/29 13:47] return 4; //お帰りください
721 名前:仕様書無しさん mailto:sage [04/03/29 14:27] 720に似たようなやつで exit(-1); //お逝きなさい ってのを最近見た。
722 名前:仕様書無しさん mailto:sage [04/03/29 15:11] >721 exitは下位8bitしか返り値として親プロセスに返さないから、負値を設定するのは感心しないな などと突っ込んでみる
723 名前:仕様書無しさん mailto:sack sage [04/03/29 16:02] >>72 int型が8ビットの環境なんだよ などと突っ込んでみる
724 名前:仕様書無しさん mailto:sage [04/03/29 16:11] >>723 山崎に突っ込むなよ などと突っ込んでみる
725 名前:仕様書無しさん mailto:sage [04/03/30 12:15] 山崎といえば、関数作成者「山崎○○」となっていたもので char data[200], data2[200]; data[0] = 0x31; data[1] = 0x30; data[2] = 0x30; data[3] = 0x30; // 文字列 "1000" strcpy( data2, data ); となっていたソースを見たことがあるな。 あれが現場でよく動いているなあ、と・・・
726 名前:仕様書無しさん [04/03/30 12:27] >>725 Debugモードで動いてるんだよ
727 名前:仕様書無しさん [04/03/30 16:51] Debugモードだとスタック変数は0で初期化されるのでつね。 初めて聞いた。
728 名前:仕様書無しさん mailto:sage [04/03/30 20:37] /* ファイルオープン */ fp = fopen( "hoge", "r" ); 〜 /* ファイルクローズ */ fclose(fp); うむ。よくわかった。で?
729 名前:仕様書無しさん mailto:sage [04/03/30 21:22] >>727 ゼロ以外で初期化する環境なんかはあるよな。 cdcdcdcdとか。 deadbeefとか。
730 名前:仕様書無しさん mailto:sage [04/03/30 22:53] 死肉で埋まってるソフトか
731 名前:仕様書無しさん [04/03/30 23:21] >>729 それはヒープ。(0xcdはM$だっけ?) スタックは以前に使用された領域を使う可能性が有るので保障されません。 Debugモードでも同じ。
732 名前:仕様書無しさん mailto:sage [04/03/31 00:00] >>731 cdで埋めるのはMSのヒープだけど、スタックを埋めるモードもあったはずだな。 バッファオーバーランの類いを検出するためだったっけ?
733 名前:仕様書無しさん mailto:sage [04/03/31 00:44] ヘヘヘヘヘヘヘヘヘヘヘヘヘヘ フフフフフフフフフフフ アヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャ
734 名前:仕様書無しさん mailto:sage [04/03/31 00:58] >>727 デバックからリリースに切り替えて動かなくなった場合 一番最初に疑うべきところ・・・って結構有名なはずなんだけどなぁ
735 名前:仕様書無しさん [04/03/31 01:55] return 0xdead; // 失敗 最初、なんのこっちゃ?と思ったね。
736 名前:仕様書無しさん mailto:sage [04/03/31 02:43] >>706 は、基本的に「行」と「桁」の区別がついていないと見た。
737 名前:仕様書無しさん [04/03/31 17:21] 731です。 M$の場合スタックも0xcc で埋めてくれるようです。確認しました。 1つ勉強になったよん。
738 名前:仕様書無しさん [04/03/31 17:35] そうそう、0xCCは半角カナの「フ」だから、初期化してないchar配列を ウォッチすると「フフフフフフフフフ」とか出て不気味。
739 名前:仕様書無しさん mailto:sage [04/03/31 17:36] ある処理系に持ってくと「ププププププププププ」とか出てムカツク。
740 名前:仕様書無しさん mailto:sage [04/03/31 18:56] /* ※仕様上、現在16項目分しかありませんが、*/ /* 土壇場で項目追加させられると死ねるので、*/ /* 予めAA〜ZZの26項目分を扱うつもりでお願いします。*/ こういうこと書く香具師って、 急な仕様変更とかで余程酷い目に遭ったんだろうな・・・
741 名前:仕様書無しさん mailto:sage [04/03/31 20:25] >>740 そして追加項目が11個増えたりするわけか。
742 名前:仕様書無しさん mailto:sage [04/03/31 21:07] >>740 俺はいつも仕様の項目数の倍の項目数で組んでる…
743 名前:仕様書無しさん mailto:sage [04/03/31 22:48] >>735 0xdeadbeefは C のイディオムだ。そんなことも知らんのか? 最近の若い者はこれだから・・・
744 名前:仕様書無しさん mailto:sage [04/03/31 22:59] 0xcafebabe
745 名前:仕様書無しさん mailto:sage [04/03/31 23:05] 0xabadcafe
746 名前:仕様書無しさん mailto:sage [04/03/31 23:13] 0xC0FFEE ちょっと苦しいか
747 名前:仕様書無しさん mailto:sage [04/03/31 23:31] % egrep '^[0-9a-fA-F]*$' /usr/dict/words
748 名前:仕様書無しさん mailto:sage [04/03/31 23:34] >>747 うほっ、同じようなことを(ry [0-9a-fA-F]+ 哉?
749 名前:仕様書無しさん mailto:sage [04/03/31 23:49] egrep: /usr/dict/words: No such file or directory
750 名前:仕様書無しさん mailto:sage [04/04/01 01:09] % egrep '^[0-9a-fA-F]*$' /usr/share/dict/words |wc 122 122 559 思ったほど多くないんだな。
751 名前:仕様書無しさん mailto:sage [04/04/02 00:40] 0x0baca3; // おバカさん
752 名前:仕様書無しさん mailto:sage [04/04/02 08:42] 0xaf0da; // アフォだ
753 名前:仕様書無しさん mailto:sage [04/04/02 21:34] >>743 夜中にバグ追っかけ倒してて、メモリん中に延々とdeadbeefが並んでるの見ると なんだか屠殺場に吊られてる気分に浸れます。 先人どもも余計な事をするもんだと思える一瞬でつ。
754 名前:仕様書無しさん mailto:sage [04/04/02 22:17] >>743-753 もまいらそれはコメント行の話題なのかと小一人月(ry
755 名前:仕様書無しさん mailto:sage [04/04/03 01:11] >754 サビ残でもさせるのか?
756 名前:仕様書無しさん [04/04/03 17:47] '2003/12/01 〇〇君が呼べって言うから Call hogehoge
757 名前:仕様書無しさん mailto:sage [04/04/03 23:37] /* 以下の処理は仕様書が出来ていないので、教えられたままコピペ */ hogehoge(); moemoe(); もうね。
758 名前:仕様書無しさん mailto:sage [04/04/05 06:11] >>497 warota
759 名前:仕様書無しさん mailto:sage [04/04/22 23:57] >>700 コメントと関係ないと思うんだが、そういう話ならこんなのみたぞ。 ... I = 1 For I = 1 To 65 ... 確かにここでの害はないだろう。しかしこれ書いたやつはよそでバグを まき散らしてるに違いない。
760 名前:仕様書無しさん mailto:sage [04/04/23 22:51] >>759 防御的プログラミングかもよ?
761 名前:仕様書無しさん mailto:sage [04/04/24 11:06] >>759 >>700 と決定的に違うのは、それがバグにはつながらない、ということだな。 >>700 のはもし書いた人間が、If文の中を通らないケースもあると考えていたなら、 仕様とコードの挙動が異なるわけだからな。
762 名前:仕様書無しさん mailto:sage [04/04/24 11:09] >>760 防御的プログラミングてどう言う意味? 自分の書いた関数が、他のコードに影響されない様に して置く事でしょうか? #引数等で貰う処理対象データが、関数内で想定してる #データ範囲に合ってるか最初にチェック入れるとか。 #折れは普通にやってる事だけど。
763 名前:仕様書無しさん mailto:sage [04/04/24 16:06] >>762 >防御的プログラミングてどう言う意味? >自分の書いた関数が、他のコードに影響されない様に >して置く事でしょうか? yes. そして、自分で把握しきれている範囲で一時的に使うのならともかく、 常態としてそうするのは、激しく問題ありなプログラムスタイル。 未知のバグを隠蔽してしまったり、暗黙の了解となっている仕様で 動いてる部分にこっそり影響を与えてしまったり… バグを駆逐するのではなく、飼いならすことになるわけだから。 assertion入れるのとかは別よ。 単に論理面でぶっ壊れてないかチェックしてるだけなんだから 入れて褒められこそすれ、怒られるいわれはない罠。 これは自衛的とか区分するまでもなく、正しく普通なプログラムスタイル。
764 名前:仕様書無しさん mailto:sage [04/04/25 09:50] >>759 んじゃ、これもだめ ? static int static_value = 0; /* C言語です */
765 名前:仕様書無しさん mailto:sage [04/04/25 13:54] 防御的プログラミングは警告つぶしにしかならない場合があるからなあ。 enum Etype { E1, E2 }; switch (a) { case E1: /*...*/ case E2: /*...*/ default: /*防御*/ } 仕様変更 enum Etype { E1, E2, E3 }; →defaultがなければ警告が出たのに…
766 名前:仕様書無しさん mailto:sage [04/04/25 14:14] >765 それを警告で救ってもらおうと思う発想がDQN
767 名前:仕様書無しさん mailto:sage [04/04/25 16:35] /* 防御プログラムとは少々異なるが、>>765 のenumとswitchの関係みたいな どっちかが変更されたら、そもそもプログラムが成立しなくなる様 一意性にこだわって書くスタイルというのもあるな。 例えば enum Etype {E1, E2, EMAX }; typedef void(*func(void)) FUNC; const FUNC ftable[EMAX] = { e1Func, e2Func ]; ftable[a](); … みたいな。 上ではftableは素の配列だが、java等ならEtypeに変更があれば範囲外参照で例外が飛ぶし、 C++なら定数配列のテンプレートでも使えば簡単に範囲外参照をチェックするようにできる。 Cでも最悪aを引数にした呼び出しマクロ等でチェックできるだろうし、何もしなくても、 いずれクラッシュという形で異常が検出される。 結局、問題点が事故を起こしてから判明するという意味では何の解決にもなっていないし 間の抜けた手には違いない。 その上、上の例の様な書き方はまだるっこしく、直感的でなく、可読性に劣る。 そうなると>>765 みたいに警告で救ってもらおうというのは…DQNというより 横着者のやることなわけだが、プログラマにとって横着は美徳。 粘着を美徳と勘違いしてる奴が多いのは実に嘆かわしい事だが。 */
768 名前:仕様書無しさん mailto:sage [04/04/26 20:51] >>763 一概に「激しく問題ありなプログラムスタイル」とは言えないだろ。 実運用のための堅いコード、テストしきれてない部分でも確実にしっかり 動作する可能性の高いコードを求めるのならば、防御的プログラミングには 充分な価値があることを認めなければならない。 といっても、おれは防御的プログラミングをしないけどな。わら。
769 名前:仕様書無しさん mailto:sage [04/04/26 21:03] >>762 >自分の書いた関数が、他のコードに影響されない様に >して置く事でしょうか? ちょっと違う。つか、「影響されない」がちょっと意味不明。 もし入力が誤っていたとしてもそれによって誤った動作をしないように プログラミングすることが防御的プログラミング【おれ解釈】。 たんに入力をチェックしているだけではあんまり防御的では ないんじゃあないかなあ。どんな入力でも、たとえそれが誤っていても、 なんとかそれなりに動作するように配慮してこそ防御的プログラミング。
770 名前:仕様書無しさん mailto:sage [04/04/26 21:31] 「確信犯」みたく、どうにも言葉遊びの世界に突っ込みがちだが、 防御的(防衛的)プログラミングには大きく2つ、 ・暗黙の前提条件に自分のテリトリー内で辻褄を合わせようとするスタイル と ・自身が想定していない暗黙のタブーを通過させないためにブロック機構を仕組む自衛的スタイル の、まったく異なる2つが混同して捉えられてるぽい。 単純にカプセル化の面で捉えて、前者は結局呼び出し元の仕様が変更されたら 引きずられるしかないわけで、良いプログラミングのスタイルとは言い難い。 後者は単に呼び出し元から与えられたパラメータの正当性を盲信せずにチェックを 入れてるだけなので、普通の(ちょっと神経質だが、慎重さは褒められていい) プログラムスタイル と思うんだけど、お前等どうよ。 スレ違いも甚だしいが。
771 名前:762 mailto:sage [04/04/26 23:47] >>770 自分の基本スタイルは後者の方です。 #元々の出身が汎用機の業務系だったんで #とにかく落ちない事が最優先、想定外 #データはスキップ、オペレータも何をやらかす #(めちゃくちゃなデータを入力してきたり) #か判らん連中を相手にしていたんで #自然とこうなった。 今の仕事は業務系とはかけ離れているけど。
772 名前:仕様書無しさん mailto:sage [04/04/27 22:49] >>770 「タブーを通過させないためにブロック機構」というのがassert()のような もののことだとするのなら、それはいわゆる防御的プログラミングではないと 思た。だって全然防御してないじゃん。わら。 あんたのいう「ブロック機構」が具体的にどうなのかが肝心でそ。 んで、そのひとつとして「自分のテリトリー内で辻褄を合わせよう」とする やりかたがあるんじゃあないか。
773 名前:仕様書無しさん mailto:sage [04/04/27 22:56] >>771 ユーザーが入力した生データを相手にしてるんだったら、わりと ふつうのことだと思えるが。とくに「防御的」というほどのこともなく。 関数の呼び出し元のデータに対してもそうしてるんならば、 それは立派な「防御的プログラミング」であろ。
774 名前:仕様書無しさん mailto:sage [04/05/04 08:58] /* バグを発見したが、詳細を書くには余白が狭すぎる */
775 名前:仕様書無しさん mailto:sage [04/05/04 13:06] >>774 バグの詳細は省略して良いから 仕様どうりに動く様にしる。