1 :
仕様書無しさん :
2006/09/14(木) 08:29:25
乙
3 :
仕様書無しさん :2006/09/14(木) 09:38:48
人生初の0x02ゲット!
>3 ( ゚д゚) (゚д゚)
1乙 3w 4こっち見んな
6 :
3 :2006/09/14(木) 10:35:31
なんだよぉォォ 0x00から数えれば、0x02は3だろぉォォ
んな無茶な
void main() { return 0; }
コンパイル通らないのでは Warning?
警告: return type of 'main' is not `int'
double main() { return 0.0; }
'yy/mm/dd ○○修正 'for i = 0 to 13 'for i = 0 to 11 'yyyymmdd 11->13 ''' for i = 1 to 9 'Del for i = 0 to 14 処理 ・ ・
VBキター
<div><align="left"></div>
>14 実はよーく見ると独自DTDでちゃっかりalignタグが定義してある んなわきゃーないよなw
alignタグが定義してあってもこれじゃおかしいだろ
17 :
仕様書無しさん :2006/09/16(土) 11:57:30
<font race="MSPゴシック" size="12">なぜかフォントがきちんと表示されない</font>
18 :
仕様書無しさん :2006/09/16(土) 13:15:02
意味的には合ってるようで合ってなくてちとワラタ。
ここはCOBOLのプログラマーも書き込んで良いですか?
ダメです♥
見てみたいなw
for(int i = 0; i < HOGE; i++) { ... } if(i > MOGE) ...
>>22 HOGEじゃなくてMOGEか・・・
きっとステキな人なんだろうな
>>23 本来ならiがスコープを超えてるって話だろ。
そんなときは黙って #define for if(0){}else for
int i; for(i = 0; i < HOGE; i++) { でええやん?
辞めようと思ったソースコードじゃ無くなるじゃん。
辞めた奴の便利スクリプトを流し読みしてたら # デスマー!デスマー!デスマーチ!
とある、各ページで共用するJavaScriptのソースファイルに // 葛藤コメント ……いや、もう葛藤してる場合じゃないだろ…… // ちなみに書いた本人としては、インクルードされる側に定義したグローバル変数に // インクルードする側がform要素をセットして動かす仕掛けが相当うぶろばだったようだが // ……所詮Webのプログラムなんてそんなもんじゃんよ('A`)
>>29 それそんなに変なことじゃないよな。
includeされる側を一種の「関数」だと思って、
そのグローバル変数を「引数」として渡してるだけ。
環境変数と全く同じ理屈だし。
うぶろば?
ヘッダーでグローバル変数を宣言ちていて、さらに#ifndefされてなかったりつると暴れたくなるよな。
>>32 グローバル変数って#defineとは関係ないだろ? 釣り??
いや、そのコテはモノホンのキチガイなんで本気で言ってる可能性が非常に高い。
void signal_handler(int sig) { switch(sig){ case SIGSEGV: fprintf(stderr, "core dumped.\n"); break; } } 氏ね。素人。
↑その程度で辞めようと思うなんて、なんて使えない
>>35 なんだ
>>37 SEGVってトラップできたのか。
デフォルトの処理にしておけばちゃんとcoreを残してデバッグに役立つのに、
自前で処理しちゃったら何も手がかりが残らん、ということかと。
>38 例外処理で酷いのも似たようなもんだよな…。 catch(Exception e){ System.err.println("想定外エラー"); } とか。例外わからんじゃねーかよ、みたいな。
>>37 シグナルハンドラ内でprintf呼ぶのは鼻から悪魔。
そうか、シグナルハンドラで使っていい関数って定義されてるんだな。 man 2 signal
catch (Exception e) { Console.Error.WriteLine("想定の範囲内です"); }
想定してたなら何とかしろって
catch(Exception e){ System.err.println("こんな所に来るはずがないんだ……"); } # コメントで書いてあることはたまーにあるが
Sub Mona On Error Goto ERR_SYORI (ry Exit Sub ERR_SYORI: MsgBox("**なエラーが起こりました。○○課まで連絡してください。") Resume Next End Sub このコードを書いたのは誰だぁっ!!(AA略
>>45 Resume Nextしちまっていいのか・・?
>>44 前に、「このエラーは絶対に出ません!出たら笑いましょう!!あっはっは!」
とコメントいれてたのが、会議のプレゼン中に出て、部長と一緒に始末書かかされたことがありますが、何か
前任者からVCのプログラムを引き継いだが グローバル変数やらマジックナンバーやら全開の糞コード。 MFCでベース作ってるからコンパイラが吐いたところだけ オブジェクト指向でたちが悪い。 コントロールをpublicでメンバーに割り当てて 関係ないクラス内でグローバルに(から)データ代入とかもうわけ分からん。 関数・変数名もHogeHogeFoo→HHFみたいに 略称ばっかりなんで知らない単語が出るたびに解析が必要。。。 これを俺にどうしろと??○| ̄|_
泣いてもいいよ。 あと ×コンパイラが吐いた ○IDE(のウィザード)が吐いた だな。
51 :
仕様書無しさん :2006/09/22(金) 21:20:34
if (条件1) { 長い処理その1 ////} //} else { } else if (条件2) { 長い処理その2 ////} //} else { } else if (条件3 || 条件4) { 長い処理その1 //} } else { 長い処理その2 }
>>44 いや、その程度で目くじら立てるな。
コンパイラのインターナルエラーとかもその類だろうし
>>48 そのページに書いてる事は、世の中的には極めて普通。
取り立ててどうと言うことも無い
56 :
仕様書無しさん :2006/09/23(土) 16:07:55
/* ○×による不具合のため処理暫定対応追加 /* 原因が判明した為暫定対応削除 */ */
57 :
仕様書無しさん :2006/09/23(土) 16:50:54
>>56 その最後の*/が気になる。消せとか言われないの?コンパイラーに。
コメントのネストOKオプションがあるコンパイラーがある。 わざわざそんなオプション使って移植性を損なうのはどうかと思うが。
ボーランドCはコメントのネスト使えるでちょ。
なんだ、bccか。
62 :
57 :2006/09/23(土) 17:39:32
ARMコンパイラだったので当然コンパイルエラーは出てましたがね。
63 :
仕様書無しさん :2006/09/23(土) 19:28:29
206 名前:仕様書無しさん 投稿日:2006/09/22(金) 23:18:30 例え成果物が不完全だとしても、 そのドキュメント自体に記載が無ければ、責任の追及ってできないものなのか? 当然だろって思うものは省略して設計書渡したんだが、 書いていない部分は全部組み込まれてなかった。 責任追及すると、設計書に無いからだと、こちらに非があるように言われるし。 そこまで細かく設計書書くものか? コーディングだけ頼んだんだが、書かれてなくても普通は仕様の常識ってあるだろ? そこまで求めるならコーダーで見積もらせるなと、クレームつけるし。 成果物として認めず、支払い止めてやろうかな。
考え方が異常。
66 :
仕様書無しさん :2006/09/23(土) 20:28:05
入力した項目を、登録完了後もそのまま残して再表示する仕様だったから、その様にプログラムした。 そしたら二重登録の操作ミスが多発した。 画面の項目が一切変更されてない登録は二重登録の可能性があるから、警告のメッセージが出るようにするのが当然だと、仕様作った奴が怒ってきた。 「おかしいわ、これ。 絶対!」 しつこく同じ言葉を繰り返す野朗だった。
67 :
仕様書無しさん :2006/09/23(土) 22:00:47
>>66 何が言いたいのかよくわからんが、仕様を疑いもせず
糞だと理解せずに作った自分自身のソースコードを見て、
人間辞めようと思った・・・
とか、そういうことかな?
>>67 仕様に疑いを持てるなんて、いい職場に居るんだね
羨ましいよ
>>66 仕様のさらに前提となる常識を文章に起こしていないなら、「当然」なんて言葉を使っちゃいけないよな
>>68 自分の仕事に責任を持たない奴に
権限を与えるとこうなるらしい。
かわいそうに
72 :
仕様書無しさん :2006/09/24(日) 01:11:41
>>66 えぇ?意味わかんね。
なんで二重登録になっちゃうの?
その画面でボタン押したものは全部INSERT文にいっちゃうのか?
そりゃ作った椰子の頭の中がおかしいと思うが。
普通は既存かどうか判定して分岐するんだがなぁ〜。そういう問題じゃないと?
>>72 > 普通は既存かどうか判定して分岐するんだがなぁ〜
それは状況によるだろ。
>>74 それは、きちんとした教育を受けたかとか
まともな経験を積んできたかとかによるだろ。
<body bgcolor="#EOEOEO">
79 :
仕様書無しさん :2006/09/24(日) 05:42:34
>>38 違う。シグナルハンドラ内で
標準関数をコールしようものならば、
実行時にストールを引き起こす可能性があるからだよ。
プロの間じゃ一応常識。
static void Main(string[] args) { while (true) { Thread t = new Thread(new ThreadStart(Work)); t.Start(); } Marriage(); }
boolean shiboFlag = true;
82 :
仕様書無しさん :2006/09/24(日) 15:04:19
>>73 じゃぁ何?なんで全部INSERTなの?説明してよ。
既存データを登録するのに全部INSERT文にするけど
そのときはメッセージボックスを出すなんていう仕様初めてみたよ。
83 :
仕様書無しさん :2006/09/24(日) 15:06:31
>>76 データの性質?どういう性質で全部INSERT文にしなきゃならんの?
DBの性質って言うならまだ理解できるが。UPDATEができないDB使ってるとか。
84 :
57 :2006/09/24(日) 15:09:32
今北産業
>>83 マスタの変更ではなくて履歴挿入からトリガー経由の場合とかじゃないかな。
仕様に応じてデータベース設計の理想からかけ離れている運用もけっこうある。
よーわからんけど、ストアードくらいかけないと不味いぞ。。。。。。。。。
87 :
仕様書無しさん :2006/09/24(日) 15:52:52
>>86 ストアドだと思ってたけどさ、ストアードが正しいん?
88 :
仕様書無しさん :2006/09/24(日) 15:59:37
>>63 省略してるって言えばよかっただけじゃないの?
要は、意思疎通できてないだけ。
キチガイコテには触らないでいただけます?
>>66 と似たような経験あるヤシは多いんじゃね?
仕様通りに作ったら文句言われるって。
パターンA)
仕様に疑問があるので、「本当にこれで行くんですか?」と何度も確認
「いいえ、その仕様でお願いします」 → 作る → 「これおかしいでしょ?」
パターンB)
仕様に疑問があるので、「本当にこれで行くんですか?」と何度も確認
「じゃあ、これで行きましょう」 → 作る → 「やっぱり前のでお願いします」
渡されてない仕様に沿ってないと言われたりってパターンも多いな。
…この会社辞めようじゃなくて、この業界辞める方が精神衛生上良いかもしんない。
>>90 確かに、何度もその仕様の欠点について説明したとしても
「でも、これでお願いします。」
で通されることあるよな。
顧客の望みどおりに作ったのに、遅いだの、メモリ食いすぎるだの
当たり前だっつうの、お前がそれを望んだんだから。あほか
「言質を取る」「仕様の最終確認責任はクライアント」をちゃんとやっとけと。
WinMain()とmain()が複数存在するソースを「よろしく」と言われ渡された。 当然コンパイル不可。 簡単なツールレベルだったので、結局0から自分で組みなおした。。
一体何を「よろしく」だったのか
メカドッグに。
ブラックジャックに
哀愁に
これからもロミオを
>>93 爆弾しかけたから解体してみやがれ!って事だったのに;;
>>99 ムリっす。下記のようなソースでした。
void funcA()
{
・
・
return i;
}
int i;
void funcB()
{
・
・
return i;
}
とかやっているし。怖くて、ループカウンタにiを使えないよ。
まぁこれだけならiを使わないように気をつければ良いだけだけど、
多数のグローバル変数が、とんでもない箇所に宣言されているし、
しかも、いたる所の関数と関数の間でextern のオンパレード。。こんなん誰組んだんだよorz
そもそもコメントが間違いまくっているし。
紛らわしいから、まだコメント無しの方が気持ち良い。。。
void なのにretrunしてるw
void main() { ... printf("( ^ω^)ここまでおkだお"); ... } さてどうしたものか…。
103 :
仕様書無しさん :2006/09/25(月) 21:58:02
VBのメソッド名がデフォルト
デフォルトってなんだ?
例えば、こういうことじゃね? Button1っていうコントロールがあるときにそいつにクリックイベント実装すると、 Button1_Clickって言う名前になるよね。 ボタンがN個あるとさあ大変。
ifやwhileがあるわけでもなし、{があるわけでもないのに 何の脈絡もなくインデントが右へ左へ…。 「コピペかな?」と思ってたんだけれど、 そいつの席の後ろから覗いてみてたら、自信満々でtabキー叩いてるんだよ…。
それPythonのソースじゃね?
>>106 そーゆー奴には『Alt-F8』を教えるのが吉。
・・・VSならな。
自動整形すればいいじゃない
僕の顔も自動整形してください!
111 :
仕様書無しさん :2006/09/26(火) 03:09:25
明日他システムとのリンケージテストだというのに、 ソースを見たら、メソッドの中身が { // 仕様未定 } だったときかな
>>103-105 そんなの、VB製の市販アプリでもよくあること。
フリーソフトでVB製だと、それまたよくあること。
以前出向したある会社は、Button231とかあって、ボタンの番号表があり、
そこに何の機能のボタンであるかを書き込まないといけないルールになっていた。
あまりにも多い場合は、案外効率的かもな
'なぜかうまく動かないのでClickに 'Private Sub ComboBox1_Change() Private Sub ComboBox1_Click() ってのがあったな
>>114 コンボボックスとChangeイベントの特性を知らないだけだな・・・
わざわざコメントにするなよ・・・
>>114-115 まあ、新人とかじゃね?
それぐらいは辞めようとかじゃなくて微笑ましい、もしくは「ぷっ・・」程度のものだと思うが
>>113 コーディング規約上はともかく、ユーザインターフェイスとして激しく間違って
いる気がする。
いや、ボタンのキャプションはさすがに変えてるだろ・・・
テストプログラム以外で Button1 Button2 な状況だったらそれは辞めたほうがいいな
>>119 ネタでもなんでもなくそんなプログラムをいじくり回してる俺に一言。
ていうか、この元コード書いた香具師に精神的損害賠償を請求したい。
それを言うなら慰謝料だろう
>121 >120は既にヤヴァい状態なんだ、察してやれ。
損害賠償請求という言葉は普通にあるが?
損害賠償の一手段が慰謝料だろ
とあるJavaコード・・・ AddCommand.INSTANCE.execute(target); : RemoveCommand.INSTANCE.execute(target); などなど、ほぼすべてのコマンドがSingleton。 Singletonのコマンドを継承したコマンドクラスも、もちろんSingleton。 継承したクラスで上位クラスのexecuteを呼び出すときも、当然Singleton。 あまりのSingletonぶりに発狂しそうになった・・・。
>>126 ちゃんと意図があってSingletonにしてるなら問題なさそうだが。
自分の好みに合わないからって発狂するとはおかしくないか。
安全でいいじゃないの。 用途によっては。
>>126 シングルトンを初めて知って、使いたくなったんじゃないの
新しく知ったら使いたくなるでしょ、仮想メソッドとか
使ってみたいという理由で、仕事で「使ってみる」のはいいとは思わないけどね
まぁ、誰もが通る道じゃないか。 そこに居座られると困るけど。
>>126 どうやって継承してSingletonにしているのかは謎だが。
実はMonostateだったに5ヲン
不定長の3次元配列組んだら『キモい』とか言われた。 ……そんなにダメかorz
>133 用途によるとは思うが、CUBEのシミュレータでも作るのか?
キモいも何も用途がわからんことにはコメントのしようがないな そういう情報を平気で抜いちゃう辺りから大体察せるが
なんか意図があるにしても パッと見でキモイのは事実
自分の会社じゃないけど 世の中こんな会社もあるのかと胸をなで下ろした・・・ システム納めてる会社から 「今、他のシステムで使ってる会社を切るので、そのシステムを引き継いで欲しい」 といわれ、ソースを預かった そのソースはVBで関数内の変数名がすべて ポ ケ モ ン の モ ン ス ター ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ の名前だった _(_ _;)
private function pikachu() as integer 〜 end function んなカンジ?
142 :
139 :2006/10/15(日) 12:21:29
>140 関数名でなくて関数の中の変数ね 一応、関数名やグローバルにある変数とかはちゃんと意味ある名前なんだけど・・・ これは不覚にもちょっとうけた Dim Pikachu As integer Dim Raichu As integer 〜 RAICHU = PIKACHU + 1 〜 関数の中が20ステップぐらいならまぁ合間に直していく気にもなるんだけど 600ステップの関数とか勘弁して欲しい・・・_(_ _;)
>RAICHU = PIKACHU + 1 ピカチュウが進化してライチューか、理にかなってるな
VBで開発するとか言ったらこの会社やめるw
>>144 安心してください。ActiveBasicです。
ま、Perlより楽そーだが。
>>144 安心してください。RealBasicです。
>>144 安心してください。ハンドアセンブルです。
>>144 安心してください。16進ダンプ手打です。
>150 TK-80ktkr
C言語とかを、英語やスワヒリ語と同列に扱う奴がいたら変に思うけど、 マシン語が話せますって奴がいたら、同列でも認めるわ
ソースコードかどうか微妙だが、途中から入ったプロジェクトのコードの動作が秀逸だった。 Makefile を解析するやつを引き継いだのだが、そいつのトークナイザが素晴らしい。 a.out: src/sub1.c sub2.c をトークナイザが分割すると、 「a」 「.」 「out」 「:」 「src」 「/」 「sub1」 「.」 「c」 「sub2」 「.」 「c」 のように細切れで返ってくる・・・。分割しすぎですよ・・・ orz ここまで分割してしまうと、スペースを残しておかなければ意味が取れなくなりますよ。 これ書いた人ダレデスカ。ヨク、ウゴイテイマスネ。
Z80のころはアセンブラのソースより16進ダンプのが見やすいってやついたけどね 相対アドレス計算しやすいとか言ってたw
>>153 確かに、Makefile解析するのにそこまで分解する必要はないが
パーサで解析してたら問題無いじゃん
ちゃんと動いてても不思議じゃない
あんたのレベルが低すぎじゃね?
156 :
153 :2006/10/16(月) 03:42:41
>>155 うん、ちょっとひどく言い過ぎた。ごめん。
でも、率直に言うと、まともに動いていないんだ。
サンプルとして入っていた簡単な Makefile だけ解析できていたんだ。
お客様の Makefile が解析できていない状態で引き継ぎ食らったんだ。
char* pDate1 = "20061016"; char* pDate2 = "20061017"; // 日時の比較 if(pDate1 < pDate2) { ・・・ } 40才超えた人の書いたコード。本当に馬鹿な人っているのですね
40才超えててCが解らないというのはどういう経歴の人だろう
40歳超えてるからCが解らないんじゃね?COB(ry
>>157 それは衝撃的だな。
>>158 マイコンやパソコンと全然係わって来なかった人なのかも。
汎用機一筋だったりするとCが分からなくても問題ないだろうし。
>>153 なんでこの時代に Makefile を解析するプログラムを
わざわざ自作しているのかが気になるところだ。
>157 そいつ、VB経験者ぽいな VBだと文字列同士の大小比較とか非常識なことができるから
昔の BASIC とかもできたし、さほど非常識とも思わないが、 少なくとも C を分かっていないことは確かだな。
ああ、BASIC臭いな。 COBOLでこういう文字列比較って出来るのかどうか知らんが。
JavaでもC#でも文字列の大小比較(辞書式)はできるけど 少なくとも C を分かっていないことは確かだな。
166 :
仕様書無しさん :2006/10/16(月) 22:08:49
コメントが /* */ じゃなくて /* */ だった
167 :
仕様書無しさん :2006/10/16(月) 23:16:18
↓小悪魔ボディ
あらららら \ \ / | \ヽ / / \ V / ヽ.ヽ / / ,. -ニニニニニミユニニヽー--- 、 ヽ.ヽ / / ,. -''´ //彡ィ ニ`ヽ、ヽ | / / // / / | \二ミヾヘ| '´ ̄ ̄ ̄`ヽ、 / / ./ / /| ト、 ヽ ヽ //ハ」ヽ ヽ--、 `ヽ、 / // / / / / | | ヽ ヽ |彡//l| !ヽ `ヽ、 `ヽ、 ./ / | / / | l__ ! | ヽ. | |// /.| ||\\ ヽ ``''‐‐- 、 \ // .| || | | | ヽ! | , --!-、| |/ //j ∧ ヽ \ ヽ `゙''‐、ヽ | || | |l 「i::ヽ __|__| ! |ニニニヽ ヽ ヽ ヽ、 ヽ `゙ ヽ!ヽ!ヽ |ヽl |:::'! '´l:::::::r}| / ,. -'´ ヽ ヽ ヽ ヽ |! ヽ! l  ̄ ⊥:::::/| /-r‐く ヽヽ ヽ、! \ 、__, ,ィ / ヽ) r‐ヽ --r'ニ彡ヽ ,. -─‐┴‐、r'r‐‐、ヽ_人 r====v‐'´ ヽ、ヽ-'__ノ ノ >、 ヽヽ、/ __ ヽy' /`ー─' / ヽ ∧ `y=彳r─、ヽrヘ| / |___/ \ / | __ソ | `ー、___ト、/ i. |__ \ / |/ ト、 ,' \_」 | ヽ r─ 、 \ | / | `ヽ、 ト、__,ィ'Tl V `` `ー'´ / ヽ、___j`ー‐ | |レ' / / ヽ ` ! / i / ヽ |
>>157 宮崎君、きみまだこの業界にいたの?
前にそれはダメだろこのボケ氏ねって優しく教えてあげたじゃないか。
って言葉が脳裏をよぎった
>>166 /*
a = 1;
/* コメント */
のような感じのコメント閉じ忘れのやつは見たことがある。
コンパイルエラーは出ないのだが間でやってる初期化などの
処理がされないのでかなり後の方の処理でそれを使おうとした
所で異常な動作になった。
探すの大変だったよ。
public static int main(String[] args) orz
あるあるw
>>171 それは、やめようとおもうレベルじゃないだろ。
public static final と書いてから final を消して void main... と続ける
>164 COBOL も STR1 < STR2 的な文字列比較できるね
SQLでもできるな (・∀・)
失せろ無能
なんでもいいけど 英語と日本語を比較して、「だから英語は・・・」なんて文句言ってる(ような) 頭悪いヤツが結構いることは確かだ。
別に日本語と英語を比較して、その上で英語(または日本語)の難点を 指摘することは特段問題ないと思うが。同音異義語や類語が多かったり、 立場の差で言葉を使い分けなければいけなかったり、助詞などのきめ細かい 使い分けが必要だったりして、他国人がもっとも習得しづらいのは日本語だ ということは統計的にも裏付けされているわけで。 この際これは関係ない。普通に考えてみろ。文字列へのポインタを比較して 線形メモリ内での位置関係を知りたいなんておもわんだろ。 よっぽどハード寄りのことをやってる奴でもない限り。 もっと柔軟に文字列自体を比較してくれた方がどれだけ取っつき易いことか。
良くも悪くも高級アセンブラ。
関係ないけど、日本人は日本語がもっとも難しい言語だと思いたいらしい。 >179 > 他国人がもっとも習得しづらいのは日本語だ > ということは統計的にも裏付けされているわけで。 ソースは?
構文の構成順序 漢字と平仮名からなる単語の理解 それらから発生する謙譲語丁寧語尊敬語 ”もっとも”かどうかは分からんがかなり習得しずらい
>>181 >ソースは?
会社を辞めようと思ったソースか?
違うなら提示する気はないよ。そっちの方向で話を進める意志はないから。
以上。
本質ではない細かいことに突っ込むのがプログラマ
>>183 > 会社を辞めようと思ったソースか?
こっちでいいから全部晒してくれ。
30過ぎで経験者で入ってきた人にソース書かせたら struct hoge { int hogeId[16]; char hogeCode[16]; double hogeValue[8]; int hogeFlag[8]; ・・・ }; のような定義してfor文も直値で回してたから 「メンテしづらいからちゃんと定数使ってくれ」 と言ったら #define HOGEID_MAX 16 #define HOGEVALUE_MAX 8 struct hoge { int hogeId[HOGEID_MAX]; char hogeCode[HOGEID_MAX]; double hogeValue[HOGEVALUE_MAX]; int hogeFlag[HOGEVALUE_MAX]; ・・・ }; になりました・・・。今までどんな仕事してきたんだよ。 アンタが抜けた後にデータ長変更の依頼きたよ・・・○| ̄|_
>>186 ちょっと待て。お前はそれをどう書いて欲しかったんだ?
int TEISUU[16];
>>188 こんな感じにして欲しかったんでない?
これなら配列の要素数を変更するときがあっても1カ所の修正で済む。
#define HOGE_MAX 8
struct hoge {
int hogeId_aaa;
int hogeId_bbb;
char hogeCode_ccc;
char hogeCode_ddd;
double hogeValue;
int hogeFlag;
・・・
};
hoge m_hoge[HOGE_MAX];
と、一瞬思ったけど186の下の方も2カ所でいけるな・・・
192 :
仕様書無しさん :2006/10/20(金) 23:00:41
>>188 >>190 論理的あるいは要件上の整合性から等しいわけでもなく、
たまたま現在の仕様では同じ値であるからといって、
hogeIdのサイズを表す定数でhogeCode[HOGEID_MAX] とかするな、
ということでそ。
少し悪化させた例。
int gSomeCount = 2;
int gOutputDebugLogLevel = 2;
↓
#DEFINE INITIAL_SOMECOUNT 2
int gSomeCount = INITIAL_SOMECOUNT;
int gOutputDebugLogLevel = INITIAL_SOMECOUNT; // 今現在たまたま値は同じだけど、本来関係無い・・・
>>186 そりゃーあんたにも問題があるよ。
そういうのはコミュニケーションがちゃんと取れてれば防げるだろ。
>今までどんな仕事してきたんだよ。 と書いてるから、 相手は30過ぎの経験者だし理屈はわかってて単に手抜きしてるだけかと思ったら、 なぜ何のために定数を定義するのかわかってませんでした、ということでは。 設計書を見てみないと、 hogeId の個数が常に hogeCode の個数と等しいと 誤解していたという可能性も捨てきれないが。value と flag なんか一対一対応 してそうな見掛けだし。
if (a == b) c = b; else c = a;
c = a;
// とりあえず苦肉の策!!
>197 ごめん俺それときどきやるorz
>>157 むしろ今時の言語やDBじゃ文字列比較できる。Cはできないのか。アフォだなぁ・・・・。
出来ない言語でやってるから書いてだろうに、 他の言語を持ち出してくるなんて >199はほんとにバカだなぁ。
gcc -std=c2006 hoge.c マダー?
YYYYMMDDだからstrncmpで
stricmpが標準関数だと思っていた漏れ様が通り過ぎマスタ
Cは大変らしー
Cは低級言語
A,Bでやめる奴はヘタレ
>207 これのことか? > 917 : It's@名無しさん [sage] DATE:2005/11/30(水) 23:37:30 > >899 > C言語は低級言語なので、それで記述されたプログラムをコンパイルして出来たバイナリは、 > ギザギザしてて、バス上をデータ転送するときにひっかかってパフォーマンスが低下します。 > JAVAはそういうことを防ぐために、滑らかな膜で包んでいるので、高速な転送が可能です。 > FSKのような仮想マシンは、JAVAとは異なりますが、ギザギザが出にくいようなコードを > 出力するための工夫です。
低レベル言語の意味を理解していないのはお約束です
ギザギザワロス
>>208 Aにも満たない道程君はどうするといいでつか?
>>209 ギザギザして無いと感じにくいから白濁液がでないじゃん。
JAVAだと出た液も回収されちゃうし。
>>209 なんだそりゃ。その書き込みは知らなかった。
でもCが低級言語というのは昔から言われていたことだよ。
ギザギザとは言われてなかったと思うけどね。w
低級っていうか「低水準言語」ね。 他のいわゆる高水準言語と比べて劣っているという意味では決してないんだがねw
庭球言語
庭球ってアレか?相手の顔面に黄色の球をぶち込もうとして、必死に避けるアレか?
「サーバ落とし」で 返したっ!
>>209 それ、超初心者向けの説明の中で見たことがあるよ。
Windows用のソフトがなぜMacOSで動かないのか、という設問で
それぞれのOSの表面は違った形に凸凹していて、プログラムが
その凸凹とうまくかみ合わないと動作しない。
JavaアプリだとJava仮想マシンが間に入って、凸凹を合わせて
くれるからどのOSでも動作するとか。
パソコン初心者に説明するには便利な図解なのでたまに使うけど、
そういう理解のされ方をする危険があるのか…。
なるほどなぁ。。。 ギザギザもわかった。 その理解で、Javaからみた普通の実行ファイルは ギザギザしてるからパフォーマンスが落ちるとか思うのも 理解できる気がする。 凸凹だからうまくはまらなくて動かない、という理解は 難しいんだろうな。普通は凸を凹に入れるから。
ギザギザってそういう意味だったのか。 しかしバス上をデータ転送するときに引っかかるってのは・・・。
そこは無知故の妄想が埋めた部分だろう
>209 それ、SONYのウォークマンスレかなんかのヤツだろ。見た覚えがある。 もちろん書いたヤツはジョークで書いてる。
中国語を話す人と日本語を話す人が居るのですが、二人は相手の国の言葉がわからない為に意思疎通が取れません そこで登場するのがホンヤクコンニャク!と思ったけれどホンヤクコンニャクは現代の技術ではまだ実現できません そこで登場するのが翻訳機○○!これは様々な国の言葉を、たとえば中国語を吹き込むと日本語に、日本語を吹き込むと中国語に変換して再生してれる優れものなんです! 一つだけホンヤクコンニャクと違って問題があるのですが、それは翻訳するのに時間がかかることなんです でも、わざわざ相手の国の言葉を勉強するよりはましですよね? 皆さんもこの翻訳機○○を使って様々な国の人と会話を楽しみましょう^^
>224 で、それひょっとしてBrainF*ckかなんかのコード?
226 :
仕様書無しさん :2006/10/27(金) 01:41:52
ソースコードというかコメントだが、 /* ここ自信ありません */
C++にて。辞めようとまでは思わなかったが、実際に動いていたことに驚いたコード ((C*)0)->f(); f()はクラスCのメンバ関数で、メンバ変数にはアクセスしないがstatic指定はない。 こんなの動くんだなぁ。 もしかして(どこぞの業界では)普通だったりするんだろうか?
229 :
仕様書無しさん :2006/10/28(土) 16:27:13
>>228 windows、MFCで実際にあるコード
_AFXWIN_INLINE HWND CWnd::GetSafeHwnd() const
{ return this == NULL ? NULL : m_hWnd; }
thisに触んなきゃ動くんじゃないかな
規格では未定義動作だけどな。
やめようとは思わないが以下 code aaa() { if ( a ) (処理A) if ( b ) { if ( c ) { (処理B) } } }
ずれたー aaa() { if ( a ) (処理A) if ( b ) { if ( c ) { (処理B) } } }
if (b && c) でおkってことか
if (a == true) { } else { 処理1 } ・・・色々とアレ。
・規約で「if」と「else」の両方を記述しなければならない ・規約で評価式にnotをつけてはならない ・規約で評価式は「==true」をつけねばならない 以上、どれも実際にあった規約 これらが重なれば…
if ((a == false) == true) { …… } else { }
お、よけいひどくなったな
a とか b とか混乱させてしまったようだ。 インデントがずれまくっているということ。 どうやら、if 文には {} をつけるのが癖のようだが、 if ( a ) の箇所だけ {} が無く、ぶら下がりになっているのに本人気づいていないようだ。 (まぁ、気づいてたらなおすだろーが,,)
240 :
仕様書無しさん :2006/10/29(日) 09:25:46
>>233 一応つっこんでおくが、処理によってはcを見ると落ちるとかいうこともあるから、
その書き方だけで愚痴られても何とも言えない。
>>239 ん?どゆプラットフォームだ?
普通ネスト異常でコンパイルできないだろ。脳内ストーリーなら消えろw
>>241 ネストは問題なさそうに見える俺は逝ってよしですか。
>>235 のは別に問題ないと思う。
自分もよくそうやって書くし。否定を最初のifに書くのが気持ち悪いからってだけの理由。
でもって肯定のときは何もしないんだぞ、というのをなんとなく強調しておきたいときとか。
全部の分岐処理を書いておいた方が処理し忘れとかないし
全部書くとなると最初に肯定を書く方が読みやすいし
特定のif文だけ否定だけ書いておくと、あとから『流し読み』するとき
そこでつっかえる=可読性がやや低くなる。
・・・って思ったら{の話か・・・orz
>>231 そうなのか?
てっきり this に NULL が入るだけだと思ってたが。
>>243 {} の中に何も無いとコンパイルでこける処理系も有るよ。
if( a ) {
;
}
else {
処理
}
でなくちゃ駄目。
>>243 せめて
if (a == true)
じゃなくて
if (a)
にしろや
trueが0かもしれないぞ。
>>235 な場合漏れは {
/*continue*/
}とか書いちゃうw
書き忘れちゃうぞ〜という意味で。
>trueが0かもしれないぞ。 論外だろw
booleanをサポートする言語であれば、if文は true か false かで判断されるから、 数値的にどうだろうと関係ない。 Cのような場合は、TRUE == 0 の場合を考えると比較しなきゃならんが、 そんなものはCの真偽の扱いと反するから、「TRUE」「FALSE」と名前がついた 真偽値とは別ものと考えるべき。 FALSE == 0 が確定してるなら、if (boolValue) とか if (!boolValue) と書くほうが 間違いがないし、見た目も無理がなく、しかも無駄のないコードが生成される。
ところが「『== TRUE』『== FALSE』がないのはわかりにくい」と 大多数の人間が言って、コーディング規約に組み込まれてしまった。 という話が過去スレになかったか?
== 0 なら書いてもいいんじゃねーの?でオワタ
isupper
isvipper
isneat
ishikki
ishonmonooppai
issimoda
isimouto
isthisapen
>>252 あろうとなかろうと、可読性からして俺は == を書くことを支持し続けるけどな
単に新人の頃、パッと見で判断できなかった苦労があっただけで
今は当然感覚的にわかっているけどw
初心は大切
if(!this.IsAPen) を if(!(this.IsAPen)) にしないと死んじゃう病をなんとかしたい。
strcmp系は必ず0と比較するなぁ。 そこに現れる == や != が実際に意図している比較なので読みやすく思える。 if (strcmp(a, b)) { ... } if ( ! strcmp(a, b) ) { ... } とは書かない。
>>268 boolean型を返さない関数ではやりません
可読性著しく落ちるし
270 :
243 :2006/10/30(月) 20:06:03
気分でコーディング変えちゃうのかよ
strcmp系の戻り値は意味的にも数値なんだし、0と比較で良いね
>>273 VBでそれやってみ。
前の条件式がfalseで後ろの条件式で例外飛ぶパターンで。
# ショートサーキットの効かない場合って結構あるよ
>>274 場合じゃなくて言語だろ。 VB やらない人にはさっぱりそんな場合は無いんじゃない?
どう見ても C/C++ にしか見えないソースに、何で VB が出てくんの?
VBしか知らないんだろw
と、必死の罵倒
まあ、まぬけを見たら叩かずにおれんのがチャネラーの性だから
と、必死の誤魔化し
for(i=0;i<MAX;i++) { if(a = COND_A) 処理 } if文の中にfor文いれれば済む状況でわざわざループごとに比較
ループ中に別の割り込み処理でaが書き換えられてしまう場合があって 毎回aをCOND_Aに更新したいんでしょ?
言語がわからんが if の中は比較演算子だと判断していいのか?
284 :
281 :2006/10/31(火) 00:53:45
あ、ごめ、恥ずかしい。 if(a==COND_A)
>>285 Java に && があるから何だと言うのだろう。
>>266 ちなみにC、C++だと
#define is ==
#define isnot !=
#define or ||
#define and &&
で、is,isnot,or,and使ってた。たしかに=などと書き間違いはない。
>>287 それは辞めようと思ってしまうかもしれない。
#define もし if #define ならば { #define 以上 }
#define でもね else
CreateError()
>>287 C++だとor,andは予約語で定義されているから必要ない。
ついでに言えばiso646.h使えばCでも必要ない。
VBしか知らないよりは
cobo(ry
コボちゃんが何か?
僕には、COBOLの世界ってすごく羨ましいと感じる時があったんだ。 生まれてこのかたオープン系のシステムにしか携わったことが ないからホストの仕事っていうだけで、どんなすごい仕事をしている だろうと思っていたし。 この期待感というのは、未知のものに対する畏怖の念とかそういう 類のものかもしれない。 COBOLを駆使して仕事してる人たちを見ると毎日毎日休む間もなく 一生懸命、深夜まで働いているし本当にご苦労さんと思っていた。 この人たちと会話するまでは。。。。 毎晩毎晩遅くまでかかってソートのロジックを構築しただの、 検索処理でインデックスも使わずに1件1件しらみつぶしに やるためのロジックを構築するのに何日も掛けて完成させたの だの聞いて、 こいつらほんまもんの ア ホ だ! ということに気が付いてしまった。 普通10分で終わる仕事が3日? 半日で終わる仕事が5日掛かる? 信じられんほどの馬鹿だ。しかもシステムについても業務について もほとんどまともな知識が無い。ベテランだというのに
>>298 そういうのはベテランと言わないだろう。
ただ勤続年数が長いだけ。
>>298-299 そういう勤続年数が長いだけのコボちゃんしか居ない会社に居たことがあるよ。
バカソートもまともに組めない人達。
彼らがクイックやバイナリを組むとしたら余裕で3日は掛かるだろうなぁ...
勿論かなり昔の話だよ。今はもう絶滅してるでしょ。
ー ̄)
>>286 バカにタダでは教えてやらん。疲れるから。
ソートか・・・以前一回組んだのを使いまわしてるから、今すぐそらで書けって言われると ちょっと時間かかるかもしれんorz
ソートなんていまどき1から書くやついるの? ライブラリだってあるだろうし WEBにだって転がってる(信用できるか知らんが)
>>298 も
>>300 も所詮はコボちゃんあがりだから、現代的なプログラミングの話題についていけないんだよ。
306 :
300 :2006/11/02(木) 23:59:27
>>305 今はどうか知らんけどCOBOLにライブラリと呼べるような物は無かったかと。
もっともCOBOLあんまり知らんのだけどね。
コボちゃんだったのは3ヶ月だけ、その後はBASICやらされた。
理由はBASIC書ける人間が居なかったから。
半年で1種とって、暮れの寸志貰って、速攻辞めました。
で、今は何をやってるんだ?
308 :
300 :2006/11/03(金) 03:31:58
メイドカフェで働いてる。
ワロワロス
シングルトンのコンテキストがグローバル
「この機能は作ったことあるので流用したら?」と言ったら いろんなシステム開発にそのままコピペ流用され、 参加してないPrjでもなぜか「作成者:オレ」 クレーム入れられても・・・ せめて名前は変えとけよ・・
データの年月日が全て昭和で書かれているやつ・・・ だから、 2006/11/04→81/11/04 になっている・・・
>>313 ひょっとして斜め向かいの席のKさんですか?
>313 それ、2000年対応のパターンの1つだよw 格納桁が増やせないデータに対する苦肉の策
ArrayList params = new ArrayList(); params.add(arg1); params.add(arg2); : func(params); public void func(params) { String arg1 = (String)params.get(0); Integer arg2 = (Integer)params.get(1); : } ...こんなの、ポリモフィズムもへったくれもない。
>>316 会社を辞めようとまでは思わないが、
デザインパターンを知らないヤシが組んだら
大抵、そんな風になる。
どっちかつーとデザパタよりもタイプセーフについて理解した方がいいな
>>312 本人が既にpj離れててもコピペされて新規作成者になってる……
なんか気持ち悪いよなぁ
ソースに本人の名前を書かせるのって意味あんの? 本人にしても細部まで覚えてるのってせいぜい1年ぐらいじゃね? 大体、その本人がいなくなる可能性もあるわけで、そうなると全く意味ないじゃん。 何かの修正が必要になった時に、その製作者に連絡がとれて、その製作者も内容を 覚えていてくれる可能性に望みを託しているということ? ソースの概要コメントに書くのは会社名とプロジェクト名ぐらいでいいと思うんだけど。 本人の名前書かせるんだったら、上司とかPLの名前も書かせろよ。
覚えてなくても読めば思い出すだろ
作者の名前はあっても、変更者の名前がなく、 紆余曲折を経てさんざん弄られたソースが巡り巡って 作者の俺に戻ってきたことがあったが、もはや俺にも 理解不能な状態になってたことがあった。
>>320 責任範囲の明確化
上司:こんなくそクラス誰がつくりやがった!
おれ:あいつです rア
アフォ新人が匿名でがんがんだめソースを追加してる。
あとで不具合が多数あがった時、犯人探しに役立つ。
(昔ほんきで他人名書いてる奴みつけた時、どっか通報できないのかな、と思った・・)
325 :
仕様書無しさん :2006/11/04(土) 13:24:20
>>311 俺は逆に、俺が一から作り上げたシステムを別のやつに引き継いだら
全てのソースの作成者をそいつの名前に書き換えられた。
2年程出向して戻ってきたら、なぜかそのシステムを作ったのはそいつで
俺は役に立たなかったという話になっててビビったよ
つバージョン管理システム
>>323 ソース管理ソフト使ってなかったの?
それで、変更者の名前もないなんて、たまらないね
>>325 いる!そういう奴いる!!
人が作ったソースを流用して、作成者名だけそいつに
なってるの!
流用する場合名前変えたらええんか変えんのがええんかはっきりせえ
>>329 参考にして新しく作ったのなら名前変えてもいいけど
ソースファイルをそのまま取り込んでるのに
名前だけ変えるのって、あつかましくない?
自分のメリットになりそうな場合は変える。あとで面倒になりそうな場合は変えない。 ま、経験に基づく大人の判断ということでひとつ。
>330 >311-
無、無限るーぷ ま、新しい議題と行きますか。
だって同じことが繰り返されるんだぜ?
>>330 xxxxを流用
xxxxを転用
って書けばいいんじゃね?
(客に見られるとマズい文言かな?)
ヌル(・ω・)ポリーン
338 :
323 :2006/11/04(土) 20:09:24
>>326 次の次のプロジェクトに機能ごともっていったので、前プロジェクトのバージョン管理見ないとわからないというオチ
>>328 ま、俺が戻ってきたのは、次のプロジェクトはメニュー変更のみで馬鹿でもできる仕様変更、
その次で機能大幅改善ということで、そいつが「俺が組んだ」と言っておきながら
ちょっと触るとバグ出しまくる最悪状態だったので、最初のPGカムバック!だったんだけどねw
思い出しながらひょいひょいっとバグ直して新機能追加してたら
「初めてみるソースでそれだけ直せるなんてスゴイ」
とリーダーから評価をもらい、それはそれでいいのだが「は?」と聞き返したら・・・
というものでした。結果オーライ(そいつがうそつきだったというオチ)なので構わないけど、
みんなも自分の担当したソースを誰かに引き継いだ後は要注意だぞ!w
' チェックボックス未チェック処理 If Chk_Log(0).Value = 0 And Chk_Log(1).Value = 0 And Chk_Log(2).Value = 0 And _ Chk_Log(3).Value = 0 And Chk_Log(4).Value = 0 And Chk_Log(5).Value = 0 And _ Chk_Log(6).Value = 0 And Chk_Log(7).Value = 0 And Chk_Log(8).Value = 0 And _ Chk_Log(9).Value = 0 And Chk_Log(10).Value = 0 And Chk_Log(11).Value = 0 Then MsgBox "取込むデータが選択されていません。", vbExclamation + vbOKOnly Screen.MousePointer = vbDefault Exit Sub End If
_ で改行エスケープするのは10行まで有効だからなぁ…… チェックボックスが30個超えるまではその要領で続けることになるわけかorz
そんな制限あんのか
>>341 あるよ。普通にエラーになっちゃう。
既存の糞コードをせめて見栄えよくインデントしてやろうとする試みも絶たれる。
ほーそれは勉強になった タブン役に立つことはねーだろうけどw でだ 最低限の話だが For-Next でどれかがチェックされてたらOKにしちゃいかんのか?
345 :
339 :2006/11/05(日) 03:16:39
まぁ、「この会社」のVB厨が「製造」したコードなんてこんな感じのがたくさんあるんだよ。 いちいち書き換えるよりSQLだけ抜き出してC#かなんかで作り直した方が現実的に早い。 //SQLも地雷なわけだが
むしろSQLのほうが危険なのでは?と思うのだが
347 :
339 :2006/11/05(日) 03:32:51
>>346 >SQL
とりあえず今回は既に動いているシステムを修正しているんだけど、常識的な修正を施すだけで劇的にパフォーマンスが変わって面白い。
「俺、神じゃん?」みたいな錯覚に陥る。
こういうの仕込んでおけば自分の株あげるのにいいな。
>常識的な修正を施すだけで劇的にパフォーマンスが変わって だろうなあ 見たわけじゃないがそんな気がする
作業経過より抜粋 'Option Explicit '頼むから↑くらいつけてくれ ''つけたらコンパイルできなくなったのでコメントアウト SQLはあれですよ。入力された検索条件を何の加工もせずに各所に突っ込むという。。 SQLの中であんなに器用な文字列編集できるなら、先にやっとけと。 つーかサーバにそんなことさせんなと。セキュリティなんてもうどうでもいいww
あるあるw
VBのコントロール配列は微妙。 メッセージを拾わないまでも、クラスに挙動を関連付けたり するようなサブクラス化をしようとする場合に問題がでる。
>>344 この程度で関数って、アホか?
関数の中で何するんだ?
ループだろ、どうせwwww
そんなのその場でやれよ、関数バカwwwwww
なんで・・・ブビー房はウジャウジャ湧いてくるんだ?
その場でやっちゃってるから
>>339 みたいに見づらいコーディングになっちゃってるんだろうが
358 :
仕様書無しさん :2006/11/05(日) 14:40:41
まぁ、大概暴言を吐くのは心当たりがあるやつなんだろうな。
>>355 そりゃ、うじゃうじゃ居るからだろう
あちこちデスマってるのも大概こいつらのせい
チェック用の関数やメソッドがあるのは業界デフォだよ、デフォ。 いちいちその場でって有り得ない。テキストボックス1個だけとかでしか 通用しない。え、まさかチェックの数だけ関数作るとか思ってないよな?
361 :
仕様書無しさん :2006/11/05(日) 16:50:12
>>359 ゼネコン構造の基盤を支えているのも、派遣業者を潤わせているのも、単価が叩かれる原因も、大概こいつらがいるからだと思うようになってきた。
VB厨を食い詰めさす方法はないもんかね。
ヒィィィィィ ゴメンナサイゴメンナサイ でも、うちの職場にもやっとVS2005が入ってきました 徐々にVB.NETかC#に移行していくと思います 技術面のトップがC#に興味津々で新人にC#で開発させているのでC#メインになるかも
「信用ならない」とか言って標準提供されてるもまで自分で作ろうとして(結局間に合わなくて) 「最初から無理なんですこんなの!」とか逆ギレしてたアフォおったな・・・・
369 :
仕様書無しさん :2006/11/05(日) 18:18:43
>>367 なんか似たようなことを考えた事があったけどさ・・
御大の口から聞くと重みが違うな。
>>369 別のバージョンでは ken と C になっている
本物なのか本人に質問した人は居ないのでしょうか?
一番下の「いわずもがなの訳注」を読め
ていうかurlよく読め。
>>373 ジョークだねw
ここのジョークのリンク先、面白いねw
375 :
仕様書無しさん :2006/11/06(月) 08:41:41
いやいや、君のほうが大物だよ
>>378 自分の非を認めたくないもんだから逆切れしてる上司?
そりゃあ、会社辞めようと思うに十分な発言だ
>>375 キタ━━(━(━(-( ( (゚∀゚) ) )-)━)━) ━━ !!!!!
VB厨ってマジ、アホだな。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
>>381 お前は嫌いだが、今回ばかしは意見が合うな。
というか、本当にこんなVB厨がいるのか・・・?
想像ができないんだよ。
383 :
仕様書無しさん :2006/11/06(月) 21:52:37
筋金入りのVB厨はしっかりしたGUIを作る。
大概保守性は悪いが、作成者を安価で飼い殺しにしておけば問題ない。
>>381 のような糞コテと、それに安易に追随する
>>382 のような言動は、
VB案件からJava案件へと飼育場を変えられた「1ダースで10セント」のPGによく見受けられる。
まぁ、アレだ。
VBだろうがコボルだろうがバカは去れ。
385 :
仕様書無しさん :2006/11/06(月) 22:38:08
>>384 お前のレス見て東京kittyを思い出したw
油豚ってまだ生きてるのかな。
違ってたらゴメン 荒れてる原因のソースって フレームオブジェクト使えば一発で解決するんでは?
関数作れば一発で解決するのに
話は変わるけどさ 無限ループって恐くね?www
マジ、ループw バロスwww 誰かマ板らしく、ループ抜けるロジック提供してよw
goto >401
ピーーーーーーーーーーーーーーーーーーーーーーーーーー
>401 に期待
Ctrl+C
Ctrl+V
Ctrl+Z
Ctrl+A, Del, Ctrl+S, Alt+F4
402 :
仕様書無しさん :2006/11/08(水) 20:23:15
404 :
仕様書無しさん :2006/11/08(水) 23:26:18
>>339 のコードなんだけど、
オレはループでまわしてチェックするんだけど
うちの会社では、
>>339 のように記述しろと言われた。
なんでも「誰が見てもわかるコードを書け」とのこと。
この会社辞めてようと思った1年目の夏。
「誰が見ても糞だとわかるコードを書け」
そもそも簡潔なコードは見やすいコードなんだけどな 冗長に書くことでかえって保守性が下がるということが判らないんだろうか
If Not Chk_Log(0).Value=0 Then ElseIf Not Chk_Log(1).Value=0 Then ElseIf Not Chk_Log(2).Value=0 Then ElseIf Not Chk_Log(3).Value=0 Then (ry Else エラー処理 End If ダメカナ?
苦肉の策というやつですか
しょうがくせいがみてもわかるこーどだけでつくったら とてもわかりやすいでしょうねw
>>404 それは、「誰が見ても馬鹿とわかるコード」じゃないのかw
誰が見ても見やす(ryとか言うのは結構だが、それはハードコードとは違うということをウチのバカに教えてあげてください。 脳に変数とかの「シンボル」を記憶する領域が無いんだろうな。。
404の上司は ' チェックボックス未チェック処理 If Chk_Log(0).Value = 0 And Chk_Log(1).Value = 0 And Chk_Log(2).Value = 0 And _ Chk_Log(3).Value = 0 And Chk_Log(6).Value = 0 And Chk_Log(7).Value = 0 And _ Chk_Log(9).Value = 0 And Chk_Log(10).Value = 0 And Chk_Log(11).Value = 0 Then MsgBox "取込むデータが選択されていません。", vbExclamation + vbOKOnly Screen.MousePointer = vbDefault Exit Sub End I こうなってても気づかずリリースして後にバグだとわめくんだな
話は変わるけどさ 無限ループって恐くね?www
For i = Chk_Log.Lbound To Chk_Log.Ubound If Chk_Log(i).Value <> 0 Then ExitFor Next i If i = Chk_Log.Ubound Then エラー処理 End If
If i = Chk_LogUbound + 1 Then だったな・・・( - _ - )
そーいうミスする香具師が居るから
>>339 のように書けってことに
なっちゃうんだろうな。
だったな・・・( - _ - ) じゃねぇよ! 失せろ。クソVB厨。
>>404 単純なループを理解できない奴なんてお前くらいなもんだって言ってやれ
>415 ミスはともかくそれは読みにくい言われても文句は言えんな
>401 俺は >396 中断 >397 ^V >398 入力の終了 エディタで >399 するぐらいなら more > file で即 ^Z
>415 そのコードで、「誰が見てもわかるコードを書け」といわれるのは、 むしろやんわり諭している内と思われ... 漏れの配下なら、書類コピー担当かな。
424 :
仕様書無しさん :2006/11/09(木) 13:31:01
>>423 じゃぁお前がもっといいのを提示してみろよwwww
>>419 多いよなぁ..。
iをどこまでも抱えていく奴。
426 :
424 :2006/11/09(木) 13:59:48
これだと何かまずいっけ?
普通はこんなもんだと思ってたんだが
環境ないんで手書きでスマン
まぁ、ForはEachのがいいとは思うが
>>415 流用して
dim checkOK as Boolean = True
For i = Chk_Log.Lbound To Chk_Log.Ubound
If Chk_Log(i).Value <> 0 Then
checkOK = False
ExitFor
End If
Next i
If checkOK = False Then
エラー処理
End If
それだと処理が反対じゃね。
馬鹿ばっかりだな・・・
>426 いいよ。 お前は期待以上の仕事をする奴だよ。 これは大事な会議の資料だから、お前に任せるよ。10部コピーしといてね。
430 :
仕様書無しさん :2006/11/09(木) 18:19:20
>>427 何も考えずに適当にBooleanでフラグもらせただけだったからなwwww
こんな感じの書き方ってところで捕らえておいて貰えれば
いい訳苦しくなってきたなwwww
#pragma mark エラー処理 // 面倒い。 …
単体動作が前提ではあるが、複数のアプリ(それぞれ数千行)が main()関数1個で完結していた。 関数もマクロもコメントも無く全てgoto文で分岐処理していた。 もちろん仕様通りの動作はしない。
>432 そんな技能しかなくて、 数千行のアプリを幾つも作らなくてはならなかった奴も、 それはそれで可哀相なな奴だね。 ...いや、意外にそんな奴が威張りチラシてたりするのかな。
不具合対応のためソース解析してたらUsoData_Make()という名前の 関数があちこちで呼ばれていたことがある。 結局その関数は嘘データではなく正しいデータを作成していたのだが 仕様書が無いため解析してユーザに確認取るのにエライ時間が掛かった。 紛らわしい名前付けんな('A`)
>>434 人のプロトタイプを丸写しにして、プロジェクト名にいつまでも~SampleとかTESTとかが残ったり。
何故か俺の名前がアセンブリに埋め込まれていたり…。
For I= Chk_Log.Lbound To Chk_Log.Ubound If Chk_Log(I).Value = 0 Then MsgBox "取込むデータが選択されていません。", vbExclamation + vbOKOnly Screen.MousePointer = vbDefault Exit Sub End If Next I
437 :
仕様書無しさん :2006/11/09(木) 20:16:27
そーっすか
あ、全てチェックじゃなくてどれかチェックされてればいいのか じゃぁこうかな。 For I= Chk_Log.Lbound To Chk_Log.Ubound If Chk_Log(I).Value <> 0 Then Exit For If I = Chk_Log.Ubound Then MsgBox "取込むデータが選択されていません。", vbExclamation + vbOKOnly Screen.MousePointer = vbDefault Exit Sub End If Next I
FILE* fp = fopen(...); if (fp < 0) { return -1; } おかしなファイル名食わせたらエラーで戻ってくるはずなのに 処理が続いて落ちるから何かと思ったら・・・ っていうかコンパイルできるのにびびった。警告も出やしない。
VBの時点で馬鹿だろw
>
>>441 >おかしなファイル名食わせたらエラーで戻ってくるはずなのに
C言語以前の問題として、
お前、プログラムがどうやって動作しているか
分かっていないだろ?
444 :
441 :2006/11/09(木) 21:31:01
>>443 そうでもないよ。
っていうか、なんでそう思ったの?なんかおかしなこと書いたか?
>>444 443ではないが、久しぶりに爆笑させてもらった
>そうでもないよ。
なにを根拠に自信たっぷりなのかww
やっと、クソVB房が消えたてきた。
>>441 エラーじゃないんだからコンパイルは通るっしょ。
あと警告でる/でないはコンパイラによるんじゃないっすか?
\|/ /⌒ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ゜Θ゜) < そうでもないよ。 | ∵ つ \___________ | ∵ | \_/ なんか、夏菓子す
FILE *fopen (const char *file, const char *mode) file で指定されたファイルを mode によってオープンし、成功した場合はファイルポインタを、失敗した場合は NULL を返す。
450 :
441 :2006/11/09(木) 22:59:24
>>447 警告ぐらい出そうなもんだよな?
そう思って、↓のコードをいくつかコンパイラに通してみたんだ。
int main(int argc, char* argv[]) { return (argv[argc] < 0) ? 0 : 1; }
その結果。(○: 警告出た / ×: 警告出ない)
× その仕事で使ってたコンパイラ
× VC8 (/Za /W4)
○ Cygwin gcc 3.4.4 (-Wextra)
× Cygwin g++ 3.4.4 (-std=c++98 -pedantic -Wall -Wextra)
意外とスルーされることが多いようだ。
どんなエラーや警告が欲しいのか理解できない
>440 お前は何処からそんなネタひねり出してくるんだ?
C言語では fopen が失敗した場合の返りは NULL で、NULL は 0 だから
>>441 のif文で拾えるはずもなく。
コンパイルで警告出ないのも、その程度仕方ないんじゃないかと思ってしまう。
・・・ヒント
ポインタに0以下は無いって事か?
訂正 0未満
ファイルポインタがマイナスになることは無いのに0未満の値と比較している演算に対して警告がでない・・・とか?
>451 推測だが 「存在しないファイル名(パス)を喰わせたら-1が返る」はずの関数があって ところが一向に-1なんて返ってこずに落ちるから「?」と思ってその関数の中身を見たら あのザマだったということでは。 441の「エラーで戻ってくる」はその関数が-1を返すという意味とオモタ。
fopenはCの標準関数だぞ
消えた(・∀・)てきた
466 :
441 :2006/11/10(金) 00:00:05
>>459-461 ちがうよ。
(fp < 0) では fp が FILE* なので、まず 0 が FILE* 型のヌルポインタに変換されるんだ。
その後、ポインタ同士の大小比較が行われるわけだけど、ポインタ同士の大小比較は
同じ配列内の要素を指すポインタ同士の場合以外は未定義動作ってことになってる。
んで、件の場合では常に偽と評価されていたわけ。
調べてるときに最適化かけたアセンブリ吐かせたら、ご丁寧に return -1 どころか
if ごと消えていた。そこまで分かってるんなら一言伝えてくれと。
>>462 その推測のとおり。
467 :
441 :2006/11/10(金) 00:02:55
さっきから何度も fopen() の仕様を教えようとしてくれている人がいるけど、 何が言いたいのかさっぱり分からない。
>>446 ( ・∀・)つ〃∩ ヘェーヘェーヘェーヘェーヘェー
勉強になりました。
明日ダメ上司にこのこと言ってみよう。
上司「なに?」 「やっと、クソVB房が消えたてきました。」
>>468 >>453 のリンクより
>FILE構造体はstdio.hに定義されていますが、コンパイラによって定義のされ方がすこしづつ違います。
これが言いたかったんじゃまいか?
>470 ワロタ
ifごと消えるのは想定できると思うんだけどなあ
>>470 のを元に追加してみた。
468 「課長、やっと、クソVB房が消えたてきました。」
課長 「なに?」
468 「やっと、クソVB房が消えたてきました・・・。」
課長 「(°Д°)ハァ??」
468 「てめぇのことだよ、クソ課長が!!」
課長 「スマソ・・・・。」
消えた(・∀・)てきた
>>473 未定義動作の結果を想定できるなんて奴は知ったかぶりに違いないぜ。
fopen() の仕様を教えてくれようとしている人の気持ちがよくわかる。
日本語って難しいな・・・
1万行の構造体を見た時かな。 しかも1個じゃなくて12個もあった。 設計がまずいのか、 それとも自分がレベル低すぎるのか どっちにしても、もう辞めたい。
>479 多分そういうCOBOLソースから構造そのまんま持ってきたんだな。 目に浮かぶようだ、12万行のDATA-DIVISION……orz
>>479 言語は何?
メンバとメソッドの数も知りたい。
おれも
>>415 的なコードの書き方するけどな。
ループカウンタ用の変数もその外で宣言して使うから、問題あるとは思わんのだが・・・
フローとして考えた時、意味が分かりやすければいいのじゃまいか?
long lLoop;
for(lLoop = 0;lLoop < x;lLoop++){
if(strList[lLoop] is "aaa"){
// 発見したのでループを抜ける
break;
}
}
// 発見したか?
if(x <= lLoop){
// 未発見
}
// 発見した
>>441 ファイルオープン成功時、fp にアドレスが入るとして、
アドレスはunsignedだからfp < 0という比較は通用しない(というか想定どおりの動作にならない)かと・・・
って所でみんな突っ込んでるんじゃね?
前の仕事で40近いおさーんが、ある設定読み込み構造体を作る時 typedef struct _a{ char szText[10]; int nNum; }a; // 定義記述間違ってたらすま を10個用意すればよい、という話を聞いて、 typedef struct _a1〜からa10までを別々に定義してた。 これじゃループで設定も拾えないし、何を考えたんだろう?とまわりがみんな悩んでしまった。 なんか常識と思ってることが別の人に通じないって結構あるよね。
>>484 すまん、ちょっとよく分からんのだが、詳細キボンヌ
>>482 おまいがそうしたいならそうすればいいし、別に問題は無いよ
ループ制御変数はループ内でしか参照しないってこだわりのある人間にはそれなりの理由があるのだが
気にするな
>>487 thx
ちょっと安心した(なんかおれだけとんでもない非常識人かと思ったサ)。
消えた(・∀・)てきた
>>466 >同じ配列内の要素を指すポインタ同士の場合以外は未定義動作ってことになってる。
言語仕様としてそう決まっているのはそのとおり。
でもコンパイラが、ポインタ変数だけを見て、それらのポインタが連続する要素を
さしていないことを判別することは難しいんじゃないか?
# ポインタ値の元をたどればわかるときもあるかもしれないが、わざわざそんな
# ことはしないだろう。
やっぱりコンパイラとしては、式「p<0」は、「非負数<0」とみなして意味のない
比較式だと指摘するのがせいぜいではないのか。
そういえば、
>>450 のgccが言った警告はなんだったの?
「不連続要素をさすポインタの比較には意味がない」とちゃんと言ってたの?
-Wallにしてないから?
>>488 俺はチョンボ避けにフラグ立てるほうが安全なので普通そうする。
絶対に仕様変更や仕様追加が入らないシステムなら問題は出ないだろうが、
後で他人がメンテする時にそのiLoopを勝手に拝借してあまつさえ判定前に
変更でもしようものなら・・・
もちろん影響も考えずに勝手に変更した奴が悪いんだが、ループ変数をずっと
持ちまわってるとそういうバグが出やすいからな。
これまでそんな不具合を大量に見てきたから、自分も他人もあまり過信しない
ほうがいいと思ってる。
Delphiだとループ抜けた後の制御変数をいじろうとすると「値は不定」という警告がでるよ
Delphiで開発という時点で会社を辞めたくなる。
496 :
仕様書無しさん :2006/11/10(金) 13:05:00
>>482 最近は
for i as integer = 0 to 1
とか書けるんでな
外で宣言する必要がないんだよ
つうか、そういうのをフラグに使用するとミスの元になりそうだしさ
>>495 そうか?使える人間にしてみれば、Delphiでできるならそれに越したこた無いな。楽だし。
Delphi自体の未来とかには別に興味ないけど。
そこで22ですよ。 つーかね、 for( int i = 0; ... ) { }
書き途中でいっちゃった。 for( int i = 0;...) { //syori1 } for( int i = 0;...) { //syori2 } でエラーになるVCをなんとかしないとダメだと思うんだ。 スコープの扱いが正しければforの外で参照できないから問題ないわけで。
それエラーになるの?
{for( int i = 0;...) { //syori1 }} {for( int i = 0;...) { //syori2 }} とするのもアレだな
>>500 それエラーになるの?
いつの話?前世紀?
VC6じゃね?
Cでも void main(void) { { int ii; }
Cでも void main(void) { int ii; { int ii; } } とか書けるんだよね・・・
>>503 古くても2003年。
というのは、VisualStudio.NET2003のC++でもデフォルトではエラー扱いだったような。
>>500 は、C++仕様が変わって通るようになったはずだが、結構前だった気がする
その辺はコンパイラオプションで指定出来るんじゃないの?
仕様が変わってというか、最初期のVC++はC++ の仕様が きっちり確定する前に出たので変な仕様になっていた。 その後C++の仕様が標準化され、「通る」ということになったわけだけれども 「漏れのコードがコンパイルエラーになるぞごらぁ」という開発者が出てこないように、 かなり後までオプションなしのデフォルトでは通らないようになっていた。
>>506 で、JavaScriptで罠にはまる...
開発者「漏れのコードがコンパイルエラーになるぞごらぁ」 Microsoft「俺のWindowsがコンパイルエラーになるぜwwwwwwwうぇw」
512 :
仕様書無しさん :2006/11/11(土) 00:07:58
>>500 #define for if(0) else for
513 :
仕様書無しさん :2006/11/11(土) 01:25:54
pabrik statik boid mein(string[]args){
>>491 gcc -Wextra で "ordered comparison of pointer with integer zero" って出たよ。
ヌルポインタは要素を指していないのが確定しているから、ヌルポインタ定数が
大小比較の対象として不正なのは完全に判別できるんだろう。
ちょっとした勉強会になったね。 皆さんレベルアップしましか〜?
>>493 そこまで深読みするおまいの人生経験に涙。
たしかに一度味わうとかんぐるよな。
おれはポインタ類はなんでも初期化、解放時
x = NULL;
するようになった。
同じポインタ変数解放せずに取り直して使いまわしする香具師がいたので・・・
>>517 ガベージコレクタのような機能のことをいってるのか?
だとしたら、まだまだ甘いな。
>>518 いや C++ なら auto_ptr や標準コンテナ使えば、
その手の問題を解決するために x = NULL なんて
書くこともないだろうということ。
>>519 うん。
でも、デストラクタで実装したほうが、安心な気がする。
>>520 気のせいだから、標準ライブラリぐらい遠慮せずに使ってください。
>>517 new、delete、基本ポインタは0初期化されている、の事を指摘してるのかな?
一応C++は使えるんじゃないかな?
>522 >基本ポインタは0初期化されている kwsk いつからそんな親切になったんだ?
基本ポインタってなに?
NULL が 0 だからという奴は実装と仕様の区別がついていない
ログインIDに 「'or 1=1 or'」 と入力すると来る人拒まずなWebアプリ。 sanitizeしといてね。
Hoge* hoge = new Hoge(); delete[] hoge; if(hoge == NULL) printf("ここは表示されない");
>>525 NULLは0であると決まっているが、きみは何を言いたいのか?
530 :
仕様書無しさん :2006/11/13(月) 22:29:12
hogeをdeleteした後で、 hogeが参照できないのに比較を行っているとか? 詳しい人解説キボンヌ
>>509 >仕様が変わってというか、最初期のVC++はC++ の仕様が
>きっちり確定する前に出たので変な仕様になっていた。
VC++を弁護しときたいwのだが、「変な仕様」ではない。
たしか、C++規格ドラフトが最初そういう仕様だったので、VC++はそれにあわせただけ。
非難するのなら、ドラフトから心変わりして規格を確定させた人のほうへ。
>>529 本来nullは他のどんな値とも被らない値じゃね?
>>530 ちょっとおちついてから
>>528 を見直せ。
hogeの値はnew Hoge()の戻り値が代入されてから変更されてない。
だから、hoge値がNULLであるはずがない、ということ。
>>532 というより、どこもさしていないことを表すための値だろ?
# nearとfarのポインタを混ぜて使えば、なんかかぶることもあるんじゃないか。知らんけど。
deleteしたらどうせそのポインタは使えないんだからnullにセットして欲しい
ヌルポインタ: 何物をも指していないことが保証されているポインタ値。 ヌルポインタ定数: 整数0。ポインタ値が必要とされるべき場所にこれを書くと ヌルポインタに変換される。通常はマクロNULLが0と定義されている。
まちがった ×整数0 ○定数0
しかも528のコード、インスタンス1個しか作ってないのにdelete[]かい。 突っ込みどこ満載だな……
540 :
仕様書無しさん :2006/11/14(火) 00:05:59
void NskDriverKaraGentenOffsetWoYomikomu(); ・・・あのそのネーミングセンスどうにかならんか? 確かに意味はすぐ理解できたが・・・
>>540 ダサイし一見よく分からないが
読んですぐに何やっているのかわかる、というのは興味深いな
・・・と書いたところで日本語プログラム言語を思い出した
何をしたいのかはわかっても、 "で、どうしろと?"となるからあまりよくは無いがな。 void型、引数なしでどうやってドライバ指定するですか? 読込先はどこですか? といったことがさっぱり読み取れない。
>>540 変な略称使われるよりは断然マシだと思える。
void ReadOffsetForNskDriver(); こんな感じかな。 使いやすいのだと、どんな名前になるのかな?
OffsetじゃなくてPivotじゃね?
546 :
仕様書無しさん :2006/11/14(火) 03:13:45
//問12 A+B=? 例文のコメントもそのままコピペされとった('A`)
547 :
仕様書無しさん :2006/11/14(火) 07:41:26
sleep を見ると やる気ゲンナリする
俺らが徹夜で働いてるのにプログラムが寝るなんざ許さん、とか?
>>528 newしたやつをdelete [] してることと
deleteしただけのポインタをNULLと比較してこと
どちらをつっこんで欲しいんだ?
う、後ろの穴に・・・
じゃあまず指を…
>>550 >deleteしただけのポインタをNULLと比較してこと
deleteしただけだと、ポインタの中身はどうなるの?
わざわざつまんない突っ込みをする人って相当つまんない人間なんだろうなぁ
わざわざつまんない突っ込みに突っ込みをする人も相当つまんない人間なんだろうなぁ
無理やり感があっておもしろいね
>>558 どうにかなっちゃうときもある。
# 重デバグ環境とか。
重出バグ環境 読み方違うだろ、ってつっこみはいらぬ
561 :
仕様書無しさん :2006/11/17(金) 01:00:46
実際にはソースみて、云々っていうか、設計資料を見て落胆することのほうが殆ど。
562 :
仕様書無しさん :2006/11/17(金) 01:05:36
今さ、1年前に自殺した会社の先輩が作成したプログラムを 改修しているんだけど、ソースコードのコメントの中に 先輩の当時の心境がコメントアウトされているのを見つけたのよ。 /* 2005/05/20 AM4:12 このプロジェクトを最後の仕事にすることを決めた。 最後と決めたからには、みんなに迷惑をかけないように 残りの力を振り絞ってがんばろうと思う。 みんながんばれ!!(^o^) */ このプロジェクトが終わった翌日、 睡眠薬を大量にのんで亡くなってるのが発見されたのよ。 すみませんが先輩。 こんなコメントを残されても鬱になって仕事になりません。
苦しがっている人が無理して(^o^)とか使っているのを見ると なんだかグッとくるものがある。 ネタであってほしいが、現実か・・
最後の力振り絞っちゃったのかよ('A`)
// この辺から怪しい ・ ・ ・ // この辺まで ・・・何が怪しいんだっ!
ロジックが。
spellが combine○ conbine×
記憶が。
569 :
仕様書無しさん :2006/11/17(金) 14:21:59
/*DB用に確保したメモリーを解放するプログラム*/ /*事前にBudget情報がファイルにセーブされているかチェックする*/
// 2003.11.9. 仕様変更対応 K.H 前後に何のコードもない。前後に空行が10行ぐらいある。 いったい何の対応をしたのか教えてくれ・・・ しかも11/9は日曜日で、誰一人出勤してなかったはずなんだが・・ その人はとっくに会社をやめて、今はどこにいるかも不明
571 :
仕様書無しさん :2006/11/17(金) 14:39:24
>>569 英字は全角、カタカナは半角で統一って珍しいな。
>570 //ぼくはここにいるよ
塩漬けになってるよ
>>572 どうやら、シリウス星系に居るみたいだな。
// 僕等がいた 放映中
// 不具合対応ここまで(後は任せた)
/* 不具合に対応した */ // という夢を見た
580 :
仕様書無しさん :2006/11/18(土) 00:39:48
//や/**/ってコメントを書く際に使用するんですよ
// 俺のこのプロジェクトが終わったら結婚するんだ
582 :
仕様書無しさん :2006/11/18(土) 01:00:34
だから・・・ // あとはコメント っだっつってんじゃんよ
583 :
仕様書無しさん :2006/11/18(土) 02:51:43
文字列を追加するのに、 sprintf(s, "%s hoge", s); みたいな書き方をしてるコードを見つけたけど、これってまずくね?
>>583 自分で書く気にはならないが、溢れなきゃ大丈夫だろう。
最初の\0を読んだら、そこに上書きする前に%sのスキャンが終わるさ。
if(xx < 0){ // エラー発生(通らないはず) // 通らないはずだから想いを告げてみる ErrorFunc("xxちゃんが好きだ!",xx); return xx; }
まあさ、コメントで遊ぶ?ってのはラマーなら誰しも経験あると思う
588 :
仕様書無しさん :2006/11/18(土) 12:48:22
>>587 わからないでもないけど敢えて聞こう。
ラマーってなに?w
愛人
あれだろ、出産をスムーズにするためにラマーさんが考えたってやつ。
char* hoge = "foo"; char* hage = strcat(hoge, "bar"); 先輩、それ溢れます。信じてください。
クラブヘッド
>>584 >溢れなきゃ大丈夫だろう。
実装次第。∴拙い。
ボンバヘッド
>>592 あふれる以前にコンパイルエラーじゃないのか
>>592 hogeが指してるのはconstな領域だけどhoge自身はconstじゃないから通る。
つか溢れる以前に書き込める領域じゃないけど・・・。
たまにコンパイルエラーじゃないの?ってのが通っちゃうから困るよな
>>589 それ、街頭で若奥様インタビューしてくんねーかな。
>>598 「仕様を理解していないお前が悪い。」ってのがC言語の仕様でしょ?
ANSIの手でかなりPASCAL化したとはいえCはCだからなあ
>>598 はただの馬鹿だと思うが
日頃、馬鹿馬鹿言われてる奴に限ってこういう所で他人を馬鹿にする法則w
日頃、馬鹿馬鹿言われてる奴に限ってこういう所で他人を馬鹿にする法則w
日頃、馬鹿馬鹿言われてる奴に限ってこういう所で他人を馬鹿にする法則w
よっぽど悔しかったらしいw
よっぽど悔しかったらしいw
な、なんの嫌がらせなんだ? どうにも改行して書き直さないと気に入らないのか?
な、なんの嫌がらせなんだ? どうにも改行して書き直さないと気に入らないのか?
このスレ最近、アホが増えまちたね。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
>>609 いよぉ。糞コテ。
そういえば、最近あんまりでてこないね?
髪切ったってことか?
髪切ったってことか?
髭切ったってことか?
猫の髭切ると真っ直ぐ歩けなくなるぞ。 よろよろして屋根から落ちる。
髪型が変わっただけで平衡感覚を失うキャラもいるよな。
猫の髭切ると真っ直ぐ歩けなくなるぞ。
よろよろして屋根から落ちる。
そういう奴は
>>609 と一緒に10連続徹夜でもして死ね
>609 お前以上のアホは居ないみたいだけど?
>>619 まず素手で尻毛全部引っこ抜いてから、スレの流れ見てみろ。
ケツ毛バーガーの話はスレ違いだ、他所でやってくれ。
for(int i=0; i<3; i++) switch(i) { case 0: func0(); break; case 1: func1(); break; case 2: func2(); break; } 初めて見たときの感動は忘れません。
それはアレだ。 多分どっかから引っこ抜いてきたんだよ。 それで不要なソースを消したらそうなったと。 きっとそうだ、うん。 ・・・うん。
いや
>>622 みたいな
ヴァカな書き方はたまに見ますよ。
これ最適化してくれないんだよな・・・
626 :
仕様書無しさん :2006/11/21(火) 12:25:05
10 private sub hoge( ByVal c as integer ) 20 dim a as integer 30 if c = a then 40 goto 80 50 else 60 goto 100 70 end if 80 getdata1() 90 exit sub 100 getdata2() 110 end sub いや、VB6でこれ見た時は30秒程時間が止まった後、大爆笑したね。 正面の奴がマジで心配そうに「だっ大丈夫か!!おい!!!!」と 回り込んできて身体を揺さぶったぐらい、涙が止まらなかった。
>>626 これはすごい。COBOLerでもこんなソース書かなくね?
>>626 >いや、VB6でこれ見た時は30秒程時間が止まった後、大爆笑したね。
>正面の奴がマジで心配そうに「だっ大丈夫か!!おい!!!!」と
>回り込んできて身体を揺さぶったぐらい、涙が止まらなかった。
全然文才ないねぇ・・・
そのソースと比べても、似たり寄ったりの匂いがする。
>626 そういうのを見ると、つくづくVBに算術IF文がなくてよかったと思う。
>>629 VB には IIf があるよ
選択されない方の式も評価してくれるスグレモノだ
IIfはどっちかというと3項演算子のナカーマで、制御の流れには直接影響しない。 算術IF文はスパゲッティをフォークで掻き回すようなニクイ奴。
Fortranの文法の中でも不評でしたからね。しかし、古い資産があるから廃止予定に 上がりながらもずっといき続けている頑張り屋さんです。 >626の部分を書き換えるとこんな感じかな。FORTRANの古い世代がVBやCに来た時に ときどき見かけた記憶がある。 IF (a - 0) 100, 80, 100 80 CALL getdata1() GOTO 120 100 CALL getdata2() 110 ...
俺も626もそのソース書いた奴も目糞鼻糞だと感じた人間の一人
636 :
仕様書無しさん :2006/11/21(火) 22:12:42
637 :
仕様書無しさん :2006/11/21(火) 22:14:28
ぬるぽ
638 :
仕様書無しさん :2006/11/21(火) 22:25:35
>>636 一般論として、再帰呼び出しはコストがかかるので、再帰的なデータ構造を扱うときや
再帰的なアルゴリズムを実装する時以外は使わないほうが良い
そのコードの場合だと、再帰呼び出しにかかるオーバーヘッド分実行時間がかかるのと
スタックを無駄に浪費する。
あと、素直にループで書いたほうが可読性も良い
>>636 あー、そんなコードを見たことある。
n 秒待つプログラムなのだが、1 秒ごとにステータスバーのメッセージを更新して、自分を呼び出していた。
こんな感じ
void wait(Window window, int time) {
if ( time >= 0 ) {
if ( window.isCancel() ) {
return;
}
window.setStatus("あと" + time + "秒待ちます");
Thread.sleep(1000);
wait(window, time - 1);
}
}
この関数を使って、「15分待つ」などという処理をしている箇所があったりして、もうね・・・・ orz
641 :
仕様書無しさん :2006/11/21(火) 23:25:30
はぁ? 可読性なら再帰のほうが上だろ
>>640 それC丼?
なんか、見た瞬間に萎える。
>626 8〜16bit時代のBasicじゃあるまいし、 「VB6で」行数ですか。ハハハ
C++でgoto使われてた時、みんななら 1.否定する。 2.まぁ、時と場合でしょ。的に見逃す。 おれは2.でいった。たしかに完全否定は難しかった・・・
646 :
仕様書無しさん :2006/11/21(火) 23:39:28
そんな細かなことばかりいってるからいつまで経っても いっぱしのソフトが書けないのでは?
>>643 IDEのオプションかなんかで行数が表示されるの?
それとも行番号は手打ち?
>>645 gotoはいろんな言語である。
なんか、基本中の基本でね?
>>648 おれもそう言えばよかったかな。
「gotoはいろんな言語の中にあるんだ〜よ」
ある、なし、
ってLvじゃないんじゃね?なくしたい理由、使いたい理由、ってのがあるだろ。
>>640 はロジックとしては別にいいんでは?
関数型言語の再帰処理とか、そんな感じじゃない?
651 :
640 :2006/11/22(水) 00:13:24
>>642 実際の使用言語は Java だった。
>>650 確かにね。ロジックとしては正しいと思う。
でも、この場合は再起を使わない場面だと思う。
いや、ありえない処理だろ 再帰にしなくてもいいし
FORTRANに算術IFがあるなら、VBにも過去の遺産でOn...GoTo、On...GoSubがあるぞ。 On A GoTo 10, 20, 100, 200... で、変数 A を整数化した値が1なら10へ、2なら20へ・・・ まあ昔は重宝したんだけどね。
655 :
仕様書無しさん :2006/11/22(水) 01:23:44
On Error Goto AAA以外のGoto Gosub Exit Functionは禁止希望
>>654 君がプログラムを書く職業についているのなら
転職した方が世のため人のためだ
再帰をループにした場合、通常はスタックフレームに保存される情報を
ポインタの配列か何かに保存してループをまわるたびに参照更新する必要があるのだが、
>>640 を無限ループに変換した場合その必要はない。
つまり必要の無い再帰なのです。
>>654 手続き型言語での話が暗黙のうちに前提条件になってる上で話してるのに
賢しげにそんな例外持ち出してくるやつは頭悪いw
658 :
654 :2006/11/22(水) 01:39:32
>>656 だから効率的ではないと書いたんだけど、
頭固いとそれも読めないんですかね?
>>654 末尾再帰はともかく、
>>640 で再帰はないだろ。
アルゴリズム的に再帰じゃないし、終了条件とループ単位の
変化量がひとまとまりになってるforの方が分かりやすい。
そのサイトは拡大解釈しても「(手順を踏めば)再帰は再帰で書いてよし」程度にしかなってないぞ。
>>657 最近の JVM は末尾再帰をループに変換してくれたりするよ。
いや IBM のだけで、SUN のは駄目だったかな。
>>656 Thread.sleep みたいなメソッドを一関数内に一回しかつかえないようなしょぼい実装の環境があったな。
662 :
654 :2006/11/22(水) 02:05:49
>>640 のコードが良いとは主張しないです。
ただ、それを頭からバカにする人に、
パラダイムに縛られた思考の狭さを感じたもので。
gotoを使ったこともない人が、goto使ったらおしまいと全否定するのと同じ様な。
あるツールがスクリプトとしてSchemeを使ってるんだが、 書き方が下手で再帰がループ最適化されないでやんの。 500回程度の再帰でスタックオーバーするのに ウン十万円の製品として売られているから困る。 客にデバッグさせるなよヽ(`Д´)ノ
>>662 いや、
>>640 のコードは全否定されても仕方ないように見えるがな。
これを肯定するのは、相当問題だと思うぞ。
再起を全否定している発言に対しての言葉だったらよいが、誰もそんな話はしていない。
>>640 のコードは、goto 問題とは次元が違う。
末尾再帰最適化を強制するように言語仕様を変えればいい!
なんて思ったけど
>>663 の話し聞いてると意味なさげだねえ。
>>640 の作者が末尾再帰かの判断能力を有してるとは思えないし…
どうでもいいが、sleepしたら現在時刻を再取得しろよ…
再帰にしちゃ駄目なパターンの典型じゃね?
やはり典型というからには非末尾再帰じゃないといかんな。 非末尾再帰にして初めて、どの言語でも再帰しちゃ駄目な典型例になる。
654は、とりあえず文句を言っておきたいタイプなんかね? それとも、何事も即座に否定しない、思慮深い俺様カッコヨスみたいな感じ? どっちにしろ激しくウザイ。 結論をすばやく出せる=思考が狭い、ではないっての。アホか。
なんでタイマーイベント使わないんでつか?
なんでアホコテは死なないんでつか? と同じレベルの質問だな
辞めようと思ったというか帰ろうと思ったというか これ書いたヤツをゴルフクラブで脳天フルスイングかましたくなったというか VB6.0でマスタのデータ一件だけ返す処理 //こっから Dim SavDat(32767) As String Dim Tmp_Rs As rdoResultset //SQL構文構築とか省略 Do Until Tmp_Rs.EOF SavDat(i) = Join(Tmp_Rs.rdoColumns, "$") Tmp_Rs.MoveNext Loop Return SavDat //ここまで MoveFirstしてない 変数見ただけだと型不明 一件だけ返すのに何で配列? つか何でJoinで全列? お前の事だ繁田
>>668 こういう浅い人が上にいると、若い人も悪影響与えるんだろうな。
>>640 の肩を持つ奴は現場を知らないんだろ。
再帰は...使わないと処理できないケースでの最後の手段。
俺10年以上やってるけど数回しか使った事無いわ。
愚者は経験から学び、賢者は歴史から学ぶ って言葉があったことを思い出した。
>>672 はいはい、あんたは深いのね
でも日本語は正しく使おうね
676 :
仕様書無しさん :2006/11/22(水) 17:43:10
>>673 が10年以上何をやってきたのか禿げしく疑問に思うのは漏れだけ?
そうだな
うーん。
じゃあ実務で再帰を使用した例を提示して見てくれないか?
自分は
>>673 より使用頻度が低いので、是非御教授いただきたいなぁ
もちろん
>>640 みたいなのは論外だよ
フォルダ内の検索とか。フォルダ内にフォルダがあれば再帰する フォルダ内の全フォルダ・ファイル削除なんかでも再帰してやったりとか
漏れは業務系のロジックしかやらないから、再帰は使ったことないな。 概念は理解してると思うけど。
>>679 直感的には再帰で書くのが分かりやすいのね。
オレは、学生時代についた先生に再帰→反復の展開を指導されていたので...
PLC のプログラムをなんとか図に可視化するコードで、 「再帰はダメ」と言われて自前でスタック持ってあれこれした ことがあったなぁ・・・
俺は
>>673 に同意。
if文なんかの括弧の対応やコメント(/**/)のネストを掘り下げて
解析するのには再帰使ったほうが楽だった。
あと、テーブル自動連結させるクエリ生成エンジンにも副クエリの
展開部分に再帰使った。
後は全部ループでやったぞ。
つか皆好きだねこの話題w
再帰も使えないこんな世の中じゃ
ホイミン
>>685 ホイミンwwww
お前、おもしれ〜よwwww
再帰どころか、ホイミンw
687 :
仕様書無しさん :2006/11/22(水) 21:55:15
#include <iostream>;
画面から直接DBアクセス しかもR/Wそれぞれのメソッドで別個に接続処理 値を取ってくるメソッドでは複数取ってくるからとByRef引数が一杯 こんなコードしか書けない人に品質を語って欲しくないと思った。
VBの Sub0001 (a, b, c) は本当よく見るわ
>688 効率云々と品質は必ずしも直結しないからなァ… 例えばCOBOLerのクソ効率悪いコードでも、 恐るべき品質(殆ど不具合が無い)を誇るケースもあるし。 それに何だ。 1000行関数書いたり、仕様不具合を「制限事項」で片付けたり、 無断で仕様決めたり、スーツにボロいスニーカーで納品行ったり、 出向先でAA入りの回覧(他社の人間も見る)を出したりする奴に 品質語られた漏れよりはマシだと思うぞ。
「品質の定義」が個々のレスで違うな。
行間を読めないようでは掲示板を利用するのは難しい。
品質とは品管のハンコが押してある物が「良い」 障害票が残っててハンコがもらえないものが「悪い」 品質が良ければお家に帰れる。 悪いと巻き添えくらって机の下でひっくりかえる。
納品したもん勝ちのシステムが世にはばかってるからな。
建前では納品=顧客側の貧寒チェックOK、ということだからな。法的にも。 そこにつけこんで「とにかく口で丸め込んで検収さえくれば」とやって 後は「検収済みの件なので、これ以上はできない」とかいう側もあれだが・・・
696 :
656 :2006/11/23(木) 12:33:53
>>656 は間違えたのに誰も指摘してくれないから自分で修正
>>640 はtimeが再帰に入るたびにそれぞれの環境に保存されるから
全く無駄なわけではないが、
再帰から脱出しても使用されずに捨てられるからほとんど無駄
末尾再帰で書ける処理を人間様がなぜ苦労してループに直さないといけないんだ。 そんなのはコンパイラやインタプリタ等の言語処理系の仕事であって人間様がいちいちやりたくねーよ。
698 :
673 :2006/11/23(木) 17:25:34
>>679 の様なフォルダ検索も一例だね。
あとは構文解析とかかな。
一般化すると階層数が不明なツリー構造の検索。
ツリー以外だと、『/tmp/a/b/c/d/e.txt に出力する』を実装する場合、
再帰を使わなくても可能だけど使った方が楽だよね。
パス長っていう制約事項も有るのでスタックオーバーフローも心配無いし。
>>697 その辺は誰も否定してないけど…なんかあったのか?
>>700 正直、
>>696 が言いたいことが今ひとつ掴めないが、
「資源を無駄にすると分かっているものを...」ということでしょ。
末尾再帰でも、何でも自動で展開できるわけではないし。
そもそも、事例は、「再帰で書いて分かりやすいのかな?」と思う。
まあ
>>640 に関しては、無限ループの方が直感的だよな。
でも、他人の書いたソースならスルーすると思う。
自分では絶対書かないけど。
>>636 のコメントにもついているように、
機能と操作が分離されていない点の方が、
プログラミングの筋として重要だ。
再帰かループかというのは、処理系にも依存することで、
別に本質的な問題ではない。
どのように書くのが効率的かは、単に知識を付ければいいだけ。
そこをあげつらって得意になるのは、どうもちょっと。
704 :
673 :2006/11/24(金) 11:03:09
>>703 処理系に依存するの意味が解らん。
どんな処理系であれ再帰の方がループよりコストが高い。
効率的なコードとはコストが低い事を指すと思うのだが。
705 :
仕様書無しさん :2006/11/24(金) 11:54:18
>>640 この人が書いたソースの引き継ぎはしたくない。
なんだかデスマが待ち受けていそう。
int sum(int m, int n) { if (n == m) return m; return n + sum(n - 1); }
プログラマが正しく再帰を使ってることを前提として、そこを重点的最適化する処理系ならありそうだな。 コストが同じ場合は、書く速度が速いほうを選ぶほうが効率的だ。
>>704 > どんな処理系であれ再帰の方がループよりコストが高い。
その前提が間違ってるっつってんだろ。
自分の知識が正しいと思ってるやつはどこの現場にもいる
正誤はさておき、
>>636 リンク先みたいな人格のヤツは嫌だなぁ
>>706 コンパイル通らんな。
>>708 『つってるって』、今始めて出た意見だと思うが?
例を示せる?
最適化で再帰がループに化けるからっていうのは論点が違う。
712 :
708 :2006/11/24(金) 18:37:03
>>711 >
>>708 > 例を示せる?
> 最適化で再帰がループに化けるからっていうのは論点が違う。
704で
> どんな処理系であれ再帰の方がループよりコストが高い。
と言ってるがお前はこの世のすべての処理系を扱ったことがあるのか?
ないかぎり703の「処理系に依存する」が正しいに決まってんだろ。
ぶっちゃけ、再帰とループの境界ってどこにあんだ。 そっからすでに、言語依存だ。
正直、>679みたいなどこまで続くかわからない階層構造の処理を どうやってループにすんのかよく分かんね。 どんな処理でもどっちでもできるってもんでもないだろ? 別にどっちが優れてるとか比べるもんじゃなくて、ケースバイケースでそれぞれ 使うだけだと思うんだが・・・
do〜while()って知ってる?
>>715 フォルダ内の再帰処理をループでどうやって書く?
スタック使えば良いだろ
すまん、よくわからん。 できればちょっとコード書いてくれるとありがたい。
錆びるぞ
>>718 たとえばこんな感じ。指定ディレクトリ以下のファイルを列挙。(楽なのでC#)
List<string> getAllFiles(string dir)
{
List<string> result = new List<string>();
Stack<string> s = new Stack<string>();
s.Push(dir);
while (s.Count > 0) {
dir = s.Pop();
result.AddRange(Directory.GetFiles(dir));
foreach (string subdir in Directory.GetDirectories(dir))
s.Push(subdir);
}
return result;
}
721 :
663 :2006/11/24(金) 21:16:08
>フォルダ内の検索 まさに遭遇したケースその1だw この処理をする関数を呼び出したらスタックオーバーフローした。 最終行で自分を呼び出すように書いてはあるんだけど、末尾再帰にはなってなかった。
722 :
711 :2006/11/24(金) 21:16:40
>>712 > と言ってるがお前はこの世のすべての処理系を扱ったことがあるのか?
> ないかぎり703の「処理系に依存する」が正しいに決まってんだろ。
すでに小学生レベルの言い草だなぁ...
全ての処理系は知らんけど理屈からいって再帰の方が重いに決まってるよ。
ループの方が再帰より重くなる処理方法なんて考え付かないし。
>>720 結局、関数のスタック変数を使うか自前のスタッカーを使うかの差でしかないよね。
723 :
711 :2006/11/24(金) 21:39:10
>>720 再帰使う場合はこれで良いのかなぁ。C#知らんので推測だけど。
List<string> getAllFiles(string dir)
{
List<string> result = new List<string>();
result.AddRange(Directory.GetFile(dir));
foreach(string subdir in Directory.GetDirectories(dir))
result.AddRange(getAllFiles(subdir));
return result;
}
>>712 に突っ込まれない内に言うけど、これと
>>720 のを比べればC/C++で実装した場合、
再帰の方が軽いかも知れない。
スタッカーへのPush/Popのmallocコストが関数コールのコストを上回るかも知れないから。
だけど、これは再帰すべき処理だよ。
>>640 とか、階乗を求めるとかのスタッカーを必要としない処理の場合は再帰の方が軽い
はずが無いと思う。
>>722 >結局、関数のスタック変数を使うか自前のスタッカーを使うかの差でしかないよね。
もちろんそのとおり。でも関数呼び出しのスタック(再帰を使う場合)には、
使える量が有限かつ残量が予測しにくいという問題があるわけで、できれば避けたいのが本当のとこ。
特に最近マルチスレッドのアプリとかあるんでスレッド当たりのスタック減り気味だし。
ディレクトリのスキャン程度なら問題にもならないだろうけど、シードフィルとかを実装する場合には
自前スタックが必須。
こういうのは実見だよね。 階乗なんか最適化しやすい問題だし。 数字はループ部分のニモニック数。 無 -O -O2 -O3 ループ 6 4 4 4 再帰 再帰 6 5 ワロス 末尾再帰 再帰 6 5 ワロス 末尾再帰でなくても最適化するのには驚いた。 gcc4.0.0(i386)。他のコンパイラは持ってない(´・ω・`)がな。
再帰重いよと主張する人はしょぼいコンパイラのバッドノウハウに縛られている可哀想な人 ループは結局のところ再帰の機能限定版であり単なるシンタックスシュガーなんだから ループも再帰も同じことを表すコードなら現代的なコンパイラなら同じコードを吐く。
727 :
仕様書無しさん :2006/11/25(土) 00:11:51
>>726 そうかな〜。
例えばツリーのトラバースで自前スタックを使うやり方を知らないと、
再帰を使った深さ優先の処理しか書けないでしょう?
なんつ〜かどっちも書けて当たり前で、要件に応じて使い分けるだけのような…
>>700 再帰の使い方を否定してるだけで、再帰を否定しているわけじゃないように見える。
640の使い方を否定するヤツ vs 再帰を擁護するヤツ ってカンジで話の対象がずれてないか?
俺は 構造が再帰的→スタックが欲しい→再帰処理 でしか使ってなかったから、なんか違和感がある。
うーん、「再帰」って何だ…
730 :
726 :2006/11/25(土) 00:35:32
>>727 どっちかっていうと末尾再帰系統を念頭に置いてたから、
その辺の本当の意味で再帰的な処理はあんまり考慮してませんでした。
ようするに単に再帰のほうが重いに決まっているという根拠のない妄想的な偏見を嘲笑したかっただけです。
用件によって使い分けるのは当然というのは同意ですね。
探索系統なら自前スタックで書いておくと幅優先とかにも容易に置き換えれたりするメリットもありますし。
ちなみに663=725。
好きでもない言語(括弧多すぎ)を使って
再帰(ループでもええやんと思うことしばしば)を書き直すのに苦労したのに
使ってもないであろう人から擁護したい気持ちで
>>725 を書いたのは確か。
>(ループでもええやんと思うことしばしば)
というかループに直したところも多いw
再帰でかいたのにコンパイラの方で処理はスタックしてたりするよな
>>732 再帰呼び出し自体が、通常、スタックを使用して実装されると思います。
734 :
733 :2006/11/25(土) 12:31:31
しまった! 「処理がスタック(stuck)する」 は別の意味か...
>>726 主張が暴走して言ってることが馬鹿すぎるぞw
華麗にthrow
♥
例外起してどうするんだよw
再帰、学習本のころしか使ったことないや やっぱり機会が無いことには覚えないし忘れるよね・・・
華麗にcatch
俺がガッチリcatch(ex) { abort(); }
いつからここは上手いことを言うスレになりましたか
再帰厨がLoopしだしてから
while(true){
printf("ぬるぽ"); }
catch (ぬるぽException ex) { MessageBox.Show("ガッ!", "ClearNullpo", MessageBoxButtons.OK, MessageBoxIcon.Hand); }
はなしはかわるけどさ、無限ループって怖くね?
*/
なんかさ、色んな言語を同時進行したら コメントもごちゃ混ぜになるよねw もう、疲れたよ・・・
753 :
仕様書無しさん :2006/11/27(月) 22:47:01
std::vector<std::string> vecString; ってstd::stringをハードコーディングしたらテンプレートの意味ねーじゃんw
754 :
仕様書無しさん :2006/11/27(月) 22:53:35
>>753 え?
そういう書き方、ふつうじゃないの?
インスタンス化しないとテンプレートの意味ねーじゃんw
意味分からん。 漏れいつもそうちてるけど。
俺もざらにやってる
>>753 前後の文脈しだいだけど変数名から類推すると適切な気がしてならないけど。
>>753 けっこう多いよなw
あと
std::map<std::string,std::string> strMap;
って、std::stringとstd::stringをマップしたらマップの意味ねぇ〜じゃんw
みたいなw
>753 vecStringに数値でも突っ込みたかったのか?
>>759 いやそれも普通じゃね。
俺は設定ファイルのパース結果をmap<string,string>に突っ込むとかよくやるんだけど
俺もたまにstd::vector<std::pair<std::string, std::string> >とかやるな 数回しか使用しない内部データにいちいちtypedefとか面倒なんで・・・
>>753 何を言いたいのか全く分からん・・・。
vector 自身がすでにテンプレートだから、
> std::vector<std::string> vecString;
という使用方法は普通だしなぁ。
764 :
仕様書無しさん :2006/11/27(月) 23:41:21
>>753 ハードコーディングって言葉から察するに
いつでもstringとwstringを切り替えられるようにtypedef
でもしておけってことか?
initial_value = /*後で決める*/ // 10行くらいのコメント total += length;
「テンプレートの意味がなくなる書き方」っていう発想がわからんのだよな。
「あとあと面倒が生まれかねないから、
>>753 の書き方をせずtypedefを使ったほうがいい」
状況ならもちろんあるけれど、それはクラステンプレートではない型にも共通する
ノウハウであって、「テンプレートの意味」とやらがそれを左右しているわけではないし。
770 :
759 :2006/11/28(火) 02:02:32
ごめんなさいごめんなさいごめんなさい!! 753のワケのわからないレスに乗ってワケのわからないことを言いたかっただけです。 つまり釣りというかネタというかそんなところ。 map<string,string>なんて普通に使います。
STL使えるだけまし
772 :
759 :2006/11/28(火) 02:29:49
>>771 だよね。
STLを使える環境ってうらやましいわぁ。
Cすらまともに使えないバカばっかりだからウチは無理だ。
Cすらまともに使えないやつにこそ vector, list, map を使わせるべきだろ。 そんなやつらに可変長配列や連結リストや連想配列は作れないんだから。
何でもいいから、まずは定型化して欲しいな。 同じような画面が10枚有るのに中身が10人10色の作り方 されたんじゃSTLも糞もあったもんじゃない。
775 :
仕様書無しさん :2006/11/28(火) 05:21:28
>>773 いやぁ〜、理想?をいえばそうなんだけどさぁ。
Cもまともに使えない人はテンプレートとかメンバ関数とかイテレータ
だけでびっくりしちゃうと思うんだよね。
>>774 超優秀なPGにコードの既存・新規部分や担当に関わりなく設計レベルから
コードを改変していいリファクタ特権とかを与えるのはどうだろう。
バグDOWN、可読性UP、スタイルの一貫性UP、で(゚д゚)ウマーとかならないかしらw(現実は厳しいか)
effective stlでも読んだのが興奮してるだけじゃなかろうか
>>776 あれはいい本だけどな。
なんにせよ適用する際にはなら空気嫁と言ってるところとか特に。
778 :
仕様書無しさん :2006/11/28(火) 19:20:40
お前らまだいいよ クラスAのメソッドの定義でクラスAのグローバルインスタンスが使われてた・・・C++て恐ろしいな 鬱だ
>インスタンス ちょくちょくみるが、それインスタンスじゃなくてグローバルオブジェクトだろ。 インスタンスハンドルはアプリで1つだよ、基本的に。 JAVAや.NETのインスタンスじゃない。 だから、どこかのスレで見たが、ドラッグアンドドロップで他のアプリにドロップしてもWM_LBUTTONUPが利かない、ということが起こる、当然だが。 それと、mainへのエントリーの前にクラスAのオブジェクト作りたいんだろう、それは。 C++じゃあたりまえ。MFCのthe Appの唯一のグローバルオブジェクトもその原理で作ってる。 CやC++でプログラムのエントリポイントは、mainじゃなくてグローバルオブジェクトの基底クラスのコンストラクタとかグローバル変数、staticになるわけだ。
?
>>778 それってMonoStateパターンじゃね?
分野によっては有効なやり方だと思うけど。
>>779 誤爆?
783 :
782 :2006/11/28(火) 20:55:19
あ、ちがうな、勘違いだから無視しといて
>>779 こんな奴と仕事したくない、しゃべりだしたらうるさそうだなー
>779 Windowsプログラミングの「インスタンス」と OOP用語の「インスタンス」をごっちゃにしてるのか? 語源は一緒だが区別しとこうぜ。
多分OOP用語の「インスタンス」を知らないんじゃないか? 話のレベルが急に上がったり下がったりする マ板は恐ろしい所だぜ
フゥハハハァーーーーー
778はなんどもこのスレで恥かいてるやつだなw
779もな。
とりあえず、辞めようと思っただけで気が済まなくなったので 上司に退職宣言してきた。 それだけが理由じゃないけどな。
このスレに書くぐらいだから勿論ソースが原因なんだろうな。
そーっすね
木枯らしが・・・
ひまつぶし と ひつまぶし って 似てるよね
「ひまつぶし」という商品名の「ひつまぶし」は実在する。
いくらデスマ中でもひつまぶしの差し入れは無かったな。 最高で大晦日に手打ち蕎麦、しかも俺アレルギー。
>>798 そばアレルギーって、そば食べるとどんな感じになるの?
ジンマシンとか出る感じ?
アレルギーって大変だよね。 卵アレルギーとかって食いもんかなり制限されてかあいそう。
>>799 喉が痒くなってきて内側の粘膜が晴れ上がって息苦しくなる。
最悪の場合呼吸停止。
「ちんこすう」という商品名の「ちんすこう」は実在しますか?
「ようじょまんじゅう」という商品名の「じょうよまんじゅう」は実在しますか?
たぶんそれはない。 理由:売れないから
バカ売れっすよ
「余り物には福がある」ってことで 「剰余まんじゅう」 なんでしょ?
売れ残りっぽいから売れません
あねさん女房ほしい
クラス名・メンバ名に日本語使いまくりで こっちまで脳味噌膿みそうなプロジェクトに参加してはや数ヶ月…… >803-809はつまりそういう脳味噌が膿んだ識別子を晒してるんだよな? そうだよな?
英語でもドイツ語でも無い中華のソース辞めてくれ・・・
下呂の香り
>>810 言語何?.NET特にVB系?
昔VBが日本語おけな事知って「日本人なら日本語コード書くべきだろう」と日本語関数とか作りまくったけど、
あとから見たら人生最大の汚点になった・・・
(思ったより日本語って可読性悪いし、他言語プログラミングやってると日本語との相性も・・・
他人の開発内容で関数名、定数名に日本語出てくると「おおっ!」てなる)
>813 それがねぇ…… JavaっすよJava('A`) privateならどんな名前付けてもいいと思ってんのかメソッド名にまで日本語付けやがって そんなクラスの機能追加の作業とか振られたらもうねアボガド(ry あ、DB (Oracle)もテーブル名から列名から日本語ばっかし。 つかテーブル名自体は英数字で付けてて、シノニム日本語で切ってんの。もう見てらんない(´・ω・`)
この会社辞めようと思ったソースコード、の名にふさわしいな。 日本人以外へのメンテ発注禁にする事狙ってるのかな?
あちゃー
>>814 昔コーディング規約で
「テーブル名・カラム名は public static final String で定義し、変数名をテーブル名・カラム名と同じにする」
ってのがあった。で、でき上がったのが
public static final String 組織cd = "組織cd";
public static final String 組織nm = "組織nm";
・
・
・
もう少しまともなDB屋はいなかったのか orz
>>817 の所もそうだけど、テーブルやフィールドの名前を定数化するのって意味があるのか?
値が取れなかったときにデフォルト値を返すiniファイルなんかだと
タイプミスを防ぐ意味でも定数化するべきだと思うけど、
テーブル・フィールド名のタイプミスなんかはDBがエラーを返すから単体テストの初期段階で気付くし、
可読性が下がるからあんまり好きじゃないんだが・・・
SQLが数百行なんてザラなんだけど、定数化なんて聞いたことがない。 定数で間に合うような簡単なSQLがうらやますぃ
見たことは無いが、 組み込みSQLから来たコーダーが自分のおかしな工夫を規約にしてしまったのでは?
>819 アホが大した理由もナシにテーブル名だのフィールド名だのをコロコロ変えることがある それ対策
アホをアホと見抜けない人には(PGを使うのは)難しい
825 :
817 :2006/12/11(月) 22:10:33
>>818 口に含んだ乳は吹かずに吸い込め。
これ、前年開発したヤツの機能追加でお鉢が回ってきたんだけど、PLに言ったら「俺、javaわかんねーし」って言ってた。
いや、そういう問題じゃねーってば。
他にもstrutsをラップしてわざわざ手続き型っぽく扱えるようにしていたり、controllerがsql吐いてたり、Exceptionは握りつぶしていたり、それはもー酷かった。
あとで知ったんだけど、「対した理由もなくテーブル名だのカラム名だのをころころ変える事がある」のは、そのPLでした。
俺にお鉢が回ってきた年はそのPLは別の仕事で手いっぱいで殆ど放置だったので、あれでも最悪は逃れていたんだなぁと今にして思う今日この頃。
ちなみに、ついこないだ全く別のところから回ってきた全く別の案件も、同じような事をやっている事に今日気がついた。俺の会社、もう駄目かも・・・
>>825 「strutsをラップして手続き型っぽく」の部分を詳しく
827 :
814 :2006/12/11(月) 23:22:16
>815 あんまり引っ張るのも何だからここまでにするけど かなりの部分中国に出してるorz すごいね今の中国のマって。こっち(日本)の設計屋が指定してはいるんだろうけど、 日本語のクラス名もテーブル名も、平然と使いこなすよ。 ……しかしなぜか収める前にコンパイルを忘れることがあるようで 識別子に「−」とか使っててデプロイチームの怒号が轟くこともあるがorz
コンパイルもできないしデプロイにも失敗するソースを送られてきて テスト項目はすべて「OK」、バグ発生率0%ときた。 で、リーダが流石に怒ってシナ会社に電話したところ 「とにかく時間が足りず、 テスト項目を全て「OK」で埋めることに集中したため テスト自体は省いてある」 と堂々と答えてきたらしい
愛国無罪だな
830 :
817 :2006/12/12(火) 00:25:48
>>826 名前忘れたけど、javadoc に「フォームとセッションから値を取り出す」って書いてある public abstract void なメソッドと、public abstract void mainRoutine()。
実装はコードのコピペか static メソッドを呼び出すようになってる。
で、この実装のひな形を生成する excel マクロがあるw
なんでんなもん生成するのがエクセルマクロでなんだよ!
>>828 国が違うと訴えるの難しいのかな?
絶対勝訴じゃない?
>>832 どうなんだろう。結局8割程を日本で修正したな。
そもそも送られてきたSQL自体がエラー吐くんだぜ。
俺は嫌気がさして途中でプロジェクト抜けたから後は知らない。
契約の延長依頼が来てたけど、するわけねーだろアホ!
834 :
仕様書無しさん :2006/12/12(火) 00:50:28
BCBでフォームにすべての処理がかいてあって フォームだけで3000行・・・ これだからポトペタは嫌いなんだよな
C#ではフォームで二万行ってのがあったぜ
836 :
仕様書無しさん :2006/12/12(火) 00:59:43
VC++6だとそういった初心者を完全にシャットアウトしてくれたからよかったが・・・
逆に俺はファイル数が以上に多い文化がどうもなじめない 3000行くらい普通だろ
>>837 メンテナンス性よりも「なじめない」とかいうアナログな基準を優先させるお前が憎い。
>>838 だって俺にとってのメンテナンス性は悪いからな<大量ファイル
もちろん、いちプロジェクトをすべてひとつのファイルにまとめろって意味じゃないよ。
分けるにも適度な分量ってのがあるだろって思ってるだけ。
>>838 フォームに3000行書いてあったら多すぎるだろ?
ユーザとのやり取りに集中するべきところに、何か余計な事が書かれているということじゃないか?
また、ユーザとのやり取りしか書かれて居なくて、3000行必要なら、そのフォーム自体の複雑さが疑問に思う。
841 :
840 :2006/12/12(火) 11:15:09
アンカーミス
×
>>838 ○
>>839 意味のある区切りで分割してあるからこそ、メンテナンス性が向上するのでは?
分量は基準にはならないと思う。
VB厨とその他が議論してるから、3000行で多いだの丁度いいだのと 意見が分かれてるだけのような気がする。
VB開発だとU/Iとビジネスロジックの分離なんて意識しない奴が多いんじゃね? MVCだなんだって「俺らには関係ない。俺らブイバーだから」って言ってる香具師がいる。 Webフォームの方だとたしかに分離すべきかな、タグ類の取り扱い+ビジロジなんて分かりにくすぎるから。
>>840 ただ単に、その「意味のある区切り」の感覚が違うだけだと思うよ
しかし・・・3000行ってそんなに多いか?1万超えるとかならともかく。
ウチで扱ってるシステムのメイン画面は2万超えてるな・・・ 分割できる機能のほとんどを1つのファイルに詰め込んでる上に 修正する度に古いコードをコメントにして残す風習がまだ残ってるから カスタマイズの案件がある度に見づらくなってくる。 一度リファクタリングして機能の分割とカプセル化をするべきと提案はしてるんだが その時間を確保する前に納期が厳しめの新しい案件が入ってくるからなかなか実行に移れんorz
>>828 > テスト項目を全て「OK」で埋めることに集中したため
> テスト自体は省いてある」
目からウロコ
外注にだしたらテストをほとんどせず、テストするならその分金出せっていわれた
すごい害虫だな。 開発ってとりあえず作るところまでだと思ってるのか・・・ 某大手の研究所と同じだ・
未だに中国に外注に出して大もうけなんて夢見てる中小が多いから被害は拡大する一方だな。
はぁ、やれやれだぜ。 ってことは、ちゃんとユニットテスト書いてる今のプロジェクトは幸せなのか。 # JAVAじゃないし、IDEも存在しない言語だけどユニットテストのライブラリはある
ユニットてすとねぇ・・・ 普通は結合テストの事をいうけど、厨房はXUnit系を ユニットテストだともおもってるのかねぇ
unitって単体だろ?
これはいい釣り >852
855 :
852 :2006/12/12(火) 22:11:29
>>853 スマソ。本気で間違えた。単体テストだ。
結合はうちではPTっていうなあ 何の略か知らないが
>>856 poor test
planet test
prescott test
party test
paradox test
>>843 残念ながら、ブビ厨が書いたVBSなんか分けられていないことも多々あるのだな。
>>858 スクリプトでU/Iとビジネスロジックを実装しようとしてる
時点でおかしいと思う。
>859 いや、それレガシASP使いとPerl使いとPHP使い全員敵に回してるから。 ……敵に回してなんぼのもんじゃと言われるとorz
Python使いの俺が来ましたよ
で?
フラッシはスクリプトに含まれるの?
プラッシーは米屋で買えるよ
>>864 今はスーパーでも売ってる事がありますよ。
それより、マリンカが欲しいんですが。
866 :
858 :2006/12/14(木) 12:08:29
>>859 俺もそうは思うんだが、
>>860 がいっているように、レガシASP使いはそこまでやるので。
俺個人はゴツい業務ロジックはストアドにする。
typedef struct ... UltraSuperHyperArray;
typedef struct ... EternalForceBlizzard
>>868 誰が作ったのか問い詰めたら、中華の作ったソースらしい。
奴ら英語のスペルも要所要所で間違ってるからワケ判らん。
right が light になってたりするけどアプリケーションの
グローバル変数になっててDLL内で参照(!)してるから
一括置換すらできないヽ(`Д´)ノ
支那人って昔(10年ぐらい前)から変わらないんだなw
支那とは限らんだろうが。
>>780 書き直せ。レビューに出すならなw
中華が書いたコードの識別子が、日本語のローマ字表記のがあった。 ローマ字表記とかただでさえ読みにくいってのに、 日本語間違ってて、何が書いてあるのか全くわからん。
>>874 中国語のローマ字表記になるともう何がなんだか
中華の下請け使ってる会社は避けろという事だな
そういえば上海のPGの書いたソースに kakuchouko という単語が。 ・・・文脈からみて「拡張子」であることは間違い無い。
債権者ってDB項目がSaikenMonoとなってたな
879 :
仕様書無しさん :2006/12/18(月) 21:28:15
・関数名がアルファベット6文字固定で数百個 ・#ifdef使いまくり ・システムコールがマクロで上書きされてた doxygen使っても歯が立たないorz 2週間でキレた。
>>879 あー俺も過去にそんなことあったな〜。
マクロだらけのソースはまともに相手にしないで、プリプロセッサ通したソースを常に参照するように心がけてたな。
>>877 それは中国の奥地にある拡張湖という湖の名前。
うそ。
>>882 っうぇw3文字なのにググルさんが困った顔したwww
EnterCriticalSection(&cs) が、ソースのいたるところに入っていて、 かつ、csがexternで全ソースから参照されてます!!
それはきっと処理全部がクリティカルなんだよ! (extern指定できたんだあれ) ・・・てかマルチスレッドにする意味ないじゃんw
やたら長いデストラクタが 実は呼ばれてかったソースを見たとき。
メソッド名に通番が付いてる場合はどれか一つしか生きてないこと多いよね。 要らないのは消せよ!w
クラスAのメンバにクラスBがいて、 クラスBに、クラスAをインスタンス化するメソッドがいるとか、 なんかスパゲッティになっているソースを見たとき。 こういうのもさっと理解できるようにならんといかんの???
>888 言語の理解としては不要。 しかし、職業人としては必要orz
そういう詳細仕様ってまず作ってないんだよな、特に中華
中華に仕事をまわすな!
>>888 勝手にリファクタリング
ユニットテストが無い場合はユニットテスト作成から。
こっそりやる。
if文の中でnewしたオブジェクトへのポインタが 4つ5つくらいのクラスを渡り歩いてる。 で、ちゃんとdeleteされてるのかと思って検索したら どっかのクラスのデストラクタにdeleteが記述されてた。 ちょっと安心したら、そのクラスのデストラクタが呼ばれてなかった こんなコードありですか????
オブジェクトの生存期間は注意深く考えるものの一つだよ 永続するのはDBとみなせばよいし、 一時オブジェクトはauto_ptrなどで捨てればよい。 渡り歩く系のオブジェクトが一番分かりにくいね。 本当に渡り歩く必要があるのかチェックして、そうでなければ直す。 必要があるならば、うーん、後始末君を用意するとかしたほうがいいだろうね。
>>892 デストラクタなんだから該当クラスの消滅タイミング見てみれば?
ただ非常に厄介な使い方なのは間違いない。
せめて管理クラスを別途用意して、使用するクラスが参照で受け取る形にする方がいいな。
895 :
仕様書無しさん :2006/12/25(月) 10:11:06
main.c以外に*.cも*.cppもなく、*.hと*.datばかりの「元ソース」を受け取った。 他にも見たことのない拡張子が山ほど。「.kan」「.sen」とか。 なんだこりゃ??と思ってそれぞれのファイルを開けると・・・ .kan :関数が書いているテキストファイル .sen :変数宣言のテキストファイル .kon :const宣言のテキストファイル .syo :グローバル変数宣言&初期値設定のテキストファイル .yom :なんかよくわからんがヘッダファイル などの山。 main.hから鬼の多重インクルードで構成されており、しかも関数が 鬼のようなマクロの組み合わせ。これでソース仕様書一切なし。 5人で泣く泣く、開発期間2ヵ月削ってソース解析しました。。 営業からクレームも飛ばし、その会社とはその仕事で完全に縁を切った。
char* syori1() { return( DTYOMI((KANSU282+GET3312)CHK501 ) } みたいなのばっかし。もう、最悪だったよこれ・・・・
処理を1行単位に細分化するとかポインタ演算に命を掛けてるような会社が居るからなあw 関数は最大でも50行以内にまとめてそれ以上は分割しろとかもうアホかと・・・ 俺は場合によっては数千行単位の関数を作ってるけど、それでも共通処理とかは かなり最適化されてるんだけどね。 特例処理まで含めてすべての処理を汎用レベルまで最適化するなんてかえって効率が悪いんだよ。
場合に寄っても数千行単位の関数はさすがに……。
4000行のBeanを見たとき。 ってかDB設計からやり直せと。。。
901 :
仕様書無しさん :2006/12/25(月) 18:51:18
最適化?
>>898 数千行はいくらなんでも、駄目だろ…
共通処理以外にも関数を分ける意味は
いろいろとあるだろ。
たぶん、お前のコードもスレタイに該当してるぞ。
同僚の為にも、少し勉強する事を勧める。
>>902 前任者がロクに基本仕様も作ってない、実装だけでも3人月分の仕事を
1ヶ月でやってくれと言われた場合に、一連のロジックをいちいち
分けてられないだろ?
小分けすればするほど開発の手間もデバッグの手間も増大する。
あっそ
アホが張り付いてるなw
>特例処理まで含めてすべての処理を汎用レベルまで最適化するなんてかえって効率が悪いんだよ 禿堂
それは数千行の関数を作ってしまうことの言い訳にはなってないぞw
>>904 の言いたいこと
仕事量が多すぎるから糞コードを作ってしまう
なるほど
printf("やらないか");
_tprintf(_TEXT("うほっ、いい男"));
System.out.println("ああ次はションベンだ");
暇そうだなオマイラ。 俺の仕事手伝えwww
暇じゃねぇよハゲフフフフフフフ
>>914 OK、わかった
とりあえずソースコードよこせ
Winny経由でいいからさ
前任者が作った引数15個の関数。。。項目が増えて18引数にしちまった。 他にもコピペのあらしのような修正がいっぱい。 こんな修正したくないけどリファクタリングは何度言っても上司の許可下りないし、 もうこんなソースのメンテいやだ(´;ω;`)
>908 数千行ならまだマシだろう。数千行「単位」だぜ。 サクっと数万行はいくだろよ。
派遣でいったんだけど、 すげーーーひどいソースの解析やらされるはめになった。 (C++で1クラス数千行くらいあるようなもん) 社員もひどいソースと認めている。(実際にソースを書いた人はもういないらしい) でも、おいらが飲み会で、あのソースを見ていると頭が痛くなります といったら、上司がむっとしたようだ。 むっとするくらいなら、はじめからひどいとか自分で言うなよ。 何だかんだいって部外者にひどいとは言われたくないんかね。
わざとヤケクソにならなきゃ、1関数で200行以上なんて無理だろ。
実はそのコード書いたのそのジョウ氏じゃね?
>>922 それは無いような気がするけど、
入ったばかりの俺に言われるのはムカつくらしい。
そんなソース押し付けられる俺の身にもなって欲しい
酷い状態を放置したのは管理者の責任だからなあ
だいぶ前に使われなくなったプログラムが今でもCVSに入ってると嫌になる 試験してたらそこだけ仕様が合わなくておかしいと思ったんだ・・・
俺、アセンブラのソースをぐちぐち言いながら解析してたら 後ろから常務が「昔かいたソースに文句言われてもな」 常務が昔書いたソースだった あと、競合他社アプリこっそり愛用してたら 後ろから常務が「ふ〜ん」 あのときは、ちょっとびびったw
呪いみたいな常務だな
CVSで共通コンポーネントの最新ソース落としてきてコンパイル……通らねえ エラーを見るとどうも新しく足したクラスのソースをコミットしてやがらねえぽ orz まぁ滅茶苦茶影響範囲の広いコンポーネントだから最悪でも試験環境に持っていくときには (移行チームからの怒号と共に)リポジトリに入るだろーが……はて、年内にコンパイル通るようになるんかな('A`)
Javaのソースで、普通にパッケージ内にあるクラスをnewするのにリフレクション 使いまくってるソース。 なんか依存性注入を誤った方向で使ってるような感じのコメントが、ある。
>>907 「特例処理」とか「汎用レベルまで最適化」とか
そういうわけの解らないものに、本当に同意すんのか?w
するよ? なんでもかんでもバラバラにすりゃいいと思ってる奴らにはうんざりしてんだよ。 1関数で200行以上なんて無理だ? そりゃお前、無理やり一行に詰めたり行間つめたりコメントゼロだったりしてんじゃねえの?
こうして似たり寄ったりのコピペ関数が増えていくわけですね。
1関数の行数が増える事とコピペが増える事は全然別問題だ、よく考えろボケ
>>933 要するに自演なのかもしれないが、
コピペばかりのコードにうんざりするのは、
関数化すれば整理できるものをベタベタ貼り付けてつくるから。
ビスマルクの格言を思い出す。
>934 なんでそのレスが>933あてになるのか全く理解できねえよ >933を100回読み直せ
とりあえずおまいらが疲れてるのはよく解った
937 :
仕様書無しさん :2006/12/26(火) 13:06:04
そんなに疲れているなら、肉まんにはカラシだけをヌリヌリしつつハフッハフッと食べるのがイイんじゃね?
カラシ苦手やねん
>>931 やっぱり、人の言葉の意味も理解しないまま同意する奴は
>なんでもかんでもバラバラにすりゃいいと思ってる
人の言葉の意味も理解しないまま反対するんだね。
恣意的なものなのか、俺様基準があるのかは知らんけど。
お前が>907で引用した文を理解できてないだけだろ?
941 :
921 :2006/12/26(火) 13:48:30
>>931 > 1関数で200行以上なんて無理だ?
> そりゃお前、無理やり一行に詰めたり行間つめたりコメントゼロだったりしてんじゃねえの?
他ならぬ君自身が「悔しいから一応言い返しておくけど、これはまず当たってないだろうな」と
考えてるのが丸わかりの、哀愁漂う切り返しをされても困るなぁ。
答はもちろん「そんなはずないじゃん」ですよ。
妄想するのは勝手だが、普通に仕事してれば「1関数で200行以上なんて無理」なんて アホな考えは浮かばねえよw ちょっと想像力があれば、自分の仕事の範囲でありえなかろうがそういうケースが (糞コードでなくとも)いくらでもあるということぐらい分かりそうなもんだ。
>>942 それを言うなら、ちょっと想像力があれば
「無理やり一行に詰めたり行間つめたりコメントゼロだったり」することで
初めて到達できる短さなんぞを後ろ盾にして、こんな流れで書き込まないことくらい
分かりそうなもんだよ。
俺は「
>>931 はそれをわかっている」と思ったから
>>941 のように書いたんだけど、
これを「妄想」と呼ばれちゃうとなぁ。
>>931 が本気でそんな馬鹿なケースを考えていた、という前提で書くべきだったということか。
でもそれ、ただの馬鹿だからw
944 :
仕様書無しさん :2006/12/26(火) 14:03:46
マイ数千行関数の存在を匿名掲示板の面子に認めさせるために そこまでがんばらなくてもいいのに
すくすく伸びる我が子の背丈のように感じてるんじゃねーの?
俺は921を本気で書いてた事に驚いたよw
948 :
仕様書無しさん :2006/12/26(火) 14:11:44
まぁ
>>898 の本気度の前にはどの本気もひれ伏すだろw
>>940 理解できませんね。あの俺用語が解るなら解説して欲しいくらい。
まあここに>898がまだ居るかは知らんが俺は>907だよ ま、細切れソースがいいと思うんならそれでもいいんじゃねーのw 俺はどんな場合にも無理やり細切れにして悦に浸るような アホな真似はしないってだけだ。 >949 「特例」も「汎用」もごく一般的な日本語だが、なんで理解できないのか分からん
>>950 > どんな場合にも無理やり細切れにして悦に浸る
ここで急に、このスレの全員がはじめっから誰も反対したりしない
「当たり前のところ」まで引き戻すあたりがチキンでいいね。
952 :
仕様書無しさん :2006/12/26(火) 14:20:50
「どんな場合にも無理やり細切れにして悦に浸るようなアホな真似はしない」って「だけ」なら 絶対ありえない意味不明の頑張りがログに残ってるけど、まあいいや。
そのあたり前の話にお前らが噛み付いてんだろうがよw
わかりやすく説明しとくか? どんな場合=関数として括る処理がそれなりの長さになる場合 細切れ=200行は超えない 無理やり、では無いのかも知れんな。もうお前ら無意識で意味不明な分割やってそうだから。 悦に浸るってのは、それが正しいソースと思ってる今のお前らそのものだw はじめっから誰も反対したりしない?当たり前のところ? もう一回国語の勉強しなおせよ。
数千行は「それなりの長さ」ではないと思う
それは俺の発言じゃないしな
957 :
仕様書無しさん :2006/12/26(火) 14:45:59
>>954 まるで意味がわからない(通らない)ので、もう一回。
あ、なんか色々思い込むことで成り立ってるスタンスなのは十分伝わってきたから、
そこらへんはもうそれ以上必死にならなくていい。
うん 自称わかりやすい説明が今までで一番意味不明w
どんな場合にも無理やり細切れにして悦に浸る ↓ 関数として括る処理がそれなりの長さになる場合でも 200行は超えないように細切れにしてそれが正しいと思い込む 954を繋げてやっただけだが、これならアホでも理解できるかね?
いったい誰が「越えないようにして」るんだろう。 やっぱり色々と思い込みが激しい。
・・・ここまでアホかw
「関数として括る処理がそれなりの長さになる」という判断の部分に まるで疑いを持っていないのが面白い。 自分の言ってることが 「絶対正しい俺の判断と違っているから、こいつは間違えている」 という内容であると理解していないんだろうな。
だからそこで>950になるわけだよ。 細切れがいいと思うんならそれでもいいんじゃねーのw なんか何度も同じ問答がループするコントみたいになってきたな。 アホの相手は疲れるわ。
あとはもう全部アホアホ言っておしまいになりそう。 思っていたほど上等じゃなかった持論を、それでも掲げ続けるための 最後の戦法だし。
上等な持論ってなんだよw もともと俺は当たり前の話しかしてねえっつーの。
一気にスレが増えたと思ったら、年末厨が沸いていたのかwww
あほあほ
スレタイ読めよお前ら
>>965 まぁ、自分ではそのつもりなんだろうってのは伝わってくるよ。
「もともと」はそうだったんだろうね。
「もともと」以外は、あまりにも妄想がひどすぎて当たり前どころの騒ぎじゃないけど。
はいはい、妄想妄想w
うん、妄想妄想w
973 :
仕様書無しさん :2006/12/26(火) 15:29:23
妄想ってことで決着もついたし、まぁあれだ、お前ら関数はきちんと分けろってこった。 数千行とかになったら疑ってかかれ。いろいろと。
頑張って200行におさめろよ、お前らw
泣くなよw
いつもの仕事するだけだしな。 俺は俺の考える括りで関数作るだけだし。 何をさして妄想言われたのか知らんが、とりあえず200行を超える事がありえないと 思ってる連中がいる、というのは勉強になったよ。 今後無茶な分割してるコード見かけても、ああ、ここにも居るよ・・・って思えるからなw
よかった 数千行の関数なんて なかったんだ
> 俺は俺の考える括りで関数作るだけだし。 くれぐれも周囲の人間をソースで、コメントで、口頭で、 納得させるという段取りを忘れるなよ。 このスレ見る限り、他人に自分の中にある物を説明する、というのが お前は絶望的に下手糞だから。
自分の理解力の無さを人のせいにすんなよw 俺は最初から >なんでもかんでもバラバラにすりゃいいと思ってる奴らにはうんざり これしか言ってないのにw
>>977 さすがに4桁にいく事は無いな
200行は超えるけどなw
いやいや、それはお前の「もともと」の書き込みであって、 結局お前の一連の「コンテンツ」のメインだったのは、その 「なんでもかんでもバラバラにすりゃいいと思ってる奴ら」を「今ここで話してる相手」に 無理矢理あてはめて煽るというものだったから。 ソースも見ないうちから 「もうお前ら無意識で意味不明な分割やってそうだから。 悦に浸るってのは、それが正しいソースと思ってる今のお前らそのものだw」 なんて、どれだけ勝手に物を決めつけてるか、冷静になればわかりそうなもんだけどな。
982 :
仕様書無しさん :2006/12/26(火) 16:00:54
×最初からこれしか言ってない ○最初だけこれを言っていた
このスレに紹介されそうなソース書いてるってことで
>981
すべての処理が200行におさまるのが当然、っつーところからの話だな。
そりゃここの誰もがそう思ってるわけでもないだろうよ。
そのへんは>942あたりが俺の考え。
>>982 アホか。会話してれば同じ言葉「だけ」言うわけねえだろ。
レスがくりゃそれに対応したことを書くっつーの。
でも根底にある意見はずっと変わらないしすべての書き込みは
それに基づいたものだって話だ。やっぱ理解力ねえな。
985 :
966 :2006/12/26(火) 16:06:59
>>968 スマ
スレが伸びた、と書いてから「増えた」に書き直したらちょっち足りなかったぽ
>>984 > そりゃここの誰もがそう思ってるわけでもないだろうよ。
じゃなくて、「ここの誰もそんなことは思ってない」が正解。
お前は仮想敵を作ってたんだよ。
>>984 返答になってないよ。
確認するけど、
「もうお前ら無意識で意味不明な分割やってそうだから。
悦に浸るってのは、それが正しいソースと思ってる今のお前らそのものだw」
これが妄想による煽りだってのは認めるのか?
988 :
仕様書無しさん :2006/12/26(火) 16:15:39
すべての書き込みはそれに基づいたものだ ワロタ
989 :
仕様書無しさん :2006/12/26(火) 16:16:18
もう埋めるか
990 :
仕様書無しさん :2006/12/26(火) 16:16:53
次スレ立ててみるか
願わくば、この流れが次スレまで持ち越されませんように
992 :
仕様書無しさん :2006/12/26(火) 16:34:44
>986 >921がそうだと思っているし、>921を叩いたら総叩きにあったから、 とりあえずここで俺と会話してる奴はそう思ってると判断したわけだ。 それが>941含め単なる煽りで事実ではないなら俺が釣られただけだな。 >987 普通にやれば200行を超えない、と思ってるなら無意識で分割してるんだろ。 無意識でやってんならそれが正しいと思ってんじゃないのか? 妄想ねえ。書き込みから推測しただけだ。 必要以上に煽ってはいるが、妄想してるつもりは無いな。 上で述べたように誰もそんなこと思ってないってんなら俺が釣られただけ。
・釣られた ・つもりは無い いいほうにいいほうに回り込んで終息って寸法でつねw
釣り宣言ならぬ釣られ宣言か。新しいな。
ちょっと冷静になって書き込めば煽られる。 これぞ2chだなw 言い直すわ。妄想なんかしてねえよボケw
今までが冷静じゃなかったのを認めたのは殊勝だけど、ちょっと解釈が違うかな。 ×ちょっと冷静になって書き込めば煽られる ○何もかも自分の都合のいいように解釈してみせると突っ込みが入る
煽られたくて煽られるようなことを書くのか、 文章力がなくてそういう書き方になってしまうのか、 いずれにしろプログラマには向いていないと思われ。
↓最後に見苦しい捨て台詞をどうぞ
それは違うね。 叩きやすい奴、煽りやすい奴を叩く、それが2ch。正論かどうかってあんまり関係無い。 解釈も糞も、>986の「そんな奴はいない」を信用してみただけだし。 煽られるようなことを書いても無いな。 当たり前の事を書いたら文盲に噛み付かれただけw
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。