この会社辞めようと思ったソースコード#14

このエントリーをはてなブックマークに追加
1仕様書無しさん
この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。
プログラマを悩ませるソースコード。
をつらつらと綴っていって頂戴。

ちなみにここは質問スレじゃないので
技術的な質問がしたいならム板に逝って。

前スレ

この会社辞めようと思ったソースコード#13
http://pc8.2ch.net/test/read.cgi/prog/1139744052/
2仕様書無しさん:2006/09/14(木) 08:46:49
3仕様書無しさん:2006/09/14(木) 09:38:48
人生初の0x02ゲット!
4仕様書無しさん:2006/09/14(木) 10:01:16
>3
( ゚д゚)

(゚д゚)
5仕様書無しさん:2006/09/14(木) 10:34:35
1乙
3w
4こっち見んな
63:2006/09/14(木) 10:35:31
なんだよぉォォ

0x00から数えれば、0x02は3だろぉォォ
7仕様書無しさん:2006/09/14(木) 11:40:57
んな無茶な
8仕様書無しさん:2006/09/14(木) 13:29:47
void main()
{
return 0;
}
9仕様書無しさん:2006/09/14(木) 13:38:46
コンパイル通らないのでは

Warning?
10仕様書無しさん:2006/09/14(木) 13:57:02
警告: return type of 'main' is not `int'
11仕様書無しさん:2006/09/14(木) 20:32:56
double main()
{
return 0.0;
}
12仕様書無しさん:2006/09/14(木) 21:03:24

'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
 処理
   ・
   ・
13仕様書無しさん:2006/09/14(木) 21:07:41
VBキター
14仕様書無しさん:2006/09/15(金) 19:50:26
<div><align="left"></div>
15仕様書無しさん:2006/09/16(土) 00:49:47
>14
実はよーく見ると独自DTDでちゃっかりalignタグが定義してある

んなわきゃーないよなw
16仕様書無しさん:2006/09/16(土) 00:51:56
alignタグが定義してあってもこれじゃおかしいだろ
17仕様書無しさん:2006/09/16(土) 11:57:30
<font race="MSPゴシック" size="12">なぜかフォントがきちんと表示されない</font>
18仕様書無しさん:2006/09/16(土) 13:15:02
意味的には合ってるようで合ってなくてちとワラタ。
19仕様書無しさん:2006/09/18(月) 14:21:15
ここはCOBOLのプログラマーも書き込んで良いですか?
20仕様書無しさん:2006/09/18(月) 14:22:13
ダメです♥
21仕様書無しさん:2006/09/18(月) 15:55:37
見てみたいなw
22仕様書無しさん:2006/09/18(月) 18:18:37
for(int i = 0; i < HOGE; i++) {
...
}

if(i > MOGE) ...
23仕様書無しさん:2006/09/18(月) 18:25:50
>>22
HOGEじゃなくてMOGEか・・・
きっとステキな人なんだろうな
24仕様書無しさん:2006/09/18(月) 18:55:57
>>23
本来ならiがスコープを超えてるって話だろ。
25仕様書無しさん:2006/09/18(月) 19:22:25
そんなときは黙って
#define for if(0){}else for
26仕様書無しさん:2006/09/18(月) 20:01:01
int i;
for(i = 0; i < HOGE; i++) {


でええやん?
27仕様書無しさん:2006/09/18(月) 20:15:18
辞めようと思ったソースコードじゃ無くなるじゃん。
28仕様書無しさん:2006/09/18(月) 20:56:26
辞めた奴の便利スクリプトを流し読みしてたら

# デスマー!デスマー!デスマーチ!
29仕様書無しさん:2006/09/18(月) 21:26:12
とある、各ページで共用するJavaScriptのソースファイルに
// 葛藤コメント

……いや、もう葛藤してる場合じゃないだろ……

// ちなみに書いた本人としては、インクルードされる側に定義したグローバル変数に
// インクルードする側がform要素をセットして動かす仕掛けが相当うぶろばだったようだが
// ……所詮Webのプログラムなんてそんなもんじゃんよ('A`)
30仕様書無しさん:2006/09/19(火) 02:59:53
>>29
それそんなに変なことじゃないよな。
includeされる側を一種の「関数」だと思って、
そのグローバル変数を「引数」として渡してるだけ。

環境変数と全く同じ理屈だし。
31仕様書無しさん:2006/09/19(火) 09:31:30
うぶろば?
32葉猫 ◆Jz.SaKuRaM :2006/09/19(火) 16:18:50
ヘッダーでグローバル変数を宣言ちていて、さらに#ifndefされてなかったりつると暴れたくなるよな。
33仕様書無しさん:2006/09/19(火) 16:53:32
>>32
グローバル変数って#defineとは関係ないだろ? 釣り??
34仕様書無しさん:2006/09/19(火) 18:44:47
いや、そのコテはモノホンのキチガイなんで本気で言ってる可能性が非常に高い。
35仕様書無しさん:2006/09/21(木) 10:02:39
void signal_handler(int sig)
{
switch(sig){
case SIGSEGV:
fprintf(stderr, "core dumped.\n");
break;
}
}

氏ね。素人。
36仕様書無しさん:2006/09/21(木) 10:30:09
↑その程度で辞めようと思うなんて、なんて使えない>>35なんだ
37仕様書無しさん:2006/09/21(木) 13:17:47
>>35
何が悪いのかわからん
38仕様書無しさん:2006/09/21(木) 14:19:29
>>37

SEGVってトラップできたのか。
デフォルトの処理にしておけばちゃんとcoreを残してデバッグに役立つのに、
自前で処理しちゃったら何も手がかりが残らん、ということかと。
39仕様書無しさん:2006/09/21(木) 15:01:17
>38

例外処理で酷いのも似たようなもんだよな…。

catch(Exception e){
System.err.println("想定外エラー");
}

とか。例外わからんじゃねーかよ、みたいな。
40仕様書無しさん:2006/09/21(木) 18:58:50
>>37
シグナルハンドラ内でprintf呼ぶのは鼻から悪魔。
41仕様書無しさん:2006/09/21(木) 19:09:08
そうか、シグナルハンドラで使っていい関数って定義されてるんだな。
man 2 signal
42仕様書無しさん:2006/09/21(木) 22:46:49
catch (Exception e) {
    Console.Error.WriteLine("想定の範囲内です");
}
43仕様書無しさん:2006/09/21(木) 23:29:48
想定してたなら何とかしろって
44仕様書無しさん:2006/09/22(金) 01:09:43
catch(Exception e){
System.err.println("こんな所に来るはずがないんだ……");
}

# コメントで書いてあることはたまーにあるが
45仕様書無しさん:2006/09/22(金) 02:08:49
Sub Mona
On Error Goto ERR_SYORI

(ry

Exit Sub

ERR_SYORI:
MsgBox("**なエラーが起こりました。○○課まで連絡してください。")
Resume Next
End Sub



このコードを書いたのは誰だぁっ!!(AA略
46仕様書無しさん:2006/09/22(金) 07:25:22
>>45
Resume Nextしちまっていいのか・・?
47仕様書無しさん:2006/09/22(金) 09:34:54
>>44
前に、「このエラーは絶対に出ません!出たら笑いましょう!!あっはっは!」
とコメントいれてたのが、会議のプレゼン中に出て、部長と一緒に始末書かかされたことがありますが、何か
48仕様書無しさん:2006/09/22(金) 09:58:25
>>45
ふとこんなものを思い出した完徹明けの朝。
ttp://www.int21.co.jp/pcdn/entertain/komatta/kom0081.html
49仕様書無しさん:2006/09/22(金) 10:46:35
前任者からVCのプログラムを引き継いだが
グローバル変数やらマジックナンバーやら全開の糞コード。
MFCでベース作ってるからコンパイラが吐いたところだけ
オブジェクト指向でたちが悪い。
コントロールをpublicでメンバーに割り当てて
関係ないクラス内でグローバルに(から)データ代入とかもうわけ分からん。
関数・変数名もHogeHogeFoo→HHFみたいに
略称ばっかりなんで知らない単語が出るたびに解析が必要。。。

これを俺にどうしろと??○| ̄|_
50仕様書無しさん:2006/09/22(金) 11:31:02
泣いてもいいよ。

あと
×コンパイラが吐いた
○IDE(のウィザード)が吐いた
だな。
51仕様書無しさん:2006/09/22(金) 21:20:34
if (条件1) {
 長い処理その1
////}
//} else {
} else if (条件2) {
 長い処理その2
////}
//} else {
} else if (条件3 || 条件4) {
 長い処理その1
//}
} else {
 長い処理その2
}
52仕様書無しさん:2006/09/22(金) 21:36:45
>>51
できの悪いエディタへの嫌がらせ?
53仕様書無しさん:2006/09/22(金) 22:54:05
>>44
いや、その程度で目くじら立てるな。
コンパイラのインターナルエラーとかもその類だろうし
54仕様書無しさん:2006/09/22(金) 22:56:31
>>49
そのくらいどうってことねーべ
55仕様書無しさん:2006/09/22(金) 23:13:16
>>48
そのページに書いてる事は、世の中的には極めて普通。
取り立ててどうと言うことも無い
56仕様書無しさん:2006/09/23(土) 16:07:55
/* ○×による不具合のため処理暫定対応追加 /* 原因が判明した為暫定対応削除 */ */
57仕様書無しさん:2006/09/23(土) 16:50:54
>>56
その最後の*/が気になる。消せとか言われないの?コンパイラーに。
58仕様書無しさん:2006/09/23(土) 16:58:47
コメントのネストOKオプションがあるコンパイラーがある。
わざわざそんなオプション使って移植性を損なうのはどうかと思うが。
59仕様書無しさん:2006/09/23(土) 17:01:08
>>58
マジで具体名キボン
60葉猫 ◆Jz.SaKuRaM :2006/09/23(土) 17:03:40
ボーランドCはコメントのネスト使えるでちょ。
61仕様書無しさん:2006/09/23(土) 17:16:29
なんだ、bccか。
6257:2006/09/23(土) 17:39:32
ARMコンパイラだったので当然コンパイルエラーは出てましたがね。
63仕様書無しさん:2006/09/23(土) 19:28:29
206 名前:仕様書無しさん 投稿日:2006/09/22(金) 23:18:30
例え成果物が不完全だとしても、
そのドキュメント自体に記載が無ければ、責任の追及ってできないものなのか?
当然だろって思うものは省略して設計書渡したんだが、
書いていない部分は全部組み込まれてなかった。
責任追及すると、設計書に無いからだと、こちらに非があるように言われるし。
そこまで細かく設計書書くものか?
コーディングだけ頼んだんだが、書かれてなくても普通は仕様の常識ってあるだろ?
そこまで求めるならコーダーで見積もらせるなと、クレームつけるし。
成果物として認めず、支払い止めてやろうかな。
64仕様書無しさん:2006/09/23(土) 19:34:45
考え方が異常。
65仕様書無しさん:2006/09/23(土) 19:43:24
>>63
206さようなら〜
66仕様書無しさん:2006/09/23(土) 20:28:05
入力した項目を、登録完了後もそのまま残して再表示する仕様だったから、その様にプログラムした。
そしたら二重登録の操作ミスが多発した。
画面の項目が一切変更されてない登録は二重登録の可能性があるから、警告のメッセージが出るようにするのが当然だと、仕様作った奴が怒ってきた。
「おかしいわ、これ。 絶対!」
しつこく同じ言葉を繰り返す野朗だった。
67仕様書無しさん:2006/09/23(土) 22:00:47
>>66
何が言いたいのかよくわからんが、仕様を疑いもせず
糞だと理解せずに作った自分自身のソースコードを見て、
人間辞めようと思った・・・


とか、そういうことかな?
68仕様書無しさん:2006/09/23(土) 22:05:32
>>67
仕様に疑いを持てるなんて、いい職場に居るんだね
羨ましいよ
69仕様書無しさん:2006/09/23(土) 22:16:11
>>66
仕様のさらに前提となる常識を文章に起こしていないなら、「当然」なんて言葉を使っちゃいけないよな
70仕様書無しさん:2006/09/23(土) 22:17:58
>>68
自分の仕事に責任を持たない奴に
権限を与えるとこうなるらしい。
71仕様書無しさん:2006/09/23(土) 23:05:43
かわいそうに
72仕様書無しさん:2006/09/24(日) 01:11:41
>>66
えぇ?意味わかんね。
なんで二重登録になっちゃうの?
その画面でボタン押したものは全部INSERT文にいっちゃうのか?
そりゃ作った椰子の頭の中がおかしいと思うが。
普通は既存かどうか判定して分岐するんだがなぁ〜。そういう問題じゃないと?
73仕様書無しさん:2006/09/24(日) 01:25:07
>>72
違うと思うぞ。
74仕様書無しさん:2006/09/24(日) 01:25:12
>>72
> 普通は既存かどうか判定して分岐するんだがなぁ〜

それは状況によるだろ。
75仕様書無しさん:2006/09/24(日) 01:47:17
>>74
それは、きちんとした教育を受けたかとか
まともな経験を積んできたかとかによるだろ。
76仕様書無しさん:2006/09/24(日) 01:56:37
>>75
いや、データの性質による。
77仕様書無しさん:2006/09/24(日) 02:01:34
<body bgcolor="#EOEOEO">
78仕様書無しさん:2006/09/24(日) 02:19:07
>>77
0じゃなくて、Oかよww
79仕様書無しさん:2006/09/24(日) 05:42:34
>>38
違う。シグナルハンドラ内で
標準関数をコールしようものならば、
実行時にストールを引き起こす可能性があるからだよ。
プロの間じゃ一応常識。
80仕様書無しさん:2006/09/24(日) 09:58:18
static void Main(string[] args)
{
    while (true)
    {
        Thread t = new Thread(new ThreadStart(Work));
        t.Start();
    }
    Marriage();
}
81仕様書無しさん:2006/09/24(日) 14:22:06
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使ってるとか。
8457:2006/09/24(日) 15:09:32
今北産業
85仕様書無しさん:2006/09/24(日) 15:18:27
>>83 マスタの変更ではなくて履歴挿入からトリガー経由の場合とかじゃないかな。

仕様に応じてデータベース設計の理想からかけ離れている運用もけっこうある。
86葉猫 ◆Jz.SaKuRaM :2006/09/24(日) 15:37:31
よーわからんけど、ストアードくらいかけないと不味いぞ。。。。。。。。。
87仕様書無しさん:2006/09/24(日) 15:52:52
>>86
ストアドだと思ってたけどさ、ストアードが正しいん?
88仕様書無しさん:2006/09/24(日) 15:59:37
>>63
省略してるって言えばよかっただけじゃないの?
要は、意思疎通できてないだけ。
89仕様書無しさん:2006/09/24(日) 17:06:01
キチガイコテには触らないでいただけます?
90仕様書無しさん:2006/09/24(日) 23:02:34
>>66と似たような経験あるヤシは多いんじゃね?
仕様通りに作ったら文句言われるって。

パターンA)
仕様に疑問があるので、「本当にこれで行くんですか?」と何度も確認
「いいえ、その仕様でお願いします」 → 作る → 「これおかしいでしょ?」
パターンB)
仕様に疑問があるので、「本当にこれで行くんですか?」と何度も確認
「じゃあ、これで行きましょう」 → 作る → 「やっぱり前のでお願いします」

渡されてない仕様に沿ってないと言われたりってパターンも多いな。


…この会社辞めようじゃなくて、この業界辞める方が精神衛生上良いかもしんない。
91仕様書無しさん:2006/09/24(日) 23:15:44
>>90
確かに、何度もその仕様の欠点について説明したとしても
「でも、これでお願いします。」
で通されることあるよな。

顧客の望みどおりに作ったのに、遅いだの、メモリ食いすぎるだの
当たり前だっつうの、お前がそれを望んだんだから。あほか
92仕様書無しさん:2006/09/25(月) 01:53:26
「言質を取る」「仕様の最終確認責任はクライアント」をちゃんとやっとけと。
93仕様書無しさん:2006/09/25(月) 01:54:56
WinMain()とmain()が複数存在するソースを「よろしく」と言われ渡された。
当然コンパイル不可。
簡単なツールレベルだったので、結局0から自分で組みなおした。。
94仕様書無しさん:2006/09/25(月) 02:23:52
一体何を「よろしく」だったのか
95仕様書無しさん:2006/09/25(月) 11:20:23
メカドッグに。
96仕様書無しさん:2006/09/25(月) 11:24:38
ブラックジャックに
97仕様書無しさん:2006/09/25(月) 12:56:37
哀愁に
98仕様書無しさん:2006/09/25(月) 15:11:09
これからもロミオを
99仕様書無しさん:2006/09/25(月) 16:26:46
>>93
爆弾しかけたから解体してみやがれ!って事だったのに;;
100仕様書無しさん:2006/09/25(月) 19:34:30
>>99
ムリっす。下記のようなソースでした。

void funcA()
{
  ・
  ・
return i;
}

int i;

void funcB()
{
  ・
  ・
return i;
}

とかやっているし。怖くて、ループカウンタにiを使えないよ。
まぁこれだけならiを使わないように気をつければ良いだけだけど、
多数のグローバル変数が、とんでもない箇所に宣言されているし、
しかも、いたる所の関数と関数の間でextern のオンパレード。。こんなん誰組んだんだよorz
そもそもコメントが間違いまくっているし。
紛らわしいから、まだコメント無しの方が気持ち良い。。。
101仕様書無しさん:2006/09/25(月) 19:36:53
void なのにretrunしてるw
102仕様書無しさん:2006/09/25(月) 20:05:29
void main()
{
...
printf("( ^ω^)ここまでおkだお");
...
}

さてどうしたものか…。
103仕様書無しさん:2006/09/25(月) 21:58:02
VBのメソッド名がデフォルト
104仕様書無しさん:2006/09/25(月) 22:37:37
デフォルトってなんだ?
105仕様書無しさん:2006/09/25(月) 22:54:42
例えば、こういうことじゃね?
Button1っていうコントロールがあるときにそいつにクリックイベント実装すると、
Button1_Clickって言う名前になるよね。
ボタンがN個あるとさあ大変。
106仕様書無しさん:2006/09/25(月) 23:01:28
ifやwhileがあるわけでもなし、{があるわけでもないのに
何の脈絡もなくインデントが右へ左へ…。
「コピペかな?」と思ってたんだけれど、
そいつの席の後ろから覗いてみてたら、自信満々でtabキー叩いてるんだよ…。
107仕様書無しさん:2006/09/26(火) 00:20:19
それPythonのソースじゃね?
108仕様書無しさん:2006/09/26(火) 00:24:41
>>106
そーゆー奴には『Alt-F8』を教えるのが吉。
・・・VSならな。
109仕様書無しさん:2006/09/26(火) 00:43:36
自動整形すればいいじゃない
110仕様書無しさん:2006/09/26(火) 00:58:13
僕の顔も自動整形してください!
111仕様書無しさん:2006/09/26(火) 03:09:25
明日他システムとのリンケージテストだというのに、
ソースを見たら、メソッドの中身が
{
// 仕様未定
}
だったときかな
112仕様書無しさん:2006/09/26(火) 14:12:14
>>103-105
そんなの、VB製の市販アプリでもよくあること。
フリーソフトでVB製だと、それまたよくあること。

以前出向したある会社は、Button231とかあって、ボタンの番号表があり、
そこに何の機能のボタンであるかを書き込まないといけないルールになっていた。
113仕様書無しさん:2006/09/26(火) 20:16:13
あまりにも多い場合は、案外効率的かもな
114仕様書無しさん:2006/09/26(火) 20:18:44
'なぜかうまく動かないのでClickに
'Private Sub ComboBox1_Change()
Private Sub ComboBox1_Click()

ってのがあったな
115仕様書無しさん:2006/09/26(火) 20:52:18
>>114
コンボボックスとChangeイベントの特性を知らないだけだな・・・
わざわざコメントにするなよ・・・
116仕様書無しさん:2006/09/27(水) 07:27:44
>>114-115
まあ、新人とかじゃね?
それぐらいは辞めようとかじゃなくて微笑ましい、もしくは「ぷっ・・」程度のものだと思うが
117仕様書無しさん:2006/09/27(水) 14:16:57
>>113
コーディング規約上はともかく、ユーザインターフェイスとして激しく間違って
いる気がする。
118仕様書無しさん:2006/09/27(水) 15:44:37
いや、ボタンのキャプションはさすがに変えてるだろ・・・
119仕様書無しさん:2006/09/27(水) 22:05:58
テストプログラム以外で Button1 Button2 な状況だったらそれは辞めたほうがいいな
120仕様書無しさん:2006/09/27(水) 22:27:40
>>119
ネタでもなんでもなくそんなプログラムをいじくり回してる俺に一言。





ていうか、この元コード書いた香具師に精神的損害賠償を請求したい。
121仕様書無しさん:2006/09/27(水) 22:37:01
それを言うなら慰謝料だろう
122仕様書無しさん:2006/09/28(木) 01:36:08
>121
>120は既にヤヴァい状態なんだ、察してやれ。
123仕様書無しさん:2006/09/28(木) 02:08:38
損害賠償請求という言葉は普通にあるが?
124仕様書無しさん:2006/09/28(木) 02:14:30
損害賠償の一手段が慰謝料だろ
125仕様書無しさん:2006/09/28(木) 10:49:08
>>120が元々精神障害者の可能性もあるし
126仕様書無しさん:2006/09/29(金) 01:22:56
とあるJavaコード・・・

AddCommand.INSTANCE.execute(target);
 :
RemoveCommand.INSTANCE.execute(target);

などなど、ほぼすべてのコマンドがSingleton。
Singletonのコマンドを継承したコマンドクラスも、もちろんSingleton。
継承したクラスで上位クラスのexecuteを呼び出すときも、当然Singleton。

あまりのSingletonぶりに発狂しそうになった・・・。
127仕様書無しさん:2006/09/29(金) 01:41:22
>>126
ちゃんと意図があってSingletonにしてるなら問題なさそうだが。
自分の好みに合わないからって発狂するとはおかしくないか。
128仕様書無しさん:2006/09/29(金) 02:29:43
安全でいいじゃないの。

用途によっては。
129仕様書無しさん:2006/09/29(金) 02:49:07
>>126
シングルトンを初めて知って、使いたくなったんじゃないの
新しく知ったら使いたくなるでしょ、仮想メソッドとか

使ってみたいという理由で、仕事で「使ってみる」のはいいとは思わないけどね
130仕様書無しさん:2006/09/29(金) 09:44:36
まぁ、誰もが通る道じゃないか。
そこに居座られると困るけど。
131仕様書無しさん:2006/10/03(火) 21:33:35
>>126
どうやって継承してSingletonにしているのかは謎だが。
132仕様書無しさん:2006/10/03(火) 22:32:23
実はMonostateだったに5ヲン
133仕様書無しさん:2006/10/06(金) 00:36:19
不定長の3次元配列組んだら『キモい』とか言われた。







……そんなにダメかorz
134仕様書無しさん:2006/10/06(金) 01:44:58
>133
用途によるとは思うが、CUBEのシミュレータでも作るのか?
135仕様書無しさん:2006/10/06(金) 01:50:06
キモいも何も用途がわからんことにはコメントのしようがないな
そういう情報を平気で抜いちゃう辺りから大体察せるが
136仕様書無しさん:2006/10/06(金) 09:12:18
>>133
とりあえず「手紙」に書いておけ。
137仕様書無しさん:2006/10/08(日) 18:06:35
なんか意図があるにしても
パッと見でキモイのは事実
138仕様書無しさん:2006/10/09(月) 04:11:35
 
139仕様書無しさん:2006/10/14(土) 22:57:41
自分の会社じゃないけど
世の中こんな会社もあるのかと胸をなで下ろした・・・

システム納めてる会社から
「今、他のシステムで使ってる会社を切るので、そのシステムを引き継いで欲しい」
といわれ、ソースを預かった

そのソースはVBで関数内の変数名がすべて

ポ ケ モ ン の モ ン ス ター
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
の名前だった _(_ _;)




140仕様書無しさん:2006/10/15(日) 00:25:31
private function pikachu() as integer
  〜
end function


んなカンジ?
141仕様書無しさん:2006/10/15(日) 00:42:56
>>140
ひどいレスだな
142139:2006/10/15(日) 12:21:29
>140
関数名でなくて関数の中の変数ね
一応、関数名やグローバルにある変数とかはちゃんと意味ある名前なんだけど・・・

これは不覚にもちょっとうけた

Dim Pikachu As integer
Dim Raichu As integer


RAICHU = PIKACHU + 1


関数の中が20ステップぐらいならまぁ合間に直していく気にもなるんだけど
600ステップの関数とか勘弁して欲しい・・・_(_ _;)


143仕様書無しさん:2006/10/15(日) 12:58:49
>RAICHU = PIKACHU + 1
ピカチュウが進化してライチューか、理にかなってるな
144仕様書無しさん:2006/10/15(日) 17:12:12
VBで開発するとか言ったらこの会社やめるw
145仕様書無しさん:2006/10/15(日) 18:30:23
>>144
安心してください。HSPです。
146仕様書無しさん:2006/10/15(日) 19:14:14
>>144
安心してください。ActiveBasicです。
147仕様書無しさん:2006/10/15(日) 19:23:13
ま、Perlより楽そーだが。
148仕様書無しさん:2006/10/15(日) 19:39:32
>>144
安心してください。RealBasicです。
149仕様書無しさん:2006/10/15(日) 21:43:59
>>144
安心してください。ハンドアセンブルです。
150仕様書無しさん:2006/10/16(月) 00:15:23
>>144
安心してください。16進ダンプ手打です。
151仕様書無しさん:2006/10/16(月) 00:53:06
>150
TK-80ktkr
152仕様書無しさん:2006/10/16(月) 00:59:26
C言語とかを、英語やスワヒリ語と同列に扱う奴がいたら変に思うけど、
マシン語が話せますって奴がいたら、同列でも認めるわ
153仕様書無しさん:2006/10/16(月) 02:11:49
ソースコードかどうか微妙だが、途中から入ったプロジェクトのコードの動作が秀逸だった。
Makefile を解析するやつを引き継いだのだが、そいつのトークナイザが素晴らしい。

a.out: src/sub1.c sub2.c

をトークナイザが分割すると、

「a」 「.」 「out」 「:」 「src」 「/」 「sub1」 「.」 「c」 「sub2」 「.」 「c」

のように細切れで返ってくる・・・。分割しすぎですよ・・・ orz
ここまで分割してしまうと、スペースを残しておかなければ意味が取れなくなりますよ。

これ書いた人ダレデスカ。ヨク、ウゴイテイマスネ。
154仕様書無しさん:2006/10/16(月) 03:16:30
Z80のころはアセンブラのソースより16進ダンプのが見やすいってやついたけどね
相対アドレス計算しやすいとか言ってたw
155仕様書無しさん:2006/10/16(月) 03:20:14
>>153
確かに、Makefile解析するのにそこまで分解する必要はないが
パーサで解析してたら問題無いじゃん
ちゃんと動いてても不思議じゃない
あんたのレベルが低すぎじゃね?
156153:2006/10/16(月) 03:42:41
>>155
うん、ちょっとひどく言い過ぎた。ごめん。
でも、率直に言うと、まともに動いていないんだ。

サンプルとして入っていた簡単な Makefile だけ解析できていたんだ。
お客様の Makefile が解析できていない状態で引き継ぎ食らったんだ。
157仕様書無しさん:2006/10/16(月) 03:45:20
char* pDate1 = "20061016";
char* pDate2 = "20061017";
// 日時の比較
if(pDate1 < pDate2)
{
・・・
}
40才超えた人の書いたコード。本当に馬鹿な人っているのですね
158仕様書無しさん:2006/10/16(月) 04:08:09
40才超えててCが解らないというのはどういう経歴の人だろう
159仕様書無しさん:2006/10/16(月) 04:15:17
40歳超えてるからCが解らないんじゃね?COB(ry
160仕様書無しさん:2006/10/16(月) 10:11:02
>>157
それは衝撃的だな。
>>158
マイコンやパソコンと全然係わって来なかった人なのかも。
汎用機一筋だったりするとCが分からなくても問題ないだろうし。
161仕様書無しさん:2006/10/16(月) 10:14:28
>>153
なんでこの時代に Makefile を解析するプログラムを
わざわざ自作しているのかが気になるところだ。
162仕様書無しさん:2006/10/16(月) 10:29:47
>157
そいつ、VB経験者ぽいな
VBだと文字列同士の大小比較とか非常識なことができるから
163仕様書無しさん:2006/10/16(月) 10:36:59
昔の BASIC とかもできたし、さほど非常識とも思わないが、
少なくとも C を分かっていないことは確かだな。
164仕様書無しさん:2006/10/16(月) 19:13:40
ああ、BASIC臭いな。
COBOLでこういう文字列比較って出来るのかどうか知らんが。
165仕様書無しさん:2006/10/16(月) 20:39:42
JavaでもC#でも文字列の大小比較(辞書式)はできるけど
少なくとも C を分かっていないことは確かだな。
166仕様書無しさん:2006/10/16(月) 22:08:49
コメントが

/* */

じゃなくて

/* */

だった
167仕様書無しさん:2006/10/16(月) 23:16:18
↓小悪魔ボディ
168仕様書無しさん:2006/10/16(月) 23:35:38
あらららら    \ \ / |       \ヽ      /    /
           \ 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      /    ヽ   |
169仕様書無しさん:2006/10/17(火) 07:54:55
>>157
宮崎君、きみまだこの業界にいたの?
前にそれはダメだろこのボケ氏ねって優しく教えてあげたじゃないか。





って言葉が脳裏をよぎった
170仕様書無しさん:2006/10/17(火) 09:49:23
>>166
/*
a = 1;
/* コメント */

のような感じのコメント閉じ忘れのやつは見たことがある。
コンパイルエラーは出ないのだが間でやってる初期化などの
処理がされないのでかなり後の方の処理でそれを使おうとした
所で異常な動作になった。

探すの大変だったよ。
171仕様書無しさん:2006/10/17(火) 19:36:58
public static int main(String[] args)
orz
172仕様書無しさん:2006/10/17(火) 22:52:31
あるあるw
173仕様書無しさん:2006/10/17(火) 23:27:29
>>171
 それは、やめようとおもうレベルじゃないだろ。
174仕様書無しさん:2006/10/18(水) 03:59:05
public static final と書いてから final を消して void main... と続ける
175仕様書無しさん:2006/10/18(水) 07:40:26
>164
COBOL も STR1 < STR2 的な文字列比較できるね
176葉猫 ◆Jz.SaKuRaM :2006/10/18(水) 11:35:23
SQLでもできるな (・∀・)
177仕様書無しさん:2006/10/18(水) 11:52:08
失せろ無能
178仕様書無しさん:2006/10/18(水) 22:49:01
なんでもいいけど
英語と日本語を比較して、「だから英語は・・・」なんて文句言ってる(ような)
頭悪いヤツが結構いることは確かだ。
179仕様書無しさん:2006/10/18(水) 23:48:22
別に日本語と英語を比較して、その上で英語(または日本語)の難点を
指摘することは特段問題ないと思うが。同音異義語や類語が多かったり、
立場の差で言葉を使い分けなければいけなかったり、助詞などのきめ細かい
使い分けが必要だったりして、他国人がもっとも習得しづらいのは日本語だ
ということは統計的にも裏付けされているわけで。

この際これは関係ない。普通に考えてみろ。文字列へのポインタを比較して
線形メモリ内での位置関係を知りたいなんておもわんだろ。
よっぽどハード寄りのことをやってる奴でもない限り。
もっと柔軟に文字列自体を比較してくれた方がどれだけ取っつき易いことか。
180仕様書無しさん:2006/10/19(木) 02:53:05
良くも悪くも高級アセンブラ。
181仕様書無しさん:2006/10/19(木) 06:16:25
関係ないけど、日本人は日本語がもっとも難しい言語だと思いたいらしい。

>179
> 他国人がもっとも習得しづらいのは日本語だ
> ということは統計的にも裏付けされているわけで。

ソースは?
182仕様書無しさん:2006/10/19(木) 09:51:21
構文の構成順序
漢字と平仮名からなる単語の理解
それらから発生する謙譲語丁寧語尊敬語
”もっとも”かどうかは分からんがかなり習得しずらい
183仕様書無しさん:2006/10/19(木) 11:30:18
>>181
>ソースは?

会社を辞めようと思ったソースか?
違うなら提示する気はないよ。そっちの方向で話を進める意志はないから。


以上。
184仕様書無しさん:2006/10/19(木) 13:59:04
本質ではない細かいことに突っ込むのがプログラマ
185仕様書無しさん:2006/10/19(木) 22:04:55
>>183
> 会社を辞めようと思ったソースか?
こっちでいいから全部晒してくれ。
186仕様書無しさん:2006/10/19(木) 22:40:02
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];
  ・・・
};
になりました・・・。今までどんな仕事してきたんだよ。
アンタが抜けた後にデータ長変更の依頼きたよ・・・○| ̄|_
187仕様書無しさん:2006/10/19(木) 22:50:41
>>183
そっちの方向で話を進める意志はないなら書くなよ
君のスレはこっち
http://pc8.2ch.net/test/read.cgi/prog/1159502192/
188仕様書無しさん:2006/10/20(金) 20:55:57
>>186
ちょっと待て。お前はそれをどう書いて欲しかったんだ?
189仕様書無しさん:2006/10/20(金) 21:03:05
int TEISUU[16];
190仕様書無しさん:2006/10/20(金) 21:13:42
>>186
どういう意味?
191仕様書無しさん:2006/10/20(金) 21:37:49
>>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; // 今現在たまたま値は同じだけど、本来関係無い・・・
193仕様書無しさん:2006/10/20(金) 23:44:55
>>186
そりゃーあんたにも問題があるよ。
そういうのはコミュニケーションがちゃんと取れてれば防げるだろ。
194仕様書無しさん:2006/10/20(金) 23:51:41
>今までどんな仕事してきたんだよ。

と書いてるから、
相手は30過ぎの経験者だし理屈はわかってて単に手抜きしてるだけかと思ったら、
なぜ何のために定数を定義するのかわかってませんでした、ということでは。

設計書を見てみないと、 hogeId の個数が常に hogeCode の個数と等しいと
誤解していたという可能性も捨てきれないが。value と flag なんか一対一対応
してそうな見掛けだし。
195仕様書無しさん:2006/10/21(土) 01:35:50
if (a == b) c = b;
else c = a;
196仕様書無しさん:2006/10/21(土) 02:10:12
c = a;
197仕様書無しさん:2006/10/21(土) 02:15:04
// とりあえず苦肉の策!!
198仕様書無しさん:2006/10/21(土) 03:14:13
>197
ごめん俺それときどきやるorz
199仕様書無しさん:2006/10/21(土) 08:06:52
>>157
むしろ今時の言語やDBじゃ文字列比較できる。Cはできないのか。アフォだなぁ・・・・。
200仕様書無しさん:2006/10/21(土) 10:57:39
出来ない言語でやってるから書いてだろうに、
他の言語を持ち出してくるなんて
>199はほんとにバカだなぁ。
201仕様書無しさん:2006/10/21(土) 11:06:42
>>200
日本語でおk
202仕様書無しさん:2006/10/21(土) 11:41:27
>>200
C言語でおk
203仕様書無しさん:2006/10/21(土) 12:00:43
gcc -std=c2006 hoge.c マダー?
204仕様書無しさん:2006/10/21(土) 12:01:50
YYYYMMDDだからstrncmpで
205仕様書無しさん:2006/10/21(土) 19:58:43
stricmpが標準関数だと思っていた漏れ様が通り過ぎマスタ
206仕様書無しさん:2006/10/21(土) 21:51:54
Cは大変らしー
207仕様書無しさん:2006/10/23(月) 14:37:17
Cは低級言語
208仕様書無しさん:2006/10/23(月) 16:39:26
A,Bでやめる奴はヘタレ
209仕様書無しさん:2006/10/23(月) 22:19:49
>207
これのことか?

> 917 : It's@名無しさん [sage] DATE:2005/11/30(水) 23:37:30
> >899
> C言語は低級言語なので、それで記述されたプログラムをコンパイルして出来たバイナリは、
> ギザギザしてて、バス上をデータ転送するときにひっかかってパフォーマンスが低下します。
> JAVAはそういうことを防ぐために、滑らかな膜で包んでいるので、高速な転送が可能です。
> FSKのような仮想マシンは、JAVAとは異なりますが、ギザギザが出にくいようなコードを
> 出力するための工夫です。
210仕様書無しさん:2006/10/23(月) 23:25:37
低レベル言語の意味を理解していないのはお約束です
211仕様書無しさん:2006/10/23(月) 23:36:52
ギザギザワロス
212仕様書無しさん:2006/10/24(火) 04:07:53
>>208
Aにも満たない道程君はどうするといいでつか?
213仕様書無しさん:2006/10/24(火) 05:53:13
>>209
 ギザギザして無いと感じにくいから白濁液がでないじゃん。
 JAVAだと出た液も回収されちゃうし。
214仕様書無しさん:2006/10/24(火) 10:19:28
>>209
なんだそりゃ。その書き込みは知らなかった。
でもCが低級言語というのは昔から言われていたことだよ。
ギザギザとは言われてなかったと思うけどね。w
215仕様書無しさん:2006/10/24(火) 16:21:36
低級っていうか「低水準言語」ね。
他のいわゆる高水準言語と比べて劣っているという意味では決してないんだがねw
216仕様書無しさん:2006/10/24(火) 20:01:45
庭球言語
217仕様書無しさん:2006/10/24(火) 20:18:17
庭球ってアレか?相手の顔面に黄色の球をぶち込もうとして、必死に避けるアレか?
218仕様書無しさん:2006/10/24(火) 20:20:37
「サーバ落とし」で
返したっ!
219仕様書無しさん:2006/10/25(水) 10:12:28
>>209
それ、超初心者向けの説明の中で見たことがあるよ。
Windows用のソフトがなぜMacOSで動かないのか、という設問で
それぞれのOSの表面は違った形に凸凹していて、プログラムが
その凸凹とうまくかみ合わないと動作しない。
JavaアプリだとJava仮想マシンが間に入って、凸凹を合わせて
くれるからどのOSでも動作するとか。

パソコン初心者に説明するには便利な図解なのでたまに使うけど、
そういう理解のされ方をする危険があるのか…。
220仕様書無しさん:2006/10/25(水) 11:46:07
なるほどなぁ。。。

ギザギザもわかった。
その理解で、Javaからみた普通の実行ファイルは
ギザギザしてるからパフォーマンスが落ちるとか思うのも
理解できる気がする。

凸凹だからうまくはまらなくて動かない、という理解は
難しいんだろうな。普通は凸を凹に入れるから。
221仕様書無しさん:2006/10/25(水) 11:53:49
ギザギザってそういう意味だったのか。
しかしバス上をデータ転送するときに引っかかるってのは・・・。
222仕様書無しさん:2006/10/25(水) 11:55:12
そこは無知故の妄想が埋めた部分だろう
223仕様書無しさん:2006/10/25(水) 19:00:09
>209 
それ、SONYのウォークマンスレかなんかのヤツだろ。見た覚えがある。
もちろん書いたヤツはジョークで書いてる。
224仕様書無しさん:2006/10/25(水) 21:54:09
中国語を話す人と日本語を話す人が居るのですが、二人は相手の国の言葉がわからない為に意思疎通が取れません
そこで登場するのがホンヤクコンニャク!と思ったけれどホンヤクコンニャクは現代の技術ではまだ実現できません
そこで登場するのが翻訳機○○!これは様々な国の言葉を、たとえば中国語を吹き込むと日本語に、日本語を吹き込むと中国語に変換して再生してれる優れものなんです!
一つだけホンヤクコンニャクと違って問題があるのですが、それは翻訳するのに時間がかかることなんです
でも、わざわざ相手の国の言葉を勉強するよりはましですよね?
皆さんもこの翻訳機○○を使って様々な国の人と会話を楽しみましょう^^
225仕様書無しさん:2006/10/26(木) 00:39:07
>224
で、それひょっとしてBrainF*ckかなんかのコード?
226仕様書無しさん:2006/10/27(金) 01:41:52
ソースコードというかコメントだが、

/* ここ自信ありません */
227仕様書無しさん:2006/10/27(金) 05:40:38
とりあえず暇つぶしに俺のHPw
http://afox.s206.xrea.com/
228仕様書無しさん:2006/10/28(土) 15:48:43
C++にて。辞めようとまでは思わなかったが、実際に動いていたことに驚いたコード

((C*)0)->f();

f()はクラスCのメンバ関数で、メンバ変数にはアクセスしないがstatic指定はない。
こんなの動くんだなぁ。
もしかして(どこぞの業界では)普通だったりするんだろうか?
229仕様書無しさん:2006/10/28(土) 16:27:13
>>228
あべしでは普通
230仕様書無しさん:2006/10/28(土) 19:07:06
>>228
windows、MFCで実際にあるコード
_AFXWIN_INLINE HWND CWnd::GetSafeHwnd() const
{ return this == NULL ? NULL : m_hWnd; }

thisに触んなきゃ動くんじゃないかな
231仕様書無しさん:2006/10/28(土) 20:31:33
規格では未定義動作だけどな。
232仕様書無しさん:2006/10/29(日) 01:29:57
やめようとは思わないが以下 code

aaa() {
if ( a )
(処理A)
if ( b ) {
if ( c ) {
   (処理B)
      }
}
}


233仕様書無しさん:2006/10/29(日) 01:31:35
ずれたー

aaa() {
  if ( a )
    (処理A)
    if ( b ) {
      if ( c ) {
        (処理B)
      }
    }
  }
234仕様書無しさん:2006/10/29(日) 02:10:08
if (b && c) でおkってことか
235仕様書無しさん:2006/10/29(日) 02:27:02

if (a == true) {

} else {
  処理1
}


・・・色々とアレ。
236仕様書無しさん:2006/10/29(日) 02:31:35
・規約で「if」と「else」の両方を記述しなければならない
・規約で評価式にnotをつけてはならない
・規約で評価式は「==true」をつけねばならない
以上、どれも実際にあった規約
これらが重なれば…
237仕様書無しさん:2006/10/29(日) 02:35:18
if ((a == false) == true) {
    ……
} else {
}
238仕様書無しさん:2006/10/29(日) 02:53:36
お、よけいひどくなったな
239仕様書無しさん:2006/10/29(日) 03:33:37
a とか b とか混乱させてしまったようだ。
インデントがずれまくっているということ。
どうやら、if 文には {} をつけるのが癖のようだが、 if ( a ) の箇所だけ
{} が無く、ぶら下がりになっているのに本人気づいていないようだ。
(まぁ、気づいてたらなおすだろーが,,)
240仕様書無しさん:2006/10/29(日) 09:25:46
>>233
一応つっこんでおくが、処理によってはcを見ると落ちるとかいうこともあるから、
その書き方だけで愚痴られても何とも言えない。

241仕様書無しさん:2006/10/29(日) 09:27:04
>>239
ん?どゆプラットフォームだ?

普通ネスト異常でコンパイルできないだろ。脳内ストーリーなら消えろw
242仕様書無しさん:2006/10/29(日) 09:50:57
>>241
ネストは問題なさそうに見える俺は逝ってよしですか。
243仕様書無しさん:2006/10/29(日) 10:09:50
>>235のは別に問題ないと思う。
自分もよくそうやって書くし。否定を最初のifに書くのが気持ち悪いからってだけの理由。
でもって肯定のときは何もしないんだぞ、というのをなんとなく強調しておきたいときとか。
全部の分岐処理を書いておいた方が処理し忘れとかないし
全部書くとなると最初に肯定を書く方が読みやすいし
特定のif文だけ否定だけ書いておくと、あとから『流し読み』するとき
そこでつっかえる=可読性がやや低くなる。
244仕様書無しさん:2006/10/29(日) 10:17:20
・・・って思ったら{の話か・・・orz
245仕様書無しさん:2006/10/29(日) 10:50:17
>>231
そうなのか?
てっきり this に NULL が入るだけだと思ってたが。
246仕様書無しさん:2006/10/29(日) 10:54:01
>>243
{} の中に何も無いとコンパイルでこける処理系も有るよ。
if( a ) {
;
}
else {
処理
}
でなくちゃ駄目。
247仕様書無しさん:2006/10/29(日) 12:35:54
>>237
イヤアアアアアアアアアアアアアアア
248仕様書無しさん:2006/10/29(日) 14:33:35
>>243
せめて
if (a == true)
じゃなくて
if (a)
にしろや
249仕様書無しさん:2006/10/29(日) 14:45:51
trueが0かもしれないぞ。
>>235な場合漏れは {
/*continue*/
}とか書いちゃうw
書き忘れちゃうぞ〜という意味で。
250仕様書無しさん:2006/10/29(日) 14:47:28
>trueが0かもしれないぞ。
論外だろw
251仕様書無しさん:2006/10/29(日) 15:17:09
booleanをサポートする言語であれば、if文は true か false かで判断されるから、
数値的にどうだろうと関係ない。

Cのような場合は、TRUE == 0 の場合を考えると比較しなきゃならんが、
そんなものはCの真偽の扱いと反するから、「TRUE」「FALSE」と名前がついた
真偽値とは別ものと考えるべき。
FALSE == 0 が確定してるなら、if (boolValue) とか if (!boolValue) と書くほうが
間違いがないし、見た目も無理がなく、しかも無駄のないコードが生成される。
252仕様書無しさん:2006/10/29(日) 16:30:05
ところが「『== TRUE』『== FALSE』がないのはわかりにくい」と
大多数の人間が言って、コーディング規約に組み込まれてしまった。

という話が過去スレになかったか?
253仕様書無しさん:2006/10/29(日) 17:40:08
== 0 なら書いてもいいんじゃねーの?でオワタ
254仕様書無しさん:2006/10/29(日) 18:05:20
255仕様書無しさん:2006/10/29(日) 23:50:18
isupper
256仕様書無しさん:2006/10/30(月) 02:46:29
isvipper
257仕様書無しさん:2006/10/30(月) 03:37:13
isneat
258仕様書無しさん:2006/10/30(月) 03:38:05
ishikki
259仕様書無しさん:2006/10/30(月) 03:43:39
ishonmonooppai
260仕様書無しさん:2006/10/30(月) 03:53:50
>>257
isneet じゃね?
261仕様書無しさん:2006/10/30(月) 03:54:39
>>258
ishikky じゃね?
262仕様書無しさん:2006/10/30(月) 03:55:14
>>259
isアッー!!
263仕様書無しさん:2006/10/30(月) 10:12:51
issimoda
264仕様書無しさん:2006/10/30(月) 10:22:32
isimouto
265仕様書無しさん:2006/10/30(月) 10:35:40
isthisapen
266仕様書無しさん:2006/10/30(月) 10:45:01
>>252
あろうとなかろうと、可読性からして俺は == を書くことを支持し続けるけどな

単に新人の頃、パッと見で判断できなかった苦労があっただけで
今は当然感覚的にわかっているけどw

初心は大切
267仕様書無しさん:2006/10/30(月) 15:09:57
if(!this.IsAPen) を if(!(this.IsAPen)) にしないと死んじゃう病をなんとかしたい。
268仕様書無しさん:2006/10/30(月) 16:35:26
strcmp系は必ず0と比較するなぁ。
そこに現れる == や != が実際に意図している比較なので読みやすく思える。

if (strcmp(a, b)) { ... }
if ( ! strcmp(a, b) ) { ... }
とは書かない。
269仕様書無しさん:2006/10/30(月) 20:04:50
>>268
boolean型を返さない関数ではやりません
可読性著しく落ちるし
270243:2006/10/30(月) 20:06:03
>>248
それは気分次第。
271仕様書無しさん:2006/10/30(月) 20:29:03
気分でコーディング変えちゃうのかよ
272仕様書無しさん:2006/10/30(月) 20:30:11
strcmp系の戻り値は意味的にも数値なんだし、0と比較で良いね
273仕様書無しさん:2006/10/30(月) 22:04:18
>>240は&&の仕様を知らないのだろうか
274仕様書無しさん:2006/10/30(月) 22:41:57
>>273
VBでそれやってみ。
前の条件式がfalseで後ろの条件式で例外飛ぶパターンで。

# ショートサーキットの効かない場合って結構あるよ
275仕様書無しさん:2006/10/30(月) 23:11:26
>>274
場合じゃなくて言語だろ。 VB やらない人にはさっぱりそんな場合は無いんじゃない?
276仕様書無しさん:2006/10/30(月) 23:13:27
どう見ても C/C++ にしか見えないソースに、何で VB が出てくんの?
277仕様書無しさん:2006/10/30(月) 23:40:04
VBしか知らないんだろw
278仕様書無しさん:2006/10/30(月) 23:49:18
と、必死の罵倒
279仕様書無しさん:2006/10/31(火) 00:02:45
まあ、まぬけを見たら叩かずにおれんのがチャネラーの性だから
280仕様書無しさん:2006/10/31(火) 00:08:26
と、必死の誤魔化し
281仕様書無しさん:2006/10/31(火) 00:28:02
for(i=0;i<MAX;i++)
{
if(a = COND_A)
処理
}

if文の中にfor文いれれば済む状況でわざわざループごとに比較
282仕様書無しさん:2006/10/31(火) 00:40:26
ループ中に別の割り込み処理でaが書き換えられてしまう場合があって
毎回aをCOND_Aに更新したいんでしょ?
283仕様書無しさん:2006/10/31(火) 00:43:18
言語がわからんが if の中は比較演算子だと判断していいのか?
284281:2006/10/31(火) 00:53:45
あ、ごめ、恥ずかしい。

if(a==COND_A)
285仕様書無しさん:2006/10/31(火) 01:07:23
>>274
>>273がバカなのはわかった。でもJavaにもあるぞ。&&は。
286仕様書無しさん:2006/10/31(火) 01:12:30
>>285
Java に && があるから何だと言うのだろう。
287仕様書無しさん:2006/10/31(火) 01:14:29
>>266
ちなみにC、C++だと
#define is ==
#define isnot !=
#define or ||
#define and &&
で、is,isnot,or,and使ってた。たしかに=などと書き間違いはない。
288仕様書無しさん:2006/10/31(火) 01:18:39
>>287
それは辞めようと思ってしまうかもしれない。
289仕様書無しさん:2006/10/31(火) 01:42:17
>>287
いらんことしないで普通に書けよ
290仕様書無しさん:2006/10/31(火) 01:51:14
#define もし if
#define ならば {
#define 以上 }
291仕様書無しさん:2006/10/31(火) 01:53:48
#define でもね else
292仕様書無しさん:2006/10/31(火) 02:12:12
CreateError()
293仕様書無しさん:2006/10/31(火) 07:46:59
>>287
C++だとor,andは予約語で定義されているから必要ない。
ついでに言えばiso646.h使えばCでも必要ない。
294仕様書無しさん:2006/10/31(火) 09:51:57
>>273
C/C++しか知らないってカワイソス
295仕様書無しさん:2006/10/31(火) 22:20:44
VBしか知らないよりは
296仕様書無しさん:2006/10/31(火) 22:32:04
cobo(ry
297仕様書無しさん:2006/10/31(火) 22:51:22
コボちゃんが何か?
298仕様書無しさん:2006/11/01(水) 02:21:51
僕には、COBOLの世界ってすごく羨ましいと感じる時があったんだ。
生まれてこのかたオープン系のシステムにしか携わったことが
ないからホストの仕事っていうだけで、どんなすごい仕事をしている
だろうと思っていたし。
この期待感というのは、未知のものに対する畏怖の念とかそういう
類のものかもしれない。
COBOLを駆使して仕事してる人たちを見ると毎日毎日休む間もなく
一生懸命、深夜まで働いているし本当にご苦労さんと思っていた。

この人たちと会話するまでは。。。。

毎晩毎晩遅くまでかかってソートのロジックを構築しただの、
検索処理でインデックスも使わずに1件1件しらみつぶしに
やるためのロジックを構築するのに何日も掛けて完成させたの
だの聞いて、

こいつらほんまもんの ア ホ だ! ということに気が付いてしまった。
普通10分で終わる仕事が3日?
半日で終わる仕事が5日掛かる?
信じられんほどの馬鹿だ。しかもシステムについても業務について
もほとんどまともな知識が無い。ベテランだというのに
299仕様書無しさん:2006/11/01(水) 02:46:37
>>298
そういうのはベテランと言わないだろう。
ただ勤続年数が長いだけ。
300仕様書無しさん:2006/11/01(水) 03:23:46
>>298-299
そういう勤続年数が長いだけのコボちゃんしか居ない会社に居たことがあるよ。
バカソートもまともに組めない人達。
彼らがクイックやバイナリを組むとしたら余裕で3日は掛かるだろうなぁ...

勿論かなり昔の話だよ。今はもう絶滅してるでしょ。
301仕様書無しさん:2006/11/01(水) 14:27:58
ー ̄)
302仕様書無しさん:2006/11/01(水) 22:03:15
>>286
バカにタダでは教えてやらん。疲れるから。
303仕様書無しさん:2006/11/02(木) 17:44:52
ソートか・・・以前一回組んだのを使いまわしてるから、今すぐそらで書けって言われると
ちょっと時間かかるかもしれんorz
304仕様書無しさん:2006/11/02(木) 22:43:44
ソートなんていまどき1から書くやついるの?
ライブラリだってあるだろうし
WEBにだって転がってる(信用できるか知らんが)
305仕様書無しさん:2006/11/02(木) 23:17:25
>>298>>300も所詮はコボちゃんあがりだから、現代的なプログラミングの話題についていけないんだよ。
306300:2006/11/02(木) 23:59:27
>>305
今はどうか知らんけどCOBOLにライブラリと呼べるような物は無かったかと。
もっともCOBOLあんまり知らんのだけどね。

コボちゃんだったのは3ヶ月だけ、その後はBASICやらされた。
理由はBASIC書ける人間が居なかったから。
半年で1種とって、暮れの寸志貰って、速攻辞めました。
307仕様書無しさん:2006/11/03(金) 02:51:37
で、今は何をやってるんだ?
308300:2006/11/03(金) 03:31:58
メイドカフェで働いてる。
309仕様書無しさん:2006/11/03(金) 09:08:09
ワロワロス
310仕様書無しさん:2006/11/03(金) 12:34:32
シングルトンのコンテキストがグローバル
311仕様書無しさん:2006/11/04(土) 09:22:24
「この機能は作ったことあるので流用したら?」と言ったら
いろんなシステム開発にそのままコピペ流用され、
参加してないPrjでもなぜか「作成者:オレ」

クレーム入れられても・・・
せめて名前は変えとけよ・・
312仕様書無しさん:2006/11/04(土) 09:29:32
>>311
あるあるwwwww
313仕様書無しさん:2006/11/04(土) 11:12:28
データの年月日が全て昭和で書かれているやつ・・・

だから、
2006/11/04→81/11/04
になっている・・・
314仕様書無しさん:2006/11/04(土) 12:03:51
>>313
ひょっとして斜め向かいの席のKさんですか?
3151999:2006/11/04(土) 12:17:20
>313
それ、2000年対応のパターンの1つだよw
格納桁が増やせないデータに対する苦肉の策
316仕様書無しさん:2006/11/04(土) 12:29:59
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);
:
}

...こんなの、ポリモフィズムもへったくれもない。
317仕様書無しさん:2006/11/04(土) 12:37:53
>>316
会社を辞めようとまでは思わないが、
デザインパターンを知らないヤシが組んだら
大抵、そんな風になる。
318仕様書無しさん:2006/11/04(土) 12:40:20
どっちかつーとデザパタよりもタイプセーフについて理解した方がいいな
319仕様書無しさん:2006/11/04(土) 12:41:27
>>312
本人が既にpj離れててもコピペされて新規作成者になってる……
なんか気持ち悪いよなぁ
320仕様書無しさん:2006/11/04(土) 12:56:19
ソースに本人の名前を書かせるのって意味あんの?
本人にしても細部まで覚えてるのってせいぜい1年ぐらいじゃね?
大体、その本人がいなくなる可能性もあるわけで、そうなると全く意味ないじゃん。
何かの修正が必要になった時に、その製作者に連絡がとれて、その製作者も内容を
覚えていてくれる可能性に望みを託しているということ?
ソースの概要コメントに書くのは会社名とプロジェクト名ぐらいでいいと思うんだけど。
本人の名前書かせるんだったら、上司とかPLの名前も書かせろよ。
321仕様書無しさん:2006/11/04(土) 13:12:18
>>320
プロだからじゃないの?
322仕様書無しさん:2006/11/04(土) 13:14:11
覚えてなくても読めば思い出すだろ
323仕様書無しさん:2006/11/04(土) 13:20:29
作者の名前はあっても、変更者の名前がなく、
紆余曲折を経てさんざん弄られたソースが巡り巡って
作者の俺に戻ってきたことがあったが、もはや俺にも
理解不能な状態になってたことがあった。
324仕様書無しさん:2006/11/04(土) 13:23:41
>>320
責任範囲の明確化

上司:こんなくそクラス誰がつくりやがった!

おれ:あいつです rア

アフォ新人が匿名でがんがんだめソースを追加してる。
あとで不具合が多数あがった時、犯人探しに役立つ。
(昔ほんきで他人名書いてる奴みつけた時、どっか通報できないのかな、と思った・・)
325仕様書無しさん:2006/11/04(土) 13:24:20
>>311
俺は逆に、俺が一から作り上げたシステムを別のやつに引き継いだら
全てのソースの作成者をそいつの名前に書き換えられた。

2年程出向して戻ってきたら、なぜかそのシステムを作ったのはそいつで
俺は役に立たなかったという話になっててビビったよ

326仕様書無しさん:2006/11/04(土) 13:27:33
つバージョン管理システム
327仕様書無しさん:2006/11/04(土) 13:31:02
>>323
ソース管理ソフト使ってなかったの?

それで、変更者の名前もないなんて、たまらないね
328仕様書無しさん:2006/11/04(土) 13:33:21
>>325
いる!そういう奴いる!!

人が作ったソースを流用して、作成者名だけそいつに
なってるの!
329仕様書無しさん:2006/11/04(土) 13:34:28
流用する場合名前変えたらええんか変えんのがええんかはっきりせえ
330仕様書無しさん:2006/11/04(土) 13:38:19
>>329
参考にして新しく作ったのなら名前変えてもいいけど
ソースファイルをそのまま取り込んでるのに
名前だけ変えるのって、あつかましくない?
331仕様書無しさん:2006/11/04(土) 13:39:00
自分のメリットになりそうな場合は変える。あとで面倒になりそうな場合は変えない。
ま、経験に基づく大人の判断ということでひとつ。
332仕様書無しさん:2006/11/04(土) 13:39:36
>330
>311-
333仕様書無しさん:2006/11/04(土) 13:42:30
無、無限るーぷ


ま、新しい議題と行きますか。
334仕様書無しさん:2006/11/04(土) 13:56:41
だって同じことが繰り返されるんだぜ?
335仕様書無しさん:2006/11/04(土) 14:08:24
>>330
xxxxを流用
xxxxを転用
って書けばいいんじゃね?
(客に見られるとマズい文言かな?)
336仕様書無しさん:2006/11/04(土) 16:10:23
>>335
goto >>331;
337仕様書無しさん:2006/11/04(土) 16:10:55
ヌル(・ω・)ポリーン
338323:2006/11/04(土) 20:09:24
>>326
次の次のプロジェクトに機能ごともっていったので、前プロジェクトのバージョン管理見ないとわからないというオチ

>>328
ま、俺が戻ってきたのは、次のプロジェクトはメニュー変更のみで馬鹿でもできる仕様変更、
その次で機能大幅改善ということで、そいつが「俺が組んだ」と言っておきながら
ちょっと触るとバグ出しまくる最悪状態だったので、最初のPGカムバック!だったんだけどねw

思い出しながらひょいひょいっとバグ直して新機能追加してたら
 「初めてみるソースでそれだけ直せるなんてスゴイ」
とリーダーから評価をもらい、それはそれでいいのだが「は?」と聞き返したら・・・

というものでした。結果オーライ(そいつがうそつきだったというオチ)なので構わないけど、
みんなも自分の担当したソースを誰かに引き継いだ後は要注意だぞ!w
339仕様書無しさん:2006/11/05(日) 01:43:08
' チェックボックス未チェック処理
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
340仕様書無しさん:2006/11/05(日) 01:59:16
_ で改行エスケープするのは10行まで有効だからなぁ……
チェックボックスが30個超えるまではその要領で続けることになるわけかorz
341仕様書無しさん:2006/11/05(日) 02:04:49
そんな制限あんのか
342仕様書無しさん:2006/11/05(日) 02:14:30
>>341
あるよ。普通にエラーになっちゃう。
既存の糞コードをせめて見栄えよくインデントしてやろうとする試みも絶たれる。
343仕様書無しさん:2006/11/05(日) 02:23:54
ほーそれは勉強になった
タブン役に立つことはねーだろうけどw

でだ 最低限の話だが
For-Next でどれかがチェックされてたらOKにしちゃいかんのか?
344仕様書無しさん:2006/11/05(日) 02:52:25
>>339
チェック用の関数作ればいいのに。。。
345339:2006/11/05(日) 03:16:39
まぁ、「この会社」のVB厨が「製造」したコードなんてこんな感じのがたくさんあるんだよ。
いちいち書き換えるよりSQLだけ抜き出してC#かなんかで作り直した方が現実的に早い。

//SQLも地雷なわけだが
346仕様書無しさん:2006/11/05(日) 03:18:20
むしろSQLのほうが危険なのでは?と思うのだが
347339:2006/11/05(日) 03:32:51
>>346
>SQL
とりあえず今回は既に動いているシステムを修正しているんだけど、常識的な修正を施すだけで劇的にパフォーマンスが変わって面白い。
「俺、神じゃん?」みたいな錯覚に陥る。

こういうの仕込んでおけば自分の株あげるのにいいな。
348仕様書無しさん:2006/11/05(日) 03:34:46
>常識的な修正を施すだけで劇的にパフォーマンスが変わって
だろうなあ
見たわけじゃないがそんな気がする
349仕様書無しさん:2006/11/05(日) 04:01:33
作業経過より抜粋
'Option Explicit
'頼むから↑くらいつけてくれ
''つけたらコンパイルできなくなったのでコメントアウト

SQLはあれですよ。入力された検索条件を何の加工もせずに各所に突っ込むという。。
SQLの中であんなに器用な文字列編集できるなら、先にやっとけと。
つーかサーバにそんなことさせんなと。セキュリティなんてもうどうでもいいww
350仕様書無しさん:2006/11/05(日) 07:53:15
あるあるw
351仕様書無しさん:2006/11/05(日) 08:58:30
>>344
この程度で関数って・・・・
352仕様書無しさん:2006/11/05(日) 09:05:14
VBのコントロール配列は微妙。

メッセージを拾わないまでも、クラスに挙動を関連付けたり
するようなサブクラス化をしようとする場合に問題がでる。
353仕様書無しさん:2006/11/05(日) 10:36:58
354仕様書無しさん:2006/11/05(日) 11:42:36
>>344
この程度で関数って、アホか?
関数の中で何するんだ?
ループだろ、どうせwwww

そんなのその場でやれよ、関数バカwwwwww
355仕様書無しさん:2006/11/05(日) 11:44:35
なんで・・・ブビー房はウジャウジャ湧いてくるんだ?
356仕様書無しさん:2006/11/05(日) 11:45:29
その場でやっちゃってるから>>339みたいに見づらいコーディングになっちゃってるんだろうが
357仕様書無しさん:2006/11/05(日) 11:53:06
>>356
チネ
358仕様書無しさん:2006/11/05(日) 14:40:41
まぁ、大概暴言を吐くのは心当たりがあるやつなんだろうな。
359仕様書無しさん:2006/11/05(日) 15:31:41
>>355
そりゃ、うじゃうじゃ居るからだろう
あちこちデスマってるのも大概こいつらのせい
360仕様書無しさん:2006/11/05(日) 16:05:53
チェック用の関数やメソッドがあるのは業界デフォだよ、デフォ。
いちいちその場でって有り得ない。テキストボックス1個だけとかでしか
通用しない。え、まさかチェックの数だけ関数作るとか思ってないよな?
361仕様書無しさん:2006/11/05(日) 16:50:12
>>359
ゼネコン構造の基盤を支えているのも、派遣業者を潤わせているのも、単価が叩かれる原因も、大概こいつらがいるからだと思うようになってきた。
VB厨を食い詰めさす方法はないもんかね。
362仕様書無しさん:2006/11/05(日) 16:55:37
ヒィィィィィ
ゴメンナサイゴメンナサイ
でも、うちの職場にもやっとVS2005が入ってきました
徐々にVB.NETかC#に移行していくと思います
技術面のトップがC#に興味津々で新人にC#で開発させているのでC#メインになるかも
363仕様書無しさん:2006/11/05(日) 16:56:20
「信用ならない」とか言って標準提供されてるもまで自分で作ろうとして(結局間に合わなくて)
「最初から無理なんですこんなの!」とか逆ギレしてたアフォおったな・・・・
364仕様書無しさん:2006/11/05(日) 17:15:47
>>362
C#はマジでいいぞ。
365仕様書無しさん:2006/11/05(日) 17:19:15
>>364
どの辺がいいの?
366仕様書無しさん:2006/11/05(日) 17:28:53
>>365
まだVB厨が来てない。
367仕様書無しさん:2006/11/05(日) 17:39:33
368仕様書無しさん:2006/11/05(日) 17:42:03
>>366
それはいい。
369仕様書無しさん:2006/11/05(日) 18:18:43
>>367
なんか似たようなことを考えた事があったけどさ・・
御大の口から聞くと重みが違うな。
370仕様書無しさん:2006/11/05(日) 19:20:22
>>369
別のバージョンでは ken と C になっている
371仕様書無しさん:2006/11/05(日) 20:17:22
本物なのか本人に質問した人は居ないのでしょうか?
372仕様書無しさん:2006/11/05(日) 20:30:09
一番下の「いわずもがなの訳注」を読め
373仕様書無しさん:2006/11/05(日) 22:22:12
ていうかurlよく読め。
374仕様書無しさん:2006/11/05(日) 22:36:24
>>373
ジョークだねw

ここのジョークのリンク先、面白いねw
375仕様書無しさん:2006/11/06(月) 08:41:41
>>356=344にとっては、>>339は関数らしい。

大物になるな・・・344は。。
376仕様書無しさん:2006/11/06(月) 14:23:31
いやいや、君のほうが大物だよ
377仕様書無しさん:2006/11/06(月) 15:55:03
同意。
この流れを無視する>>375は大物。
378仕様書無しさん:2006/11/06(月) 19:30:14
>>375
日本語勉強しろ
379仕様書無しさん:2006/11/06(月) 20:47:21
>>378
自分の非を認めたくないもんだから逆切れしてる上司?

そりゃあ、会社辞めようと思うに十分な発言だ
380仕様書無しさん:2006/11/06(月) 21:14:21
>>375キタ━━(━(━(-( ( (゚∀゚) ) )-)━)━) ━━ !!!!!
381葉猫 ◆Jz.SaKuRaM :2006/11/06(月) 21:17:23
VB厨ってマジ、アホだな。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
382仕様書無しさん:2006/11/06(月) 21:35:45
>>381
お前は嫌いだが、今回ばかしは意見が合うな。

というか、本当にこんなVB厨がいるのか・・・?
想像ができないんだよ。
383仕様書無しさん:2006/11/06(月) 21:52:37
筋金入りのVB厨はしっかりしたGUIを作る。
大概保守性は悪いが、作成者を安価で飼い殺しにしておけば問題ない。

>>381のような糞コテと、それに安易に追随する>>382のような言動は、
VB案件からJava案件へと飼育場を変えられた「1ダースで10セント」のPGによく見受けられる。

まぁ、アレだ。
VBだろうがコボルだろうがバカは去れ。
384仕様書無しさん:2006/11/06(月) 22:08:52
>>383
じゃあまずお前が去らないとな。
385仕様書無しさん:2006/11/06(月) 22:38:08
>>384
お前のレス見て東京kittyを思い出したw
油豚ってまだ生きてるのかな。
386仕様書無しさん:2006/11/06(月) 22:38:40
>>385
鏡見れば今でもいるだろ
387仕様書無しさん:2006/11/07(火) 02:10:52
違ってたらゴメン
荒れてる原因のソースって
フレームオブジェクト使えば一発で解決するんでは?
388仕様書無しさん:2006/11/07(火) 08:31:40
関数作れば一発で解決するのに
389仕様書無しさん:2006/11/07(火) 10:35:12
話は変わるけどさ
無限ループって恐くね?www
390仕様書無しさん:2006/11/07(火) 10:51:31
マジ、ループw バロスwww

誰かマ板らしく、ループ抜けるロジック提供してよw
391仕様書無しさん:2006/11/07(火) 10:52:40
goto >401
392仕様書無しさん:2006/11/07(火) 11:23:44
ピーーーーーーーーーーーーーーーーーーーーーーーーーー
393仕様書無しさん:2006/11/07(火) 12:19:05
>>391はヌルポ
394仕様書無しさん:2006/11/07(火) 12:48:39
>>392-393
なに、一月もすればエラーにならなくなるよう誰かが
保守してくれるさ
395仕様書無しさん:2006/11/07(火) 14:20:54
>401 に期待
396仕様書無しさん:2006/11/08(水) 10:30:56
Ctrl+C
397仕様書無しさん:2006/11/08(水) 19:08:07
Ctrl+V
398仕様書無しさん:2006/11/08(水) 19:18:27
Ctrl+Z
399仕様書無しさん:2006/11/08(水) 19:40:48
Ctrl+A, Del, Ctrl+S, Alt+F4
400仕様書無しさん:2006/11/08(水) 20:06:43
>>396
だけじゃ意味が無い
>>397
一画面下へ移動
>>398
だけじゃ意味が無い
>>399
行頭へ移動、カーソル下の一文字削除、インクリメンタル検索、終了
401仕様書無しさん:2006/11/08(水) 20:09:07
>>396 コピー
>>397 貼り付け
>>398 元に戻す
>>399 すべて選択、削除、上書き保存、終了
だろ
402仕様書無しさん:2006/11/08(水) 20:23:15
>>401
さて、このバカの処遇をどうしようか?
403仕様書無しさん:2006/11/08(水) 20:25:44
>>391が死ねば解決
404仕様書無しさん:2006/11/08(水) 23:26:18
>>339のコードなんだけど、

オレはループでまわしてチェックするんだけど

うちの会社では、>>339のように記述しろと言われた。

なんでも「誰が見てもわかるコードを書け」とのこと。





この会社辞めてようと思った1年目の夏。
405仕様書無しさん:2006/11/09(木) 00:15:58
「誰が見ても糞だとわかるコードを書け」
406仕様書無しさん:2006/11/09(木) 00:48:02
そもそも簡潔なコードは見やすいコードなんだけどな
冗長に書くことでかえって保守性が下がるということが判らないんだろうか
407仕様書無しさん:2006/11/09(木) 00:50:12
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





ダメカナ?
408仕様書無しさん:2006/11/09(木) 00:58:43
苦肉の策というやつですか
409仕様書無しさん:2006/11/09(木) 01:16:27
しょうがくせいがみてもわかるこーどだけでつくったら
とてもわかりやすいでしょうねw
410仕様書無しさん:2006/11/09(木) 01:16:34
>>407
このネタ引っ張るなぁw
411仕様書無しさん:2006/11/09(木) 01:45:36
>>404
それは、「誰が見ても馬鹿とわかるコード」じゃないのかw
412仕様書無しさん:2006/11/09(木) 02:25:01
誰が見ても見やす(ryとか言うのは結構だが、それはハードコードとは違うということをウチのバカに教えてあげてください。
脳に変数とかの「シンボル」を記憶する領域が無いんだろうな。。
413仕様書無しさん:2006/11/09(木) 02:39:34
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

こうなってても気づかずリリースして後にバグだとわめくんだな
414仕様書無しさん:2006/11/09(木) 05:23:24
話は変わるけどさ
無限ループって恐くね?www
415仕様書無しさん:2006/11/09(木) 07:17:53
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
416仕様書無しさん:2006/11/09(木) 07:20:07
If i = Chk_LogUbound + 1 Then

だったな・・・( - _ - )
417仕様書無しさん:2006/11/09(木) 07:29:08
そーいうミスする香具師が居るから>>339のように書けってことに
なっちゃうんだろうな。
418仕様書無しさん:2006/11/09(木) 07:31:23
だったな・・・( - _ - ) じゃねぇよ!

失せろ。クソVB厨。
419仕様書無しさん:2006/11/09(木) 10:27:42
>>415-416
チェック用のフラグ用意しとけ。ループカウンタをループの外で使うな。
420仕様書無しさん:2006/11/09(木) 10:46:10
>>404
単純なループを理解できない奴なんてお前くらいなもんだって言ってやれ
421仕様書無しさん:2006/11/09(木) 11:22:27
>415
ミスはともかくそれは読みにくい言われても文句は言えんな
422仕様書無しさん:2006/11/09(木) 12:55:50
>401
俺は
>396 中断
>397 ^V
>398 入力の終了
エディタで >399 するぐらいなら more > file で即 ^Z
423仕様書無しさん:2006/11/09(木) 12:56:58
>415
そのコードで、「誰が見てもわかるコードを書け」といわれるのは、
むしろやんわり諭している内と思われ...
漏れの配下なら、書類コピー担当かな。
424仕様書無しさん:2006/11/09(木) 13:31:01
>>423
じゃぁお前がもっといいのを提示してみろよwwww
425仕様書無しさん:2006/11/09(木) 13:41:48
>>419
多いよなぁ..。
iをどこまでも抱えていく奴。
426424: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
427仕様書無しさん:2006/11/09(木) 14:18:59
それだと処理が反対じゃね。
428仕様書無しさん:2006/11/09(木) 14:35:57
馬鹿ばっかりだな・・・
429仕様書無しさん:2006/11/09(木) 14:42:45
>426
いいよ。
お前は期待以上の仕事をする奴だよ。
これは大事な会議の資料だから、お前に任せるよ。10部コピーしといてね。
430仕様書無しさん:2006/11/09(木) 18:19:20
>>427
何も考えずに適当にBooleanでフラグもらせただけだったからなwwww
こんな感じの書き方ってところで捕らえておいて貰えれば

いい訳苦しくなってきたなwwww
431仕様書無しさん:2006/11/09(木) 18:22:03
#pragma mark エラー処理
// 面倒い。

432仕様書無しさん:2006/11/09(木) 19:43:44
単体動作が前提ではあるが、複数のアプリ(それぞれ数千行)が
main()関数1個で完結していた。
関数もマクロもコメントも無く全てgoto文で分岐処理していた。
もちろん仕様通りの動作はしない。
433仕様書無しさん:2006/11/09(木) 19:49:44
>432
そんな技能しかなくて、
数千行のアプリを幾つも作らなくてはならなかった奴も、
それはそれで可哀相なな奴だね。
...いや、意外にそんな奴が威張りチラシてたりするのかな。
434仕様書無しさん:2006/11/09(木) 19:50:44
不具合対応のためソース解析してたらUsoData_Make()という名前の
関数があちこちで呼ばれていたことがある。
結局その関数は嘘データではなく正しいデータを作成していたのだが
仕様書が無いため解析してユーザに確認取るのにエライ時間が掛かった。
紛らわしい名前付けんな('A`)
435仕様書無しさん:2006/11/09(木) 20:01:04
>>434
人のプロトタイプを丸写しにして、プロジェクト名にいつまでも~SampleとかTESTとかが残ったり。
何故か俺の名前がアセンブリに埋め込まれていたり…。
436仕様書無しさん:2006/11/09(木) 20:12:37
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
>>436
大文字Iがムカつく。
438仕様書無しさん:2006/11/09(木) 20:18:51
そーっすか
439仕様書無しさん:2006/11/09(木) 20:27:04
>>436
それ意味が違う・・・
440仕様書無しさん:2006/11/09(木) 20:50:06
あ、全てチェックじゃなくてどれかチェックされてればいいのか
じゃぁこうかな。
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
441仕様書無しさん:2006/11/09(木) 21:09:56
FILE* fp = fopen(...);
if (fp < 0) { return -1; }

おかしなファイル名食わせたらエラーで戻ってくるはずなのに
処理が続いて落ちるから何かと思ったら・・・

っていうかコンパイルできるのにびびった。警告も出やしない。
442仕様書無しさん:2006/11/09(木) 21:22:10
VBの時点で馬鹿だろw
443仕様書無しさん:2006/11/09(木) 21:24:44
>>>441
>おかしなファイル名食わせたらエラーで戻ってくるはずなのに

C言語以前の問題として、
お前、プログラムがどうやって動作しているか
分かっていないだろ?
444441:2006/11/09(木) 21:31:01
>>443
そうでもないよ。

っていうか、なんでそう思ったの?なんかおかしなこと書いたか?
445仕様書無しさん:2006/11/09(木) 21:53:07
>>444
443ではないが、久しぶりに爆笑させてもらった
>そうでもないよ。
なにを根拠に自信たっぷりなのかww
446仕様書無しさん:2006/11/09(木) 21:53:11
やっと、クソVB房が消えたてきた。
447仕様書無しさん:2006/11/09(木) 22:28:09
>>441
エラーじゃないんだからコンパイルは通るっしょ。

あと警告でる/でないはコンパイラによるんじゃないっすか?
448仕様書無しさん:2006/11/09(木) 22:29:07
  \|/
  /⌒ヽ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  | ゜Θ゜) < そうでもないよ。
  | ∵ つ  \___________
  | ∵ |
  \_/

なんか、夏菓子す
449仕様書無しさん:2006/11/09(木) 22:41:48
FILE *fopen (const char *file, const char *mode)

file で指定されたファイルを mode によってオープンし、成功した場合はファイルポインタを、失敗した場合は NULL を返す。
450441: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)

意外とスルーされることが多いようだ。
451仕様書無しさん:2006/11/09(木) 23:01:38
>>441
これどこがエラーになるの?
452仕様書無しさん:2006/11/09(木) 23:05:35
どんなエラーや警告が欲しいのか理解できない
453仕様書無しさん:2006/11/09(木) 23:08:59
FLE構造体の定義について
http://www.geocities.jp/kasayan86/c/file.htm
454仕様書無しさん:2006/11/09(木) 23:16:58
>440
お前は何処からそんなネタひねり出してくるんだ?
455仕様書無しさん:2006/11/09(木) 23:18:11

>>451
だからエラーじゃないって。

>>452
なんで警告がでるのかってこと?
もしそれなら↓

ヒント
fp < 0 と >>449
456仕様書無しさん:2006/11/09(木) 23:28:27
C言語では fopen が失敗した場合の返りは NULL で、NULL は 0 だから>>441のif文で拾えるはずもなく。
コンパイルで警告出ないのも、その程度仕方ないんじゃないかと思ってしまう。
457仕様書無しさん:2006/11/09(木) 23:29:27
・・・ヒント
458仕様書無しさん:2006/11/09(木) 23:44:30
ポインタに0以下は無いって事か?
459仕様書無しさん:2006/11/09(木) 23:45:01
訂正 0未満
460仕様書無しさん:2006/11/09(木) 23:45:04
ファイルポインタがマイナスになることは無いのに0未満の値と比較している演算に対して警告がでない・・・とか?
461仕様書無しさん:2006/11/09(木) 23:50:03
>>459
>>460
正解!!
462仕様書無しさん:2006/11/09(木) 23:50:44
>451
推測だが
「存在しないファイル名(パス)を喰わせたら-1が返る」はずの関数があって
ところが一向に-1なんて返ってこずに落ちるから「?」と思ってその関数の中身を見たら
あのザマだったということでは。
441の「エラーで戻ってくる」はその関数が-1を返すという意味とオモタ。
463仕様書無しさん:2006/11/09(木) 23:53:47
fopenはCの標準関数だぞ
464仕様書無しさん:2006/11/09(木) 23:57:49
>>463
急にどうした?
465仕様書無しさん:2006/11/09(木) 23:58:32
消えた(・∀・)てきた
466441:2006/11/10(金) 00:00:05
>>459-461
ちがうよ。

(fp < 0) では fp が FILE* なので、まず 0 が FILE* 型のヌルポインタに変換されるんだ。
その後、ポインタ同士の大小比較が行われるわけだけど、ポインタ同士の大小比較は
同じ配列内の要素を指すポインタ同士の場合以外は未定義動作ってことになってる。

んで、件の場合では常に偽と評価されていたわけ。
調べてるときに最適化かけたアセンブリ吐かせたら、ご丁寧に return -1 どころか
if ごと消えていた。そこまで分かってるんなら一言伝えてくれと。

>>462
その推測のとおり。
467441:2006/11/10(金) 00:02:55
さっきから何度も fopen() の仕様を教えようとしてくれている人がいるけど、
何が言いたいのかさっぱり分からない。
468仕様書無しさん:2006/11/10(金) 00:04:23
>>446
( ・∀・)つ〃∩ ヘェーヘェーヘェーヘェーヘェー
勉強になりました。



明日ダメ上司にこのこと言ってみよう。
469仕様書無しさん:2006/11/10(金) 00:05:04
>>446じゃなくて>>466です。すまそ。
470仕様書無しさん:2006/11/10(金) 00:09:35
上司「なに?」
「やっと、クソVB房が消えたてきました。」
471仕様書無しさん:2006/11/10(金) 00:10:03
>>468

>>453のリンクより
>FILE構造体はstdio.hに定義されていますが、コンパイラによって定義のされ方がすこしづつ違います。

これが言いたかったんじゃまいか?
472仕様書無しさん:2006/11/10(金) 00:13:04
>470
ワロタ
473仕様書無しさん:2006/11/10(金) 00:13:39
ifごと消えるのは想定できると思うんだけどなあ
474仕様書無しさん:2006/11/10(金) 00:15:49
>>470のを元に追加してみた。

468 「課長、やっと、クソVB房が消えたてきました。」
課長 「なに?」
468 「やっと、クソVB房が消えたてきました・・・。」
課長 「(°Д°)ハァ??」
468 「てめぇのことだよ、クソ課長が!!」
課長 「スマソ・・・・。」
475仕様書無しさん:2006/11/10(金) 00:18:29
消えた(・∀・)てきた
476仕様書無しさん:2006/11/10(金) 00:18:44
>>473
未定義動作の結果を想定できるなんて奴は知ったかぶりに違いないぜ。
477仕様書無しさん:2006/11/10(金) 00:19:54
fopen() の仕様を教えてくれようとしている人の気持ちがよくわかる。
478仕様書無しさん:2006/11/10(金) 00:24:52
日本語って難しいな・・・
479仕様書無しさん:2006/11/10(金) 00:26:24
1万行の構造体を見た時かな。

しかも1個じゃなくて12個もあった。


設計がまずいのか、
それとも自分がレベル低すぎるのか

どっちにしても、もう辞めたい。
480仕様書無しさん:2006/11/10(金) 00:42:52
>479
多分そういうCOBOLソースから構造そのまんま持ってきたんだな。
目に浮かぶようだ、12万行のDATA-DIVISION……orz
481仕様書無しさん:2006/11/10(金) 01:10:36
>>479
言語は何?
メンバとメソッドの数も知りたい。
482仕様書無しさん:2006/11/10(金) 02:03:58
おれも>>415的なコードの書き方するけどな。
ループカウンタ用の変数もその外で宣言して使うから、問題あるとは思わんのだが・・・
フローとして考えた時、意味が分かりやすければいいのじゃまいか?
long lLoop;
for(lLoop = 0;lLoop < x;lLoop++){
if(strList[lLoop] is "aaa"){
// 発見したのでループを抜ける
break;
}
}
// 発見したか?
if(x <= lLoop){
// 未発見

}
// 発見した
483仕様書無しさん:2006/11/10(金) 02:08:42
>>441
ファイルオープン成功時、fp にアドレスが入るとして、
アドレスはunsignedだからfp < 0という比較は通用しない(というか想定どおりの動作にならない)かと・・・

って所でみんな突っ込んでるんじゃね?
484仕様書無しさん:2006/11/10(金) 02:10:34
485仕様書無しさん:2006/11/10(金) 02:13:58
前の仕事で40近いおさーんが、ある設定読み込み構造体を作る時
typedef struct _a{
char szText[10];
int nNum;
}a; // 定義記述間違ってたらすま
を10個用意すればよい、という話を聞いて、
typedef struct _a1〜からa10までを別々に定義してた。
これじゃループで設定も拾えないし、何を考えたんだろう?とまわりがみんな悩んでしまった。

なんか常識と思ってることが別の人に通じないって結構あるよね。
486仕様書無しさん:2006/11/10(金) 02:16:26
>>484
すまん、ちょっとよく分からんのだが、詳細キボンヌ
487仕様書無しさん:2006/11/10(金) 02:39:46
>>482
おまいがそうしたいならそうすればいいし、別に問題は無いよ
ループ制御変数はループ内でしか参照しないってこだわりのある人間にはそれなりの理由があるのだが
気にするな
488仕様書無しさん:2006/11/10(金) 02:53:51
>>487
thx

ちょっと安心した(なんかおれだけとんでもない非常識人かと思ったサ)。
489仕様書無しさん:2006/11/10(金) 02:54:25
490仕様書無しさん:2006/11/10(金) 03:26:47
消えた(・∀・)てきた
491仕様書無しさん:2006/11/10(金) 04:26:38
>>466
>同じ配列内の要素を指すポインタ同士の場合以外は未定義動作ってことになってる。
言語仕様としてそう決まっているのはそのとおり。
でもコンパイラが、ポインタ変数だけを見て、それらのポインタが連続する要素を
さしていないことを判別することは難しいんじゃないか?
# ポインタ値の元をたどればわかるときもあるかもしれないが、わざわざそんな
# ことはしないだろう。

やっぱりコンパイラとしては、式「p<0」は、「非負数<0」とみなして意味のない
比較式だと指摘するのがせいぜいではないのか。

そういえば、>>450のgccが言った警告はなんだったの?
「不連続要素をさすポインタの比較には意味がない」とちゃんと言ってたの?
492仕様書無しさん:2006/11/10(金) 07:32:25
-Wallにしてないから?
493仕様書無しさん:2006/11/10(金) 12:15:26
>>488
俺はチョンボ避けにフラグ立てるほうが安全なので普通そうする。
絶対に仕様変更や仕様追加が入らないシステムなら問題は出ないだろうが、
後で他人がメンテする時にそのiLoopを勝手に拝借してあまつさえ判定前に
変更でもしようものなら・・・
もちろん影響も考えずに勝手に変更した奴が悪いんだが、ループ変数をずっと
持ちまわってるとそういうバグが出やすいからな。
これまでそんな不具合を大量に見てきたから、自分も他人もあまり過信しない
ほうがいいと思ってる。
494仕様書無しさん:2006/11/10(金) 12:51:25
Delphiだとループ抜けた後の制御変数をいじろうとすると「値は不定」という警告がでるよ
495仕様書無しさん:2006/11/10(金) 12:55:35
Delphiで開発という時点で会社を辞めたくなる。
496仕様書無しさん:2006/11/10(金) 13:05:00
>>482
最近は

for i as integer = 0 to 1

とか書けるんでな
外で宣言する必要がないんだよ
つうか、そういうのをフラグに使用するとミスの元になりそうだしさ
497仕様書無しさん:2006/11/10(金) 13:17:48
>>495
そうか?使える人間にしてみれば、Delphiでできるならそれに越したこた無いな。楽だし。
Delphi自体の未来とかには別に興味ないけど。
498仕様書無しさん:2006/11/10(金) 13:23:11
>>495
VBよりはましでは?
499仕様書無しさん:2006/11/10(金) 15:38:20
そこで22ですよ。
つーかね、
for( int i = 0; ... )
{

}
500仕様書無しさん:2006/11/10(金) 15:40:16
書き途中でいっちゃった。

for( int i = 0;...)
{
  //syori1
}
for( int i = 0;...)
{
  //syori2
}

でエラーになるVCをなんとかしないとダメだと思うんだ。
スコープの扱いが正しければforの外で参照できないから問題ないわけで。
501仕様書無しさん:2006/11/10(金) 15:41:32
それエラーになるの?
502仕様書無しさん:2006/11/10(金) 15:47:10
{for( int i = 0;...)
{
  //syori1
}}
{for( int i = 0;...)
{
  //syori2
}}

とするのもアレだな
503仕様書無しさん:2006/11/10(金) 16:10:19
>>500
それエラーになるの?
いつの話?前世紀?
504仕様書無しさん:2006/11/10(金) 17:22:35
VC6じゃね?
505仕様書無しさん:2006/11/10(金) 18:44:45
Cでも
void main(void)
{
{
int ii;
}
506仕様書無しさん:2006/11/10(金) 18:45:40
Cでも
void main(void)
{
int ii;
{
int ii;
}
}
とか書けるんだよね・・・
507仕様書無しさん:2006/11/10(金) 19:58:03
>>503
古くても2003年。
というのは、VisualStudio.NET2003のC++でもデフォルトではエラー扱いだったような。
508仕様書無しさん:2006/11/10(金) 20:24:02
>>500 は、C++仕様が変わって通るようになったはずだが、結構前だった気がする
その辺はコンパイラオプションで指定出来るんじゃないの?
509仕様書無しさん:2006/11/10(金) 20:39:00
仕様が変わってというか、最初期のVC++はC++ の仕様が
きっちり確定する前に出たので変な仕様になっていた。

その後C++の仕様が標準化され、「通る」ということになったわけだけれども
「漏れのコードがコンパイルエラーになるぞごらぁ」という開発者が出てこないように、
かなり後までオプションなしのデフォルトでは通らないようになっていた。
510仕様書無しさん:2006/11/10(金) 20:46:15
>>506
で、JavaScriptで罠にはまる...
511仕様書無しさん:2006/11/10(金) 22:49:00
開発者「漏れのコードがコンパイルエラーになるぞごらぁ」
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){
514仕様書無しさん:2006/11/11(土) 02:15:12
>>491
gcc -Wextra で "ordered comparison of pointer with integer zero" って出たよ。
ヌルポインタは要素を指していないのが確定しているから、ヌルポインタ定数が
大小比較の対象として不正なのは完全に判別できるんだろう。
515仕様書無しさん:2006/11/11(土) 03:16:20
ちょっとした勉強会になったね。

皆さんレベルアップしましか〜?
516仕様書無しさん:2006/11/11(土) 03:29:22
>>493
そこまで深読みするおまいの人生経験に涙。

たしかに一度味わうとかんぐるよな。

おれはポインタ類はなんでも初期化、解放時
x = NULL;
するようになった。

同じポインタ変数解放せずに取り直して使いまわしする香具師がいたので・・・
517仕様書無しさん:2006/11/11(土) 04:18:24
>>516
C++ 使えないの?
518仕様書無しさん:2006/11/11(土) 06:36:26
>>517
ガベージコレクタのような機能のことをいってるのか?


だとしたら、まだまだ甘いな。
519仕様書無しさん:2006/11/11(土) 07:00:00
>>518
いや C++ なら auto_ptr や標準コンテナ使えば、
その手の問題を解決するために x = NULL なんて
書くこともないだろうということ。
520仕様書無しさん:2006/11/11(土) 10:12:07
>>519
うん。

でも、デストラクタで実装したほうが、安心な気がする。
521仕様書無しさん:2006/11/11(土) 12:11:54
>>520
気のせいだから、標準ライブラリぐらい遠慮せずに使ってください。
522仕様書無しさん:2006/11/11(土) 22:14:43
>>517
new、delete、基本ポインタは0初期化されている、の事を指摘してるのかな?

一応C++は使えるんじゃないかな?
523仕様書無しさん:2006/11/11(土) 23:42:41
>522
>基本ポインタは0初期化されている

kwsk
いつからそんな親切になったんだ?
524仕様書無しさん:2006/11/12(日) 01:16:30
基本ポインタってなに?
525仕様書無しさん:2006/11/12(日) 01:39:33
NULL が 0 だからという奴は実装と仕様の区別がついていない
526仕様書無しさん:2006/11/12(日) 02:29:41
ログインIDに
「'or 1=1 or'」
と入力すると来る人拒まずなWebアプリ。
sanitizeしといてね。
527仕様書無しさん:2006/11/13(月) 01:28:14
>>526
sinitaizeに見えたw
528仕様書無しさん:2006/11/13(月) 21:53:26
Hoge* hoge = new Hoge();
delete[] hoge;
if(hoge == NULL) printf("ここは表示されない");
529仕様書無しさん:2006/11/13(月) 22:27:03
>>525
NULLは0であると決まっているが、きみは何を言いたいのか?
530仕様書無しさん:2006/11/13(月) 22:29:12
hogeをdeleteした後で、
hogeが参照できないのに比較を行っているとか?

詳しい人解説キボンヌ
531仕様書無しさん:2006/11/13(月) 22:32:10
>>509
>仕様が変わってというか、最初期のVC++はC++ の仕様が
>きっちり確定する前に出たので変な仕様になっていた。
VC++を弁護しときたいwのだが、「変な仕様」ではない。
たしか、C++規格ドラフトが最初そういう仕様だったので、VC++はそれにあわせただけ。
非難するのなら、ドラフトから心変わりして規格を確定させた人のほうへ。
532仕様書無しさん:2006/11/13(月) 22:33:13
>>529
本来nullは他のどんな値とも被らない値じゃね?
533仕様書無しさん:2006/11/13(月) 22:41:15
>>530
ちょっとおちついてから>>528を見直せ。

hogeの値はnew Hoge()の戻り値が代入されてから変更されてない。
だから、hoge値がNULLであるはずがない、ということ。
534仕様書無しさん:2006/11/13(月) 22:52:16
>>532
というより、どこもさしていないことを表すための値だろ?
# nearとfarのポインタを混ぜて使えば、なんかかぶることもあるんじゃないか。知らんけど。
535仕様書無しさん:2006/11/13(月) 23:47:31
deleteしたらどうせそのポインタは使えないんだからnullにセットして欲しい
536仕様書無しさん:2006/11/13(月) 23:50:18
ヌルポインタ:
何物をも指していないことが保証されているポインタ値。

ヌルポインタ定数:
整数0。ポインタ値が必要とされるべき場所にこれを書くと
ヌルポインタに変換される。通常はマクロNULLが0と定義されている。
537仕様書無しさん:2006/11/13(月) 23:51:28
まちがった
×整数0
○定数0
538仕様書無しさん:2006/11/13(月) 23:52:13
ぬるぽの話はこれでおしまいにして欲しい。
http://www.kouno.jp/home/c_faq/c5.html
539仕様書無しさん:2006/11/13(月) 23:55:17
しかも528のコード、インスタンス1個しか作ってないのにdelete[]かい。
突っ込みどこ満載だな……
540仕様書無しさん:2006/11/14(火) 00:05:59
void NskDriverKaraGentenOffsetWoYomikomu();

・・・あのそのネーミングセンスどうにかならんか?
確かに意味はすぐ理解できたが・・・
541仕様書無しさん:2006/11/14(火) 00:44:47
>>540
ダサイし一見よく分からないが
読んですぐに何やっているのかわかる、というのは興味深いな

・・・と書いたところで日本語プログラム言語を思い出した
542仕様書無しさん:2006/11/14(火) 00:49:33
何をしたいのかはわかっても、
"で、どうしろと?"となるからあまりよくは無いがな。
void型、引数なしでどうやってドライバ指定するですか? 読込先はどこですか?
といったことがさっぱり読み取れない。
543仕様書無しさん:2006/11/14(火) 00:49:46
>>540
変な略称使われるよりは断然マシだと思える。
544仕様書無しさん:2006/11/14(火) 00:53:18
void ReadOffsetForNskDriver();

こんな感じかな。



使いやすいのだと、どんな名前になるのかな?
545仕様書無しさん:2006/11/14(火) 00:55:20
OffsetじゃなくてPivotじゃね?
546仕様書無しさん:2006/11/14(火) 03:13:45
//問12 A+B=?


例文のコメントもそのままコピペされとった('A`)

547仕様書無しさん:2006/11/14(火) 07:41:26
sleep を見ると
やる気ゲンナリする
548仕様書無しさん:2006/11/14(火) 09:00:23
>>547
なんで???
549仕様書無しさん:2006/11/14(火) 18:10:24
俺らが徹夜で働いてるのにプログラムが寝るなんざ許さん、とか?
550仕様書無しさん:2006/11/14(火) 20:57:30
>>528
newしたやつをdelete [] してることと
deleteしただけのポインタをNULLと比較してこと

どちらをつっこんで欲しいんだ?
551仕様書無しさん:2006/11/14(火) 21:36:47
う、後ろの穴に・・・
552仕様書無しさん:2006/11/14(火) 21:39:36
>>551
日本語を理解してからボケような
553仕様書無しさん:2006/11/15(水) 00:20:06
じゃあまず指を…
554仕様書無しさん:2006/11/15(水) 00:35:35
>>550
>deleteしただけのポインタをNULLと比較してこと

deleteしただけだと、ポインタの中身はどうなるの?
555仕様書無しさん:2006/11/15(水) 00:50:49
わざわざつまんない突っ込みをする人って相当つまんない人間なんだろうなぁ
556仕様書無しさん:2006/11/15(水) 01:12:36
わざわざつまんない突っ込みに突っ込みをする人も相当つまんない人間なんだろうなぁ
557仕様書無しさん:2006/11/15(水) 01:17:21
無理やり感があっておもしろいね
558仕様書無しさん:2006/11/15(水) 02:51:49
>>554 どうにもならないよ。
559仕様書無しさん:2006/11/16(木) 20:52:44
>>558
どうにかなっちゃうときもある。
# 重デバグ環境とか。
560仕様書無しさん:2006/11/16(木) 21:36:19
重出バグ環境




読み方違うだろ、ってつっこみはいらぬ
561仕様書無しさん:2006/11/17(金) 01:00:46
実際にはソースみて、云々っていうか、設計資料を見て落胆することのほうが殆ど。
562仕様書無しさん:2006/11/17(金) 01:05:36
今さ、1年前に自殺した会社の先輩が作成したプログラムを
改修しているんだけど、ソースコードのコメントの中に
先輩の当時の心境がコメントアウトされているのを見つけたのよ。

/*
2005/05/20 AM4:12
このプロジェクトを最後の仕事にすることを決めた。
最後と決めたからには、みんなに迷惑をかけないように
残りの力を振り絞ってがんばろうと思う。

みんながんばれ!!(^o^)
*/

このプロジェクトが終わった翌日、
睡眠薬を大量にのんで亡くなってるのが発見されたのよ。



すみませんが先輩。
こんなコメントを残されても鬱になって仕事になりません。
563仕様書無しさん:2006/11/17(金) 01:21:58
苦しがっている人が無理して(^o^)とか使っているのを見ると
なんだかグッとくるものがある。

ネタであってほしいが、現実か・・
564仕様書無しさん:2006/11/17(金) 01:27:26
最後の力振り絞っちゃったのかよ('A`)
565仕様書無しさん:2006/11/17(金) 02:02:10
// この辺から怪しい



// この辺まで

・・・何が怪しいんだっ!
566仕様書無しさん:2006/11/17(金) 02:30:04
ロジックが。
567仕様書無しさん:2006/11/17(金) 11:53:07
spellが combine○ conbine×
568仕様書無しさん:2006/11/17(金) 12:10:32
記憶が。
569仕様書無しさん:2006/11/17(金) 14:21:59
/*DB用に確保したメモリーを解放するプログラム*/
/*事前にBudget情報がファイルにセーブされているかチェックする*/
570仕様書無しさん:2006/11/17(金) 14:35:34
// 2003.11.9. 仕様変更対応 K.H


前後に何のコードもない。前後に空行が10行ぐらいある。
いったい何の対応をしたのか教えてくれ・・・


しかも11/9は日曜日で、誰一人出勤してなかったはずなんだが・・
その人はとっくに会社をやめて、今はどこにいるかも不明
571仕様書無しさん:2006/11/17(金) 14:39:24
>>569
英字は全角、カタカナは半角で統一って珍しいな。
572仕様書無しさん:2006/11/17(金) 18:16:43
>570

//ぼくはここにいるよ
573仕様書無しさん:2006/11/17(金) 18:25:38
>>572
きみは……
君はまだいるかい?
574仕様書無しさん:2006/11/17(金) 22:04:09
塩漬けになってるよ
575仕様書無しさん:2006/11/17(金) 22:15:10
>>572
どうやら、シリウス星系に居るみたいだな。
576仕様書無しさん:2006/11/17(金) 23:36:02
>>572

//生きている人、いますか?
577仕様書無しさん:2006/11/17(金) 23:38:48
// 僕等がいた 放映中
578仕様書無しさん:2006/11/18(土) 00:21:29
// 不具合対応ここまで(後は任せた)
579仕様書無しさん:2006/11/18(土) 00:33:11
/* 不具合に対応した */ // という夢を見た
580仕様書無しさん:2006/11/18(土) 00:39:48
//や/**/ってコメントを書く際に使用するんですよ
581仕様書無しさん:2006/11/18(土) 00:49:49
// 俺のこのプロジェクトが終わったら結婚するんだ
582仕様書無しさん:2006/11/18(土) 01:00:34
だから・・・
// あとはコメント
っだっつってんじゃんよ
583仕様書無しさん:2006/11/18(土) 02:51:43
文字列を追加するのに、

sprintf(s, "%s hoge", s);

みたいな書き方をしてるコードを見つけたけど、これってまずくね?
584仕様書無しさん:2006/11/18(土) 04:00:39
>>583
自分で書く気にはならないが、溢れなきゃ大丈夫だろう。
最初の\0を読んだら、そこに上書きする前に%sのスキャンが終わるさ。
585仕様書無しさん:2006/11/18(土) 10:20:18
if(xx < 0){
// エラー発生(通らないはず)

// 通らないはずだから想いを告げてみる
ErrorFunc("xxちゃんが好きだ!",xx);

return xx;
}
586仕様書無しさん:2006/11/18(土) 11:26:36
>>581
flag_Shibo = TRUE;
587仕様書無しさん:2006/11/18(土) 12:46:14
まあさ、コメントで遊ぶ?ってのはラマーなら誰しも経験あると思う
588仕様書無しさん:2006/11/18(土) 12:48:22
>>587
わからないでもないけど敢えて聞こう。
ラマーってなに?w
589仕様書無しさん:2006/11/18(土) 12:55:07
590仕様書無しさん:2006/11/18(土) 13:06:58
愛人
591仕様書無しさん:2006/11/18(土) 13:12:25
あれだろ、出産をスムーズにするためにラマーさんが考えたってやつ。
592仕様書無しさん:2006/11/18(土) 13:27:12
char* hoge = "foo";
char* hage = strcat(hoge, "bar");

先輩、それ溢れます。信じてください。
593仕様書無しさん:2006/11/18(土) 13:29:50
クラブヘッド
594仕様書無しさん:2006/11/18(土) 14:23:05
>>584
>溢れなきゃ大丈夫だろう。
実装次第。∴拙い。
595仕様書無しさん:2006/11/18(土) 14:26:03
ボンバヘッド
596仕様書無しさん:2006/11/18(土) 14:36:13
>>592
あふれる以前にコンパイルエラーじゃないのか
597仕様書無しさん:2006/11/18(土) 15:05:19
>>592
hogeが指してるのはconstな領域だけどhoge自身はconstじゃないから通る。
つか溢れる以前に書き込める領域じゃないけど・・・。
598仕様書無しさん:2006/11/18(土) 15:33:32
たまにコンパイルエラーじゃないの?ってのが通っちゃうから困るよな
599仕様書無しさん:2006/11/18(土) 17:41:24
>>589
それ、街頭で若奥様インタビューしてくんねーかな。
600仕様書無しさん:2006/11/19(日) 16:32:51
>>598
「仕様を理解していないお前が悪い。」ってのがC言語の仕様でしょ?
601仕様書無しさん:2006/11/19(日) 16:36:07
ANSIの手でかなりPASCAL化したとはいえCはCだからなあ
>>598はただの馬鹿だと思うが
602仕様書無しさん:2006/11/19(日) 18:03:26
日頃、馬鹿馬鹿言われてる奴に限ってこういう所で他人を馬鹿にする法則w
603仕様書無しさん:2006/11/19(日) 18:19:52

日頃、馬鹿馬鹿言われてる奴に限ってこういう所で他人を馬鹿にする法則w
604仕様書無しさん:2006/11/19(日) 18:24:11


日頃、馬鹿馬鹿言われてる奴に限ってこういう所で他人を馬鹿にする法則w
605仕様書無しさん:2006/11/19(日) 18:26:58
よっぽど悔しかったらしいw
606仕様書無しさん:2006/11/19(日) 19:28:04

よっぽど悔しかったらしいw

607仕様書無しさん:2006/11/19(日) 19:30:47
な、なんの嫌がらせなんだ?

どうにも改行して書き直さないと気に入らないのか?
608仕様書無しさん:2006/11/19(日) 19:32:11

な、なんの嫌がらせなんだ?

どうにも改行して書き直さないと気に入らないのか?

609葉猫 ◆Jz.SaKuRaM :2006/11/19(日) 19:34:00
このスレ最近、アホが増えまちたね。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
610仕様書無しさん:2006/11/19(日) 19:37:33
>>609
いよぉ。糞コテ。



そういえば、最近あんまりでてこないね?
611仕様書無しさん:2006/11/19(日) 19:40:44
髪切ったってことか?
612仕様書無しさん:2006/11/19(日) 19:43:40

髪切ったってことか?


613仕様書無しさん:2006/11/19(日) 20:15:56


髭切ったってことか?
614仕様書無しさん:2006/11/19(日) 20:18:30
猫の髭切ると真っ直ぐ歩けなくなるぞ。
よろよろして屋根から落ちる。
615仕様書無しさん:2006/11/19(日) 20:41:03
髪型が変わっただけで平衡感覚を失うキャラもいるよな。
616仕様書無しさん:2006/11/19(日) 21:02:36

猫の髭切ると真っ直ぐ歩けなくなるぞ。
よろよろして屋根から落ちる。


そういう奴は>>609と一緒に10連続徹夜でもして死ね
617仕様書無しさん:2006/11/19(日) 21:16:59
>609
お前以上のアホは居ないみたいだけど?
618仕様書無しさん:2006/11/20(月) 09:58:38
たまにはこのスレの事も思い出してあげてください・・・・・

印象に残ったコメントを晒せ 0x03
http://pc8.2ch.net/test/read.cgi/prog/1089892228/
619仕様書無しさん:2006/11/20(月) 13:26:19
>>610
出てこなくていい。

>>616
引用くらいまともに出来ないの?
620仕様書無しさん:2006/11/20(月) 20:43:01
>>619
まず素手で尻毛全部引っこ抜いてから、スレの流れ見てみろ。
621仕様書無しさん:2006/11/20(月) 21:19:05
ケツ毛バーガーの話はスレ違いだ、他所でやってくれ。
622仕様書無しさん:2006/11/21(火) 07:27:27
for(int i=0; i<3; i++)
switch(i) {
case 0: func0(); break;
case 1: func1(); break;
case 2: func2(); break;
}

初めて見たときの感動は忘れません。
623仕様書無しさん:2006/11/21(火) 07:31:12
それはアレだ。
多分どっかから引っこ抜いてきたんだよ。
それで不要なソースを消したらそうなったと。
きっとそうだ、うん。


・・・うん。
624仕様書無しさん:2006/11/21(火) 11:03:56
いや>>622 みたいな
ヴァカな書き方はたまに見ますよ。
625仕様書無しさん:2006/11/21(火) 11:12:01
これ最適化してくれないんだよな・・・
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秒程時間が止まった後、大爆笑したね。
正面の奴がマジで心配そうに「だっ大丈夫か!!おい!!!!」と
回り込んできて身体を揺さぶったぐらい、涙が止まらなかった。
627仕様書無しさん:2006/11/21(火) 12:41:03
>>626
これはすごい。COBOLerでもこんなソース書かなくね?
628仕様書無しさん:2006/11/21(火) 12:48:13
>>626

>いや、VB6でこれ見た時は30秒程時間が止まった後、大爆笑したね。
>正面の奴がマジで心配そうに「だっ大丈夫か!!おい!!!!」と
>回り込んできて身体を揺さぶったぐらい、涙が止まらなかった。

全然文才ないねぇ・・・
そのソースと比べても、似たり寄ったりの匂いがする。
629仕様書無しさん:2006/11/21(火) 12:53:41
>626

そういうのを見ると、つくづくVBに算術IF文がなくてよかったと思う。
630仕様書無しさん:2006/11/21(火) 12:55:27
>>628
釣りですか?
631仕様書無しさん:2006/11/21(火) 12:57:32
>>629
VB には IIf があるよ
選択されない方の式も評価してくれるスグレモノだ
632仕様書無しさん:2006/11/21(火) 13:26:59
IIfはどっちかというと3項演算子のナカーマで、制御の流れには直接影響しない。
算術IF文はスパゲッティをフォークで掻き回すようなニクイ奴。
633仕様書無しさん:2006/11/21(火) 16:53:50
>>632
聞きなれないのでググッてみた。Fortranのページが見つかった。
http://docs.hp.com/ja/B3908-90009/ch10s48.html

とても不吉な気配がするね。
634仕様書無しさん:2006/11/21(火) 17:28:00
Fortranの文法の中でも不評でしたからね。しかし、古い資産があるから廃止予定に
上がりながらもずっといき続けている頑張り屋さんです。

>626の部分を書き換えるとこんな感じかな。FORTRANの古い世代がVBやCに来た時に
ときどき見かけた記憶がある。

  IF (a - 0) 100, 80, 100
80 CALL getdata1()
  GOTO 120
100 CALL getdata2()
110 ...


635仕様書無しさん:2006/11/21(火) 19:37:44
俺も626もそのソース書いた奴も目糞鼻糞だと感じた人間の一人
636仕様書無しさん:2006/11/21(火) 22:12:42
http://ameblo.jp/argv/entry-10020268436.html
↑このコードは、具体的にどのようによくないですか?
637仕様書無しさん:2006/11/21(火) 22:14:28
ぬるぽ
638仕様書無しさん:2006/11/21(火) 22:25:35
>>637 がっっっ
639仕様書無しさん:2006/11/21(火) 22:34:38
>>636
一般論として、再帰呼び出しはコストがかかるので、再帰的なデータ構造を扱うときや
再帰的なアルゴリズムを実装する時以外は使わないほうが良い
そのコードの場合だと、再帰呼び出しにかかるオーバーヘッド分実行時間がかかるのと
スタックを無駄に浪費する。
あと、素直にループで書いたほうが可読性も良い
640仕様書無しさん:2006/11/21(火) 23:19:28
>>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
はぁ?
可読性なら再帰のほうが上だろ
642仕様書無しさん:2006/11/21(火) 23:25:54
>>640
それC丼?

なんか、見た瞬間に萎える。
643仕様書無しさん:2006/11/21(火) 23:26:28
>626
8〜16bit時代のBasicじゃあるまいし、
「VB6で」行数ですか。ハハハ
644仕様書無しさん:2006/11/21(火) 23:26:36
>>641
全然上。
ただ、スタックだけが心配。
645仕様書無しさん:2006/11/21(火) 23:35:22
C++でgoto使われてた時、みんななら
1.否定する。
2.まぁ、時と場合でしょ。的に見逃す。

おれは2.でいった。たしかに完全否定は難しかった・・・
646仕様書無しさん:2006/11/21(火) 23:39:28
そんな細かなことばかりいってるからいつまで経っても
いっぱしのソフトが書けないのでは?
647仕様書無しさん:2006/11/21(火) 23:42:36
>>643
IDEのオプションかなんかで行数が表示されるの?
それとも行番号は手打ち?
648仕様書無しさん:2006/11/21(火) 23:45:53
>>645
gotoはいろんな言語である。


なんか、基本中の基本でね?
649仕様書無しさん:2006/11/21(火) 23:57:40
>>648
おれもそう言えばよかったかな。

「gotoはいろんな言語の中にあるんだ〜よ」




ある、なし、
ってLvじゃないんじゃね?なくしたい理由、使いたい理由、ってのがあるだろ。
650仕様書無しさん:2006/11/21(火) 23:58:12
>>640 はロジックとしては別にいいんでは?
関数型言語の再帰処理とか、そんな感じじゃない?
651640:2006/11/22(水) 00:13:24
>>642
実際の使用言語は Java だった。

>>650
確かにね。ロジックとしては正しいと思う。
でも、この場合は再起を使わない場面だと思う。
652仕様書無しさん:2006/11/22(水) 00:30:01
いや、ありえない処理だろ
再帰にしなくてもいいし
653仕様書無しさん:2006/11/22(水) 01:15:21
FORTRANに算術IFがあるなら、VBにも過去の遺産でOn...GoTo、On...GoSubがあるぞ。
On A GoTo 10, 20, 100, 200...
で、変数 A を整数化した値が1なら10へ、2なら20へ・・・
まあ昔は重宝したんだけどね。
654仕様書無しさん:2006/11/22(水) 01:15:30
頭ごなしにありえないとバカにする人は、
ちょっと頭が固くなってはいないですかね?

確かにJavaで>>640のように書くのは、効率的なコードではないけど、
http://itpro.nikkeibp.co.jp/article/COLUMN/20060912/247768/
のような世界もあるわけで。
655仕様書無しさん:2006/11/22(水) 01:23:44
On Error Goto AAA以外のGoto Gosub Exit Functionは禁止希望
656仕様書無しさん:2006/11/22(水) 01:24:25
>>654
君がプログラムを書く職業についているのなら
転職した方が世のため人のためだ

再帰をループにした場合、通常はスタックフレームに保存される情報を
ポインタの配列か何かに保存してループをまわるたびに参照更新する必要があるのだが、
>>640 を無限ループに変換した場合その必要はない。

つまり必要の無い再帰なのです。
657仕様書無しさん:2006/11/22(水) 01:36:36
>>654
手続き型言語での話が暗黙のうちに前提条件になってる上で話してるのに
賢しげにそんな例外持ち出してくるやつは頭悪いw
658654:2006/11/22(水) 01:39:32
>>656
だから効率的ではないと書いたんだけど、
頭固いとそれも読めないんですかね?
659仕様書無しさん:2006/11/22(水) 01:44:03
>>654
末尾再帰はともかく、>>640 で再帰はないだろ。
アルゴリズム的に再帰じゃないし、終了条件とループ単位の
変化量がひとまとまりになってるforの方が分かりやすい。

そのサイトは拡大解釈しても「(手順を踏めば)再帰は再帰で書いてよし」程度にしかなってないぞ。
660仕様書無しさん:2006/11/22(水) 01:56:17
>>657
最近の JVM は末尾再帰をループに変換してくれたりするよ。
いや IBM のだけで、SUN のは駄目だったかな。
661仕様書無しさん:2006/11/22(水) 02:03:23
>>656 Thread.sleep みたいなメソッドを一関数内に一回しかつかえないようなしょぼい実装の環境があったな。
662654:2006/11/22(水) 02:05:49
>>640 のコードが良いとは主張しないです。

ただ、それを頭からバカにする人に、
パラダイムに縛られた思考の狭さを感じたもので。

gotoを使ったこともない人が、goto使ったらおしまいと全否定するのと同じ様な。
663仕様書無しさん:2006/11/22(水) 02:14:42
あるツールがスクリプトとしてSchemeを使ってるんだが、
書き方が下手で再帰がループ最適化されないでやんの。

500回程度の再帰でスタックオーバーするのに
ウン十万円の製品として売られているから困る。

客にデバッグさせるなよヽ(`Д´)ノ
664仕様書無しさん:2006/11/22(水) 02:53:09
>>662
いや、 >>640 のコードは全否定されても仕方ないように見えるがな。
これを肯定するのは、相当問題だと思うぞ。

再起を全否定している発言に対しての言葉だったらよいが、誰もそんな話はしていない。
>>640 のコードは、goto 問題とは次元が違う。
665仕様書無しさん:2006/11/22(水) 03:53:36
末尾再帰最適化を強制するように言語仕様を変えればいい!
なんて思ったけど >>663 の話し聞いてると意味なさげだねえ。
>>640 の作者が末尾再帰かの判断能力を有してるとは思えないし…

どうでもいいが、sleepしたら現在時刻を再取得しろよ…
666仕様書無しさん:2006/11/22(水) 06:25:51
再帰にしちゃ駄目なパターンの典型じゃね?
667仕様書無しさん:2006/11/22(水) 06:52:25
やはり典型というからには非末尾再帰じゃないといかんな。
非末尾再帰にして初めて、どの言語でも再帰しちゃ駄目な典型例になる。
668仕様書無しさん:2006/11/22(水) 09:15:28
654は、とりあえず文句を言っておきたいタイプなんかね?
それとも、何事も即座に否定しない、思慮深い俺様カッコヨスみたいな感じ?

どっちにしろ激しくウザイ。
結論をすばやく出せる=思考が狭い、ではないっての。アホか。
669葉猫 ◆Jz.SaKuRaM :2006/11/22(水) 10:50:49
なんでタイマーイベント使わないんでつか?
670仕様書無しさん:2006/11/22(水) 11:48:27
なんでアホコテは死なないんでつか?

と同じレベルの質問だな
671仕様書無しさん:2006/11/22(水) 12:59:59
辞めようと思ったというか帰ろうと思ったというか
これ書いたヤツをゴルフクラブで脳天フルスイングかましたくなったというか

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で全列?
お前の事だ繁田
672仕様書無しさん:2006/11/22(水) 15:13:19
>>668
こういう浅い人が上にいると、若い人も悪影響与えるんだろうな。
673仕様書無しさん:2006/11/22(水) 16:15:56
>>640 の肩を持つ奴は現場を知らないんだろ。

再帰は...使わないと処理できないケースでの最後の手段。
俺10年以上やってるけど数回しか使った事無いわ。
674仕様書無しさん:2006/11/22(水) 16:58:38
愚者は経験から学び、賢者は歴史から学ぶ
って言葉があったことを思い出した。
675仕様書無しさん:2006/11/22(水) 17:04:34
>>672
はいはい、あんたは深いのね
でも日本語は正しく使おうね
676仕様書無しさん:2006/11/22(水) 17:43:10
>>673が10年以上何をやってきたのか禿げしく疑問に思うのは漏れだけ?
677仕様書無しさん:2006/11/22(水) 17:55:23
そうだな
678!=673:2006/11/22(水) 18:15:49
うーん。
じゃあ実務で再帰を使用した例を提示して見てくれないか?
自分は>>673より使用頻度が低いので、是非御教授いただきたいなぁ
もちろん>>640みたいなのは論外だよ
679仕様書無しさん:2006/11/22(水) 18:21:02
フォルダ内の検索とか。フォルダ内にフォルダがあれば再帰する
フォルダ内の全フォルダ・ファイル削除なんかでも再帰してやったりとか
680仕様書無しさん:2006/11/22(水) 18:25:57
漏れは業務系のロジックしかやらないから、再帰は使ったことないな。
概念は理解してると思うけど。
681仕様書無しさん:2006/11/22(水) 18:27:17
>>679
直感的には再帰で書くのが分かりやすいのね。
オレは、学生時代についた先生に再帰→反復の展開を指導されていたので...
682仕様書無しさん:2006/11/22(水) 18:37:35
PLC のプログラムをなんとか図に可視化するコードで、
「再帰はダメ」と言われて自前でスタック持ってあれこれした
ことがあったなぁ・・・
683仕様書無しさん:2006/11/22(水) 19:33:40
俺は>>673に同意。
if文なんかの括弧の対応やコメント(/**/)のネストを掘り下げて
解析するのには再帰使ったほうが楽だった。
あと、テーブル自動連結させるクエリ生成エンジンにも副クエリの
展開部分に再帰使った。
後は全部ループでやったぞ。

つか皆好きだねこの話題w
684仕様書無しさん:2006/11/22(水) 20:47:16
再帰も使えないこんな世の中じゃ
685仕様書無しさん:2006/11/22(水) 21:02:51
ホイミン
686仕様書無しさん:2006/11/22(水) 21:31:12
>>685
ホイミンwwww

お前、おもしれ〜よwwww

再帰どころか、ホイミンw
687仕様書無しさん:2006/11/22(水) 21:55:15
#include <iostream>;
688仕様書無しさん:2006/11/22(水) 22:20:56
画面から直接DBアクセス
しかもR/Wそれぞれのメソッドで別個に接続処理
値を取ってくるメソッドでは複数取ってくるからとByRef引数が一杯



こんなコードしか書けない人に品質を語って欲しくないと思った。
689仕様書無しさん:2006/11/22(水) 23:35:17
VBの

Sub0001 (a, b, c)


は本当よく見るわ
690仕様書無しさん:2006/11/22(水) 23:49:33
>688
効率云々と品質は必ずしも直結しないからなァ…
例えばCOBOLerのクソ効率悪いコードでも、
恐るべき品質(殆ど不具合が無い)を誇るケースもあるし。

それに何だ。
1000行関数書いたり、仕様不具合を「制限事項」で片付けたり、
無断で仕様決めたり、スーツにボロいスニーカーで納品行ったり、
出向先でAA入りの回覧(他社の人間も見る)を出したりする奴に
品質語られた漏れよりはマシだと思うぞ。
691仕様書無しさん:2006/11/23(木) 00:13:37
「品質の定義」が個々のレスで違うな。
692仕様書無しさん:2006/11/23(木) 00:56:55
行間を読めないようでは掲示板を利用するのは難しい。
693仕様書無しさん:2006/11/23(木) 01:21:15
品質とは品管のハンコが押してある物が「良い」
障害票が残っててハンコがもらえないものが「悪い」

品質が良ければお家に帰れる。
悪いと巻き添えくらって机の下でひっくりかえる。
694仕様書無しさん:2006/11/23(木) 02:43:06
納品したもん勝ちのシステムが世にはばかってるからな。
695仕様書無しさん:2006/11/23(木) 10:31:51
建前では納品=顧客側の貧寒チェックOK、ということだからな。法的にも。

そこにつけこんで「とにかく口で丸め込んで検収さえくれば」とやって
後は「検収済みの件なので、これ以上はできない」とかいう側もあれだが・・・
696656:2006/11/23(木) 12:33:53
>>656 は間違えたのに誰も指摘してくれないから自分で修正

>>640 はtimeが再帰に入るたびにそれぞれの環境に保存されるから
全く無駄なわけではないが、
再帰から脱出しても使用されずに捨てられるからほとんど無駄
697仕様書無しさん:2006/11/23(木) 17:08:25
末尾再帰で書ける処理を人間様がなぜ苦労してループに直さないといけないんだ。
そんなのはコンパイラやインタプリタ等の言語処理系の仕事であって人間様がいちいちやりたくねーよ。
698673:2006/11/23(木) 17:25:34
>>679 の様なフォルダ検索も一例だね。
あとは構文解析とかかな。
一般化すると階層数が不明なツリー構造の検索。

ツリー以外だと、『/tmp/a/b/c/d/e.txt に出力する』を実装する場合、
再帰を使わなくても可能だけど使った方が楽だよね。
パス長っていう制約事項も有るのでスタックオーバーフローも心配無いし。
699仕様書無しさん:2006/11/23(木) 17:28:09
>>697
その辺は誰も否定してないけど…なんかあったのか?
700仕様書無しさん:2006/11/23(木) 20:34:28
>>696 が否定してないか?
701699じゃないけども:2006/11/23(木) 21:06:04
>>700
正直、>>696が言いたいことが今ひとつ掴めないが、
「資源を無駄にすると分かっているものを...」ということでしょ。
末尾再帰でも、何でも自動で展開できるわけではないし。
そもそも、事例は、「再帰で書いて分かりやすいのかな?」と思う。
702仕様書無しさん:2006/11/24(金) 06:21:21
まあ>>640に関しては、無限ループの方が直感的だよな。

でも、他人の書いたソースならスルーすると思う。
自分では絶対書かないけど。
703仕様書無しさん:2006/11/24(金) 06:47:00
>>636 のコメントにもついているように、
機能と操作が分離されていない点の方が、
プログラミングの筋として重要だ。

再帰かループかというのは、処理系にも依存することで、
別に本質的な問題ではない。
どのように書くのが効率的かは、単に知識を付ければいいだけ。
そこをあげつらって得意になるのは、どうもちょっと。
704673:2006/11/24(金) 11:03:09
>>703
処理系に依存するの意味が解らん。
どんな処理系であれ再帰の方がループよりコストが高い。
効率的なコードとはコストが低い事を指すと思うのだが。

705仕様書無しさん:2006/11/24(金) 11:54:18
>>640
この人が書いたソースの引き継ぎはしたくない。
なんだかデスマが待ち受けていそう。
706仕様書無しさん:2006/11/24(金) 15:46:25
int sum(int m, int n) {
if (n == m) return m;
return n + sum(n - 1);
}
707仕様書無しさん:2006/11/24(金) 16:08:05
プログラマが正しく再帰を使ってることを前提として、そこを重点的最適化する処理系ならありそうだな。
コストが同じ場合は、書く速度が速いほうを選ぶほうが効率的だ。
708仕様書無しさん:2006/11/24(金) 17:06:52
>>704
> どんな処理系であれ再帰の方がループよりコストが高い。

その前提が間違ってるっつってんだろ。
709仕様書無しさん:2006/11/24(金) 18:03:19
自分の知識が正しいと思ってるやつはどこの現場にもいる
710仕様書無しさん:2006/11/24(金) 18:06:56
正誤はさておき、>>636リンク先みたいな人格のヤツは嫌だなぁ
711仕様書無しさん:2006/11/24(金) 18:15:11
>>706
コンパイル通らんな。

>>708
『つってるって』、今始めて出た意見だと思うが?
例を示せる?
最適化で再帰がループに化けるからっていうのは論点が違う。
712708:2006/11/24(金) 18:37:03
>>711
> >>708
> 例を示せる?
> 最適化で再帰がループに化けるからっていうのは論点が違う。

704で
> どんな処理系であれ再帰の方がループよりコストが高い。

と言ってるがお前はこの世のすべての処理系を扱ったことがあるのか?
ないかぎり703の「処理系に依存する」が正しいに決まってんだろ。
713仕様書無しさん:2006/11/24(金) 18:41:47
ぶっちゃけ、再帰とループの境界ってどこにあんだ。
そっからすでに、言語依存だ。
714仕様書無しさん:2006/11/24(金) 19:04:24
正直、>679みたいなどこまで続くかわからない階層構造の処理を
どうやってループにすんのかよく分かんね。

どんな処理でもどっちでもできるってもんでもないだろ?
別にどっちが優れてるとか比べるもんじゃなくて、ケースバイケースでそれぞれ
使うだけだと思うんだが・・・
715仕様書無しさん:2006/11/24(金) 19:32:11
do〜while()って知ってる?
716仕様書無しさん:2006/11/24(金) 19:40:29
>>715
フォルダ内の再帰処理をループでどうやって書く?
717仕様書無しさん:2006/11/24(金) 19:42:26
スタック使えば良いだろ
718仕様書無しさん:2006/11/24(金) 19:47:40
すまん、よくわからん。
できればちょっとコード書いてくれるとありがたい。
719仕様書無しさん:2006/11/24(金) 19:52:49
錆びるぞ
720仕様書無しさん:2006/11/24(金) 20:03:16
>>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;
}
721663:2006/11/24(金) 21:16:08
>フォルダ内の検索
まさに遭遇したケースその1だw
この処理をする関数を呼び出したらスタックオーバーフローした。
最終行で自分を呼び出すように書いてはあるんだけど、末尾再帰にはなってなかった。
722711:2006/11/24(金) 21:16:40
>>712
> と言ってるがお前はこの世のすべての処理系を扱ったことがあるのか?
> ないかぎり703の「処理系に依存する」が正しいに決まってんだろ。

すでに小学生レベルの言い草だなぁ...
全ての処理系は知らんけど理屈からいって再帰の方が重いに決まってるよ。
ループの方が再帰より重くなる処理方法なんて考え付かないし。

>>720
結局、関数のスタック変数を使うか自前のスタッカーを使うかの差でしかないよね。
723711: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 とか、階乗を求めるとかのスタッカーを必要としない処理の場合は再帰の方が軽い
はずが無いと思う。
724仕様書無しさん:2006/11/24(金) 22:06:38
>>722
>結局、関数のスタック変数を使うか自前のスタッカーを使うかの差でしかないよね。

もちろんそのとおり。でも関数呼び出しのスタック(再帰を使う場合)には、
使える量が有限かつ残量が予測しにくいという問題があるわけで、できれば避けたいのが本当のとこ。
特に最近マルチスレッドのアプリとかあるんでスレッド当たりのスタック減り気味だし。

ディレクトリのスキャン程度なら問題にもならないだろうけど、シードフィルとかを実装する場合には
自前スタックが必須。
725仕様書無しさん:2006/11/24(金) 23:36:49
こういうのは実見だよね。
階乗なんか最適化しやすい問題だし。
数字はループ部分のニモニック数。

       無  -O -O2 -O3
ループ    6   4  4   4
再帰    再帰  6  5  ワロス
末尾再帰 再帰  6  5  ワロス

末尾再帰でなくても最適化するのには驚いた。
gcc4.0.0(i386)。他のコンパイラは持ってない(´・ω・`)がな。
726仕様書無しさん:2006/11/24(金) 23:45:46
再帰重いよと主張する人はしょぼいコンパイラのバッドノウハウに縛られている可哀想な人
ループは結局のところ再帰の機能限定版であり単なるシンタックスシュガーなんだから
ループも再帰も同じことを表すコードなら現代的なコンパイラなら同じコードを吐く。
727仕様書無しさん:2006/11/25(土) 00:11:51
>>726
そうかな〜。
例えばツリーのトラバースで自前スタックを使うやり方を知らないと、
再帰を使った深さ優先の処理しか書けないでしょう?

なんつ〜かどっちも書けて当たり前で、要件に応じて使い分けるだけのような…
728仕様書無しさん:2006/11/25(土) 00:28:11
>>720
なるほどー。どちらでもいいケースなら>>723の方が簡潔だ。
729仕様書無しさん:2006/11/25(土) 00:33:41
>>700
再帰の使い方を否定してるだけで、再帰を否定しているわけじゃないように見える。
640の使い方を否定するヤツ vs 再帰を擁護するヤツ ってカンジで話の対象がずれてないか?

俺は 構造が再帰的→スタックが欲しい→再帰処理 でしか使ってなかったから、なんか違和感がある。
うーん、「再帰」って何だ…
730726:2006/11/25(土) 00:35:32
>>727
どっちかっていうと末尾再帰系統を念頭に置いてたから、
その辺の本当の意味で再帰的な処理はあんまり考慮してませんでした。
ようするに単に再帰のほうが重いに決まっているという根拠のない妄想的な偏見を嘲笑したかっただけです。

用件によって使い分けるのは当然というのは同意ですね。
探索系統なら自前スタックで書いておくと幅優先とかにも容易に置き換えれたりするメリットもありますし。
731仕様書無しさん:2006/11/25(土) 01:30:31
ちなみに663=725。

好きでもない言語(括弧多すぎ)を使って
再帰(ループでもええやんと思うことしばしば)を書き直すのに苦労したのに
使ってもないであろう人から擁護したい気持ちで>>725を書いたのは確か。













>(ループでもええやんと思うことしばしば)
というかループに直したところも多いw
732仕様書無しさん:2006/11/25(土) 04:24:35
再帰でかいたのにコンパイラの方で処理はスタックしてたりするよな
733仕様書無しさん:2006/11/25(土) 12:24:31
>>732
再帰呼び出し自体が、通常、スタックを使用して実装されると思います。
734733:2006/11/25(土) 12:31:31
しまった!
「処理がスタック(stuck)する」
は別の意味か...
735仕様書無しさん:2006/11/25(土) 16:43:03
>>726
主張が暴走して言ってることが馬鹿すぎるぞw
736仕様書無しさん:2006/11/25(土) 17:14:21
>>735
スルーしろってば(ハート
737仕様書無しさん:2006/11/25(土) 17:20:28
華麗にthrow
738仕様書無しさん:2006/11/25(土) 17:22:02
739仕様書無しさん:2006/11/25(土) 17:22:18
例外起してどうするんだよw
740仕様書無しさん:2006/11/25(土) 17:24:03
再帰、学習本のころしか使ったことないや
やっぱり機会が無いことには覚えないし忘れるよね・・・
741仕様書無しさん:2006/11/25(土) 17:24:20
華麗にcatch
742仕様書無しさん:2006/11/25(土) 17:25:05
俺がガッチリcatch(ex)
{ abort(); }
743仕様書無しさん:2006/11/25(土) 17:50:45
>>742
堕胎(abort)してるじゃん!
744仕様書無しさん:2006/11/26(日) 20:28:24
いつからここは上手いことを言うスレになりましたか
745仕様書無しさん:2006/11/26(日) 21:28:44
再帰厨がLoopしだしてから
746仕様書無しさん:2006/11/27(月) 03:49:06
while(true){
747仕様書無しさん:2006/11/27(月) 10:17:21
   printf("ぬるぽ");
}
748仕様書無しさん:2006/11/27(月) 10:55:27
catch (ぬるぽException ex) {
  MessageBox.Show("ガッ!", "ClearNullpo",
          MessageBoxButtons.OK, MessageBoxIcon.Hand);
}

749仕様書無しさん:2006/11/27(月) 14:40:24
はなしはかわるけどさ、無限ループって怖くね?
750仕様書無しさん:2006/11/27(月) 18:42:40
それは>>747が悪いw
751仕様書無しさん:2006/11/27(月) 22:07:13
*/
752仕様書無しさん:2006/11/27(月) 22:11:15
なんかさ、色んな言語を同時進行したら
コメントもごちゃ混ぜになるよねw

もう、疲れたよ・・・
753仕様書無しさん:2006/11/27(月) 22:47:01
std::vector<std::string> vecString;
ってstd::stringをハードコーディングしたらテンプレートの意味ねーじゃんw
754仕様書無しさん:2006/11/27(月) 22:53:35
>>753
え?
そういう書き方、ふつうじゃないの?
755仕様書無しさん:2006/11/27(月) 22:54:31
インスタンス化しないとテンプレートの意味ねーじゃんw
756葉猫 ◆Jz.SaKuRaM :2006/11/27(月) 22:55:11
意味分からん。 漏れいつもそうちてるけど。
757仕様書無しさん:2006/11/27(月) 23:01:51
俺もざらにやってる
758仕様書無しさん:2006/11/27(月) 23:02:19
>>753
前後の文脈しだいだけど変数名から類推すると適切な気がしてならないけど。
759仕様書無しさん:2006/11/27(月) 23:11:28
>>753
けっこう多いよなw
あと
std::map<std::string,std::string> strMap;
って、std::stringとstd::stringをマップしたらマップの意味ねぇ〜じゃんw
みたいなw
760仕様書無しさん:2006/11/27(月) 23:12:06
>753
vecStringに数値でも突っ込みたかったのか?
761仕様書無しさん:2006/11/27(月) 23:17:28
>>759
いやそれも普通じゃね。
俺は設定ファイルのパース結果をmap<string,string>に突っ込むとかよくやるんだけど
762仕様書無しさん:2006/11/27(月) 23:28:58
俺もたまにstd::vector<std::pair<std::string, std::string> >とかやるな
数回しか使用しない内部データにいちいちtypedefとか面倒なんで・・・
763仕様書無しさん:2006/11/27(月) 23:37:38
>>753
何を言いたいのか全く分からん・・・。
vector 自身がすでにテンプレートだから、
> std::vector<std::string> vecString;
という使用方法は普通だしなぁ。
764仕様書無しさん:2006/11/27(月) 23:41:21
>>763
C++を一から勉強しなおしてください
765仕様書無しさん:2006/11/27(月) 23:45:01
>>764
Cを零から勉強しなおしてください
766仕様書無しさん:2006/11/28(火) 00:17:33
>>753
ハードコーディングって言葉から察するに
いつでもstringとwstringを切り替えられるようにtypedef
でもしておけってことか?

767仕様書無しさん:2006/11/28(火) 00:23:46
>>753=>>759=>>764はそろそろ解説入れたほうがいいよ
みんな目ぇ丸くしてるから
768仕様書無しさん:2006/11/28(火) 00:33:16
initial_value = /*後で決める*/

// 10行くらいのコメント

total += length;
769仕様書無しさん:2006/11/28(火) 00:35:21
「テンプレートの意味がなくなる書き方」っていう発想がわからんのだよな。
「あとあと面倒が生まれかねないから、>>753の書き方をせずtypedefを使ったほうがいい」
状況ならもちろんあるけれど、それはクラステンプレートではない型にも共通する
ノウハウであって、「テンプレートの意味」とやらがそれを左右しているわけではないし。
770759:2006/11/28(火) 02:02:32
ごめんなさいごめんなさいごめんなさい!!
753のワケのわからないレスに乗ってワケのわからないことを言いたかっただけです。
つまり釣りというかネタというかそんなところ。
map<string,string>なんて普通に使います。
771仕様書無しさん:2006/11/28(火) 02:19:08
STL使えるだけまし
772759:2006/11/28(火) 02:29:49
>>771
だよね。
STLを使える環境ってうらやましいわぁ。
Cすらまともに使えないバカばっかりだからウチは無理だ。
773仕様書無しさん:2006/11/28(火) 02:31:24
Cすらまともに使えないやつにこそ vector, list, map を使わせるべきだろ。
そんなやつらに可変長配列や連結リストや連想配列は作れないんだから。
774仕様書無しさん:2006/11/28(火) 02:53:11
何でもいいから、まずは定型化して欲しいな。
同じような画面が10枚有るのに中身が10人10色の作り方
されたんじゃSTLも糞もあったもんじゃない。
775仕様書無しさん:2006/11/28(火) 05:21:28
>>773
いやぁ〜、理想?をいえばそうなんだけどさぁ。
Cもまともに使えない人はテンプレートとかメンバ関数とかイテレータ
だけでびっくりしちゃうと思うんだよね。

>>774
超優秀なPGにコードの既存・新規部分や担当に関わりなく設計レベルから
コードを改変していいリファクタ特権とかを与えるのはどうだろう。
バグDOWN、可読性UP、スタイルの一貫性UP、で(゚д゚)ウマーとかならないかしらw(現実は厳しいか)
776仕様書無しさん:2006/11/28(火) 11:34:22
effective stlでも読んだのが興奮してるだけじゃなかろうか
777仕様書無しさん:2006/11/28(火) 11:41:44
>>776
あれはいい本だけどな。
なんにせよ適用する際にはなら空気嫁と言ってるところとか特に。
778仕様書無しさん:2006/11/28(火) 19:20:40
お前らまだいいよ
クラスAのメソッドの定義でクラスAのグローバルインスタンスが使われてた・・・C++て恐ろしいな
鬱だ
779仕様書無しさん:2006/11/28(火) 19:53:49
>インスタンス
ちょくちょくみるが、それインスタンスじゃなくてグローバルオブジェクトだろ。
インスタンスハンドルはアプリで1つだよ、基本的に。
JAVAや.NETのインスタンスじゃない。
だから、どこかのスレで見たが、ドラッグアンドドロップで他のアプリにドロップしてもWM_LBUTTONUPが利かない、ということが起こる、当然だが。
それと、mainへのエントリーの前にクラスAのオブジェクト作りたいんだろう、それは。
C++じゃあたりまえ。MFCのthe Appの唯一のグローバルオブジェクトもその原理で作ってる。
CやC++でプログラムのエントリポイントは、mainじゃなくてグローバルオブジェクトの基底クラスのコンストラクタとかグローバル変数、staticになるわけだ。
780仕様書無しさん:2006/11/28(火) 20:41:10
781仕様書無しさん:2006/11/28(火) 20:51:28
>>779
日本語でおk
782仕様書無しさん:2006/11/28(火) 20:52:53
>>778
それってMonoStateパターンじゃね?
分野によっては有効なやり方だと思うけど。
>>779
誤爆?
783782:2006/11/28(火) 20:55:19
あ、ちがうな、勘違いだから無視しといて
784仕様書無しさん:2006/11/28(火) 23:23:44
>>779
こんな奴と仕事したくない、しゃべりだしたらうるさそうだなー
785仕様書無しさん:2006/11/29(水) 00:19:48
>>779
「ちょくちょ」

で読むのやめた。
786仕様書無しさん:2006/11/29(水) 00:53:18
>779
Windowsプログラミングの「インスタンス」と
OOP用語の「インスタンス」をごっちゃにしてるのか?
語源は一緒だが区別しとこうぜ。
787仕様書無しさん:2006/11/29(水) 00:58:42
多分OOP用語の「インスタンス」を知らないんじゃないか?
話のレベルが急に上がったり下がったりする
マ板は恐ろしい所だぜ
788仕様書無しさん:2006/11/29(水) 01:33:42
フゥハハハァーーーーー
789仕様書無しさん:2006/11/29(水) 04:11:10
778はなんどもこのスレで恥かいてるやつだなw
790仕様書無しさん:2006/11/29(水) 14:13:58
779もな。
791仕様書無しさん:2006/12/08(金) 22:17:01
とりあえず、辞めようと思っただけで気が済まなくなったので
上司に退職宣言してきた。

それだけが理由じゃないけどな。
792仕様書無しさん:2006/12/09(土) 09:56:45
>>791
理由kwsk
793仕様書無しさん:2006/12/09(土) 16:13:14
このスレに書くぐらいだから勿論ソースが原因なんだろうな。
794仕様書無しさん:2006/12/09(土) 17:30:02
そーっすね
795仕様書無しさん:2006/12/09(土) 18:35:11
木枯らしが・・・
796仕様書無しさん:2006/12/10(日) 13:17:10
ひまつぶし と ひつまぶし って

似てるよね
797仕様書無しさん:2006/12/10(日) 13:23:41
「ひまつぶし」という商品名の「ひつまぶし」は実在する。
798仕様書無しさん:2006/12/10(日) 14:20:10
いくらデスマ中でもひつまぶしの差し入れは無かったな。
最高で大晦日に手打ち蕎麦、しかも俺アレルギー。
799仕様書無しさん:2006/12/10(日) 15:52:17
>>798
そばアレルギーって、そば食べるとどんな感じになるの?
ジンマシンとか出る感じ?
800仕様書無しさん:2006/12/10(日) 16:08:11
>>799
最悪の場合、命にかかわる
801仕様書無しさん:2006/12/10(日) 16:10:02
アレルギーって大変だよね。
卵アレルギーとかって食いもんかなり制限されてかあいそう。
802仕様書無しさん:2006/12/10(日) 16:20:53
>>799
喉が痒くなってきて内側の粘膜が晴れ上がって息苦しくなる。
最悪の場合呼吸停止。
803仕様書無しさん:2006/12/10(日) 21:50:50
「ちんこすう」という商品名の「ちんすこう」は実在しますか?
804仕様書無しさん:2006/12/10(日) 21:54:55
「ようじょまんじゅう」という商品名の「じょうよまんじゅう」は実在しますか?
805仕様書無しさん:2006/12/10(日) 21:55:25
たぶんそれはない。
理由:売れないから
806仕様書無しさん:2006/12/10(日) 22:07:26
バカ売れっすよ
807仕様書無しさん:2006/12/10(日) 22:10:14
「余り物には福がある」ってことで
「剰余まんじゅう」
なんでしょ?
808仕様書無しさん:2006/12/10(日) 22:16:58
売れ残りっぽいから売れません
809仕様書無しさん:2006/12/10(日) 22:53:56
あねさん女房ほしい
810仕様書無しさん:2006/12/10(日) 23:02:52
クラス名・メンバ名に日本語使いまくりで
こっちまで脳味噌膿みそうなプロジェクトに参加してはや数ヶ月……

>803-809はつまりそういう脳味噌が膿んだ識別子を晒してるんだよな? そうだよな?
811仕様書無しさん:2006/12/10(日) 23:13:08
英語でもドイツ語でも無い中華のソース辞めてくれ・・・
812仕様書無しさん:2006/12/10(日) 23:40:17
下呂の香り
813仕様書無しさん:2006/12/11(月) 00:05:16
>>810
言語何?.NET特にVB系?

昔VBが日本語おけな事知って「日本人なら日本語コード書くべきだろう」と日本語関数とか作りまくったけど、
あとから見たら人生最大の汚点になった・・・
(思ったより日本語って可読性悪いし、他言語プログラミングやってると日本語との相性も・・・
他人の開発内容で関数名、定数名に日本語出てくると「おおっ!」てなる)

814仕様書無しさん:2006/12/11(月) 00:24:57
>813
それがねぇ……

JavaっすよJava('A`)
privateならどんな名前付けてもいいと思ってんのかメソッド名にまで日本語付けやがって
そんなクラスの機能追加の作業とか振られたらもうねアボガド(ry

あ、DB (Oracle)もテーブル名から列名から日本語ばっかし。
つかテーブル名自体は英数字で付けてて、シノニム日本語で切ってんの。もう見てらんない(´・ω・`)
815仕様書無しさん:2006/12/11(月) 00:27:03
この会社辞めようと思ったソースコード、の名にふさわしいな。
日本人以外へのメンテ発注禁にする事狙ってるのかな?
816仕様書無しさん:2006/12/11(月) 00:32:37
あちゃー
817仕様書無しさん:2006/12/11(月) 00:52:18
>>814
昔コーディング規約で
「テーブル名・カラム名は public static final String で定義し、変数名をテーブル名・カラム名と同じにする」
ってのがあった。で、でき上がったのが

public static final String 組織cd = "組織cd";
public static final String 組織nm = "組織nm";
  ・
  ・
  ・

もう少しまともなDB屋はいなかったのか orz
818仕様書無しさん:2006/12/11(月) 00:54:16
>>817
牛乳吹いたwww
819仕様書無しさん:2006/12/11(月) 10:51:18
>>817の所もそうだけど、テーブルやフィールドの名前を定数化するのって意味があるのか?

値が取れなかったときにデフォルト値を返すiniファイルなんかだと
タイプミスを防ぐ意味でも定数化するべきだと思うけど、
テーブル・フィールド名のタイプミスなんかはDBがエラーを返すから単体テストの初期段階で気付くし、
可読性が下がるからあんまり好きじゃないんだが・・・
820仕様書無しさん:2006/12/11(月) 11:31:07
SQLが数百行なんてザラなんだけど、定数化なんて聞いたことがない。

定数で間に合うような簡単なSQLがうらやますぃ
821仕様書無しさん:2006/12/11(月) 11:44:14
見たことは無いが、
組み込みSQLから来たコーダーが自分のおかしな工夫を規約にしてしまったのでは?
822仕様書無しさん:2006/12/11(月) 12:03:40
>819
アホが大した理由もナシにテーブル名だのフィールド名だのをコロコロ変えることがある
それ対策
823仕様書無しさん:2006/12/11(月) 13:17:35
>>822
アホをクビにするのが抜本的対策
824仕様書無しさん:2006/12/11(月) 20:56:08
アホをアホと見抜けない人には(PGを使うのは)難しい
825817:2006/12/11(月) 22:10:33
>>818
口に含んだ乳は吹かずに吸い込め。


これ、前年開発したヤツの機能追加でお鉢が回ってきたんだけど、PLに言ったら「俺、javaわかんねーし」って言ってた。
いや、そういう問題じゃねーってば。
他にもstrutsをラップしてわざわざ手続き型っぽく扱えるようにしていたり、controllerがsql吐いてたり、Exceptionは握りつぶしていたり、それはもー酷かった。

あとで知ったんだけど、「対した理由もなくテーブル名だのカラム名だのをころころ変える事がある」のは、そのPLでした。
俺にお鉢が回ってきた年はそのPLは別の仕事で手いっぱいで殆ど放置だったので、あれでも最悪は逃れていたんだなぁと今にして思う今日この頃。


ちなみに、ついこないだ全く別のところから回ってきた全く別の案件も、同じような事をやっている事に今日気がついた。俺の会社、もう駄目かも・・・
826仕様書無しさん:2006/12/11(月) 22:59:50
>>825
「strutsをラップして手続き型っぽく」の部分を詳しく
827814:2006/12/11(月) 23:22:16
>815
あんまり引っ張るのも何だからここまでにするけど
かなりの部分中国に出してるorz

すごいね今の中国のマって。こっち(日本)の設計屋が指定してはいるんだろうけど、
日本語のクラス名もテーブル名も、平然と使いこなすよ。

……しかしなぜか収める前にコンパイルを忘れることがあるようで
識別子に「−」とか使っててデプロイチームの怒号が轟くこともあるがorz
828仕様書無しさん:2006/12/11(月) 23:34:35
コンパイルもできないしデプロイにも失敗するソースを送られてきて
テスト項目はすべて「OK」、バグ発生率0%ときた。

で、リーダが流石に怒ってシナ会社に電話したところ

「とにかく時間が足りず、
 テスト項目を全て「OK」で埋めることに集中したため
 テスト自体は省いてある」

と堂々と答えてきたらしい
829仕様書無しさん:2006/12/11(月) 23:55:10
愛国無罪だな
830817:2006/12/12(火) 00:25:48
>>826
名前忘れたけど、javadoc に「フォームとセッションから値を取り出す」って書いてある public abstract void なメソッドと、public abstract void mainRoutine()。
実装はコードのコピペか static メソッドを呼び出すようになってる。

で、この実装のひな形を生成する excel マクロがあるw
831仕様書無しさん:2006/12/12(火) 00:28:16
なんでんなもん生成するのがエクセルマクロでなんだよ!
832仕様書無しさん:2006/12/12(火) 00:31:51
>>828
国が違うと訴えるの難しいのかな?
絶対勝訴じゃない?
833仕様書無しさん:2006/12/12(火) 00:36:09
>>832
どうなんだろう。結局8割程を日本で修正したな。
そもそも送られてきたSQL自体がエラー吐くんだぜ。

俺は嫌気がさして途中でプロジェクト抜けたから後は知らない。
契約の延長依頼が来てたけど、するわけねーだろアホ!
834仕様書無しさん:2006/12/12(火) 00:50:28
BCBでフォームにすべての処理がかいてあって
フォームだけで3000行・・・

これだからポトペタは嫌いなんだよな
835仕様書無しさん:2006/12/12(火) 00:52:37
C#ではフォームで二万行ってのがあったぜ
836仕様書無しさん:2006/12/12(火) 00:59:43
VC++6だとそういった初心者を完全にシャットアウトしてくれたからよかったが・・・
837仕様書無しさん:2006/12/12(火) 09:20:32
逆に俺はファイル数が以上に多い文化がどうもなじめない
3000行くらい普通だろ
838仕様書無しさん:2006/12/12(火) 09:55:30
>>837
メンテナンス性よりも「なじめない」とかいうアナログな基準を優先させるお前が憎い。
839仕様書無しさん:2006/12/12(火) 10:18:26
>>838
だって俺にとってのメンテナンス性は悪いからな<大量ファイル
もちろん、いちプロジェクトをすべてひとつのファイルにまとめろって意味じゃないよ。
分けるにも適度な分量ってのがあるだろって思ってるだけ。
840仕様書無しさん:2006/12/12(火) 11:12:06
>>838
フォームに3000行書いてあったら多すぎるだろ?
ユーザとのやり取りに集中するべきところに、何か余計な事が書かれているということじゃないか?
また、ユーザとのやり取りしか書かれて居なくて、3000行必要なら、そのフォーム自体の複雑さが疑問に思う。
841840:2006/12/12(火) 11:15:09
アンカーミス
×>>838
>>839
意味のある区切りで分割してあるからこそ、メンテナンス性が向上するのでは?
分量は基準にはならないと思う。
842仕様書無しさん:2006/12/12(火) 11:19:08
VB厨とその他が議論してるから、3000行で多いだの丁度いいだのと
意見が分かれてるだけのような気がする。
843仕様書無しさん:2006/12/12(火) 11:32:27
VB開発だとU/Iとビジネスロジックの分離なんて意識しない奴が多いんじゃね?
MVCだなんだって「俺らには関係ない。俺らブイバーだから」って言ってる香具師がいる。

Webフォームの方だとたしかに分離すべきかな、タグ類の取り扱い+ビジロジなんて分かりにくすぎるから。
844仕様書無しさん:2006/12/12(火) 11:36:26
>>840
ただ単に、その「意味のある区切り」の感覚が違うだけだと思うよ

しかし・・・3000行ってそんなに多いか?1万超えるとかならともかく。
845仕様書無しさん:2006/12/12(火) 12:31:44
ウチで扱ってるシステムのメイン画面は2万超えてるな・・・

分割できる機能のほとんどを1つのファイルに詰め込んでる上に
修正する度に古いコードをコメントにして残す風習がまだ残ってるから
カスタマイズの案件がある度に見づらくなってくる。

一度リファクタリングして機能の分割とカプセル化をするべきと提案はしてるんだが
その時間を確保する前に納期が厳しめの新しい案件が入ってくるからなかなか実行に移れんorz
846仕様書無しさん:2006/12/12(火) 12:40:15
>>828
> テスト項目を全て「OK」で埋めることに集中したため
> テスト自体は省いてある」
目からウロコ
847仕様書無しさん:2006/12/12(火) 14:41:55
>>845
悪い習慣が、不健康な体を作る。
848仕様書無しさん:2006/12/12(火) 15:16:59
外注にだしたらテストをほとんどせず、テストするならその分金出せっていわれた
849仕様書無しさん:2006/12/12(火) 15:22:41
すごい害虫だな。

開発ってとりあえず作るところまでだと思ってるのか・・・
某大手の研究所と同じだ・
850仕様書無しさん:2006/12/12(火) 21:29:46
未だに中国に外注に出して大もうけなんて夢見てる中小が多いから被害は拡大する一方だな。
851仕様書無しさん:2006/12/12(火) 21:49:38
はぁ、やれやれだぜ。
ってことは、ちゃんとユニットテスト書いてる今のプロジェクトは幸せなのか。
# JAVAじゃないし、IDEも存在しない言語だけどユニットテストのライブラリはある
852仕様書無しさん:2006/12/12(火) 21:52:18
ユニットてすとねぇ・・・

普通は結合テストの事をいうけど、厨房はXUnit系を
ユニットテストだともおもってるのかねぇ
853仕様書無しさん:2006/12/12(火) 22:03:55
unitって単体だろ?
854仕様書無しさん:2006/12/12(火) 22:08:48
これはいい釣り >852
855852:2006/12/12(火) 22:11:29
>>853
スマソ。本気で間違えた。単体テストだ。
856仕様書無しさん:2006/12/12(火) 22:11:42
結合はうちではPTっていうなあ
何の略か知らないが
857仕様書無しさん:2006/12/12(火) 22:38:36
>>856
poor test
planet test
prescott test
party test
paradox test
858仕様書無しさん:2006/12/12(火) 22:46:07
>>843
残念ながら、ブビ厨が書いたVBSなんか分けられていないことも多々あるのだな。
859仕様書無しさん:2006/12/13(水) 21:06:20
>>858
スクリプトでU/Iとビジネスロジックを実装しようとしてる
時点でおかしいと思う。
860仕様書無しさん:2006/12/13(水) 23:38:24
>859
いや、それレガシASP使いとPerl使いとPHP使い全員敵に回してるから。

……敵に回してなんぼのもんじゃと言われるとorz
861仕様書無しさん:2006/12/14(木) 01:00:04
Python使いの俺が来ましたよ
862仕様書無しさん:2006/12/14(木) 01:33:26
で?
863仕様書無しさん:2006/12/14(木) 01:53:15
フラッシはスクリプトに含まれるの?
864仕様書無しさん:2006/12/14(木) 05:55:45
プラッシーは米屋で買えるよ
865仕様書無しさん:2006/12/14(木) 11:18:17
>>864
今はスーパーでも売ってる事がありますよ。
それより、マリンカが欲しいんですが。
866858:2006/12/14(木) 12:08:29
>>859
俺もそうは思うんだが、
>>860がいっているように、レガシASP使いはそこまでやるので。

俺個人はゴツい業務ロジックはストアドにする。
867仕様書無しさん:2006/12/16(土) 21:40:41
typedef struct ... UltraSuperHyperArray;
868仕様書無しさん:2006/12/16(土) 22:23:27
>>867
バカすぎてワロタ

用途わからねぇw
869仕様書無しさん:2006/12/17(日) 01:38:29
typedef struct ... EternalForceBlizzard
870仕様書無しさん:2006/12/17(日) 01:57:27
>>868
誰が作ったのか問い詰めたら、中華の作ったソースらしい。
奴ら英語のスペルも要所要所で間違ってるからワケ判らん。
right が light になってたりするけどアプリケーションの
グローバル変数になっててDLL内で参照(!)してるから
一括置換すらできないヽ(`Д´)ノ
871仕様書無しさん:2006/12/17(日) 13:26:42
支那人って昔(10年ぐらい前)から変わらないんだなw
872仕様書無しさん:2006/12/17(日) 17:13:43
支那とは限らんだろうが。
>>780
書き直せ。レビューに出すならなw
873仕様書無しさん:2006/12/17(日) 17:19:59
>>856
パテ違うの?
874仕様書無しさん:2006/12/17(日) 21:37:25
中華が書いたコードの識別子が、日本語のローマ字表記のがあった。
ローマ字表記とかただでさえ読みにくいってのに、
日本語間違ってて、何が書いてあるのか全くわからん。
875仕様書無しさん:2006/12/17(日) 21:39:27
>>874
中国語のローマ字表記になるともう何がなんだか
876仕様書無しさん:2006/12/17(日) 22:15:42
中華の下請け使ってる会社は避けろという事だな
877仕様書無しさん:2006/12/18(月) 11:48:49
そういえば上海のPGの書いたソースに
kakuchouko
という単語が。
・・・文脈からみて「拡張子」であることは間違い無い。
878仕様書無しさん:2006/12/18(月) 21:14:03
債権者ってDB項目がSaikenMonoとなってたな
879仕様書無しさん:2006/12/18(月) 21:28:15
・関数名がアルファベット6文字固定で数百個
・#ifdef使いまくり
・システムコールがマクロで上書きされてた

doxygen使っても歯が立たないorz
2週間でキレた。
880仕様書無しさん:2006/12/18(月) 21:37:46
>>879
2週間もよく持ったな。乙
881仕様書無しさん:2006/12/18(月) 22:34:33
>>879
あー俺も過去にそんなことあったな〜。
マクロだらけのソースはまともに相手にしないで、プリプロセッサ通したソースを常に参照するように心がけてたな。
882仕様書無しさん:2006/12/19(火) 10:33:21
>>877
それは中国の奥地にある拡張湖という湖の名前。



うそ。

883仕様書無しさん:2006/12/19(火) 18:17:24
>>882
っうぇw3文字なのにググルさんが困った顔したwww
884仕様書無しさん:2006/12/19(火) 21:57:52
EnterCriticalSection(&cs)

が、ソースのいたるところに入っていて、
かつ、csがexternで全ソースから参照されてます!!


885仕様書無しさん:2006/12/19(火) 22:04:53
それはきっと処理全部がクリティカルなんだよ!
(extern指定できたんだあれ)

・・・てかマルチスレッドにする意味ないじゃんw
886仕様書無しさん:2006/12/19(火) 22:23:39
やたら長いデストラクタが
実は呼ばれてかったソースを見たとき。
887仕様書無しさん:2006/12/19(火) 22:44:30
メソッド名に通番が付いてる場合はどれか一つしか生きてないこと多いよね。
要らないのは消せよ!w
888仕様書無しさん:2006/12/19(火) 22:54:40
クラスAのメンバにクラスBがいて、
クラスBに、クラスAをインスタンス化するメソッドがいるとか、
なんかスパゲッティになっているソースを見たとき。
こういうのもさっと理解できるようにならんといかんの???
889仕様書無しさん:2006/12/19(火) 22:57:13
>888
言語の理解としては不要。
しかし、職業人としては必要orz
890仕様書無しさん:2006/12/19(火) 23:29:30
そういう詳細仕様ってまず作ってないんだよな、特に中華
891仕様書無しさん:2006/12/20(水) 00:15:04
中華に仕事をまわすな!

>>888
勝手にリファクタリング
ユニットテストが無い場合はユニットテスト作成から。
こっそりやる。
892仕様書無しさん:2006/12/20(水) 20:39:50
if文の中でnewしたオブジェクトへのポインタが
4つ5つくらいのクラスを渡り歩いてる。
で、ちゃんとdeleteされてるのかと思って検索したら
どっかのクラスのデストラクタにdeleteが記述されてた。
ちょっと安心したら、そのクラスのデストラクタが呼ばれてなかった

こんなコードありですか????
893仕様書無しさん:2006/12/20(水) 21:34:36
オブジェクトの生存期間は注意深く考えるものの一つだよ

永続するのはDBとみなせばよいし、
一時オブジェクトはauto_ptrなどで捨てればよい。

渡り歩く系のオブジェクトが一番分かりにくいね。

本当に渡り歩く必要があるのかチェックして、そうでなければ直す。
必要があるならば、うーん、後始末君を用意するとかしたほうがいいだろうね。
894仕様書無しさん:2006/12/21(木) 10:36:26
>>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ヵ月削ってソース解析しました。。
営業からクレームも飛ばし、その会社とはその仕事で完全に縁を切った。
896仕様書無しさん:2006/12/25(月) 10:13:39
char* syori1()
{
return( DTYOMI((KANSU282+GET3312)CHK501 )
}

みたいなのばっかし。もう、最悪だったよこれ・・・・
897仕様書無しさん:2006/12/25(月) 11:24:40
>>895
阿保みたいなコーディングの会社だな
898仕様書無しさん:2006/12/25(月) 18:21:31
処理を1行単位に細分化するとかポインタ演算に命を掛けてるような会社が居るからなあw
関数は最大でも50行以内にまとめてそれ以上は分割しろとかもうアホかと・・・
俺は場合によっては数千行単位の関数を作ってるけど、それでも共通処理とかは
かなり最適化されてるんだけどね。
特例処理まで含めてすべての処理を汎用レベルまで最適化するなんてかえって効率が悪いんだよ。
899仕様書無しさん:2006/12/25(月) 18:23:28
場合に寄っても数千行単位の関数はさすがに……。
900仕様書無しさん:2006/12/25(月) 18:26:14
4000行のBeanを見たとき。
ってかDB設計からやり直せと。。。
901仕様書無しさん:2006/12/25(月) 18:51:18
最適化?
902仕様書無しさん:2006/12/25(月) 19:34:18
>>898
数千行はいくらなんでも、駄目だろ…

共通処理以外にも関数を分ける意味は
いろいろとあるだろ。

たぶん、お前のコードもスレタイに該当してるぞ。

同僚の為にも、少し勉強する事を勧める。

903仕様書無しさん:2006/12/25(月) 19:38:40
>>898
はいはい、すごいすごい
904仕様書無しさん:2006/12/25(月) 19:46:00
>>902
前任者がロクに基本仕様も作ってない、実装だけでも3人月分の仕事を
1ヶ月でやってくれと言われた場合に、一連のロジックをいちいち
分けてられないだろ?
小分けすればするほど開発の手間もデバッグの手間も増大する。
905仕様書無しさん:2006/12/25(月) 19:47:17
あっそ
906仕様書無しさん:2006/12/25(月) 19:48:44
アホが張り付いてるなw
907仕様書無しさん:2006/12/25(月) 20:01:58
>特例処理まで含めてすべての処理を汎用レベルまで最適化するなんてかえって効率が悪いんだよ

禿堂
908仕様書無しさん:2006/12/25(月) 20:09:02
それは数千行の関数を作ってしまうことの言い訳にはなってないぞw
909仕様書無しさん:2006/12/25(月) 20:13:37
>>904の言いたいこと
仕事量が多すぎるから糞コードを作ってしまう
910仕様書無しさん:2006/12/25(月) 20:25:26
なるほど
911仕様書無しさん:2006/12/25(月) 20:34:50
printf("やらないか");
912仕様書無しさん:2006/12/25(月) 20:36:19
_tprintf(_TEXT("うほっ、いい男"));
913仕様書無しさん:2006/12/25(月) 20:39:15
System.out.println("ああ次はションベンだ");
914仕様書無しさん:2006/12/25(月) 20:48:45
暇そうだなオマイラ。
俺の仕事手伝えwww
915仕様書無しさん:2006/12/25(月) 20:49:12
>>898
特例処理?
916仕様書無しさん:2006/12/25(月) 20:50:09
暇じゃねぇよハゲフフフフフフフ
917仕様書無しさん:2006/12/25(月) 22:00:19
>>914
OK、わかった
とりあえずソースコードよこせ

Winny経由でいいからさ
918仕様書無しさん:2006/12/25(月) 23:23:35
前任者が作った引数15個の関数。。。項目が増えて18引数にしちまった。
他にもコピペのあらしのような修正がいっぱい。
こんな修正したくないけどリファクタリングは何度言っても上司の許可下りないし、
もうこんなソースのメンテいやだ(´;ω;`)
919仕様書無しさん:2006/12/25(月) 23:25:09
>908
数千行ならまだマシだろう。数千行「単位」だぜ。
サクっと数万行はいくだろよ。
920仕様書無しさん:2006/12/25(月) 23:50:26
派遣でいったんだけど、
すげーーーひどいソースの解析やらされるはめになった。
(C++で1クラス数千行くらいあるようなもん)
社員もひどいソースと認めている。(実際にソースを書いた人はもういないらしい)
でも、おいらが飲み会で、あのソースを見ていると頭が痛くなります
といったら、上司がむっとしたようだ。
むっとするくらいなら、はじめからひどいとか自分で言うなよ。
何だかんだいって部外者にひどいとは言われたくないんかね。
921仕様書無しさん:2006/12/25(月) 23:52:43
わざとヤケクソにならなきゃ、1関数で200行以上なんて無理だろ。
922仕様書無しさん:2006/12/25(月) 23:55:20
実はそのコード書いたのそのジョウ氏じゃね?
923仕様書無しさん:2006/12/25(月) 23:57:32
>>922
それは無いような気がするけど、
入ったばかりの俺に言われるのはムカつくらしい。
そんなソース押し付けられる俺の身にもなって欲しい
924仕様書無しさん:2006/12/26(火) 00:42:12
酷い状態を放置したのは管理者の責任だからなあ
925仕様書無しさん:2006/12/26(火) 00:50:07
だいぶ前に使われなくなったプログラムが今でもCVSに入ってると嫌になる
試験してたらそこだけ仕様が合わなくておかしいと思ったんだ・・・
926仕様書無しさん:2006/12/26(火) 00:50:17
俺、アセンブラのソースをぐちぐち言いながら解析してたら
後ろから常務が「昔かいたソースに文句言われてもな」
常務が昔書いたソースだった
あと、競合他社アプリこっそり愛用してたら
後ろから常務が「ふ〜ん」
あのときは、ちょっとびびったw
927仕様書無しさん:2006/12/26(火) 01:04:35
呪いみたいな常務だな
928仕様書無しさん:2006/12/26(火) 01:10:35
CVSで共通コンポーネントの最新ソース落としてきてコンパイル……通らねえ
エラーを見るとどうも新しく足したクラスのソースをコミットしてやがらねえぽ orz

まぁ滅茶苦茶影響範囲の広いコンポーネントだから最悪でも試験環境に持っていくときには
(移行チームからの怒号と共に)リポジトリに入るだろーが……はて、年内にコンパイル通るようになるんかな('A`)
929仕様書無しさん:2006/12/26(火) 01:22:03
Javaのソースで、普通にパッケージ内にあるクラスをnewするのにリフレクション
使いまくってるソース。

なんか依存性注入を誤った方向で使ってるような感じのコメントが、ある。
930仕様書無しさん:2006/12/26(火) 10:27:46
>>907
「特例処理」とか「汎用レベルまで最適化」とか
そういうわけの解らないものに、本当に同意すんのか?w
931仕様書無しさん:2006/12/26(火) 10:35:11
するよ?
なんでもかんでもバラバラにすりゃいいと思ってる奴らにはうんざりしてんだよ。

1関数で200行以上なんて無理だ?
そりゃお前、無理やり一行に詰めたり行間つめたりコメントゼロだったりしてんじゃねえの?

932仕様書無しさん:2006/12/26(火) 10:48:37
こうして似たり寄ったりのコピペ関数が増えていくわけですね。
933仕様書無しさん:2006/12/26(火) 11:04:56
1関数の行数が増える事とコピペが増える事は全然別問題だ、よく考えろボケ
934仕様書無しさん:2006/12/26(火) 11:29:37
>>933
要するに自演なのかもしれないが、
コピペばかりのコードにうんざりするのは、
関数化すれば整理できるものをベタベタ貼り付けてつくるから。
ビスマルクの格言を思い出す。
935仕様書無しさん:2006/12/26(火) 12:22:00
>934
なんでそのレスが>933あてになるのか全く理解できねえよ
>933を100回読み直せ
936仕様書無しさん:2006/12/26(火) 12:41:46
とりあえずおまいらが疲れてるのはよく解った
937仕様書無しさん:2006/12/26(火) 13:06:04
そんなに疲れているなら、肉まんにはカラシだけをヌリヌリしつつハフッハフッと食べるのがイイんじゃね?
938仕様書無しさん:2006/12/26(火) 13:18:26
カラシ苦手やねん
939仕様書無しさん:2006/12/26(火) 13:18:50
>>931
やっぱり、人の言葉の意味も理解しないまま同意する奴は
>なんでもかんでもバラバラにすりゃいいと思ってる
人の言葉の意味も理解しないまま反対するんだね。
恣意的なものなのか、俺様基準があるのかは知らんけど。
940仕様書無しさん:2006/12/26(火) 13:42:23
お前が>907で引用した文を理解できてないだけだろ?
941921:2006/12/26(火) 13:48:30
>>931
> 1関数で200行以上なんて無理だ?
> そりゃお前、無理やり一行に詰めたり行間つめたりコメントゼロだったりしてんじゃねえの?
他ならぬ君自身が「悔しいから一応言い返しておくけど、これはまず当たってないだろうな」と
考えてるのが丸わかりの、哀愁漂う切り返しをされても困るなぁ。

答はもちろん「そんなはずないじゃん」ですよ。
942仕様書無しさん:2006/12/26(火) 13:52:45
妄想するのは勝手だが、普通に仕事してれば「1関数で200行以上なんて無理」なんて
アホな考えは浮かばねえよw
ちょっと想像力があれば、自分の仕事の範囲でありえなかろうがそういうケースが
(糞コードでなくとも)いくらでもあるということぐらい分かりそうなもんだ。
943仕様書無しさん:2006/12/26(火) 14:01:16
>>942
それを言うなら、ちょっと想像力があれば
「無理やり一行に詰めたり行間つめたりコメントゼロだったり」することで
初めて到達できる短さなんぞを後ろ盾にして、こんな流れで書き込まないことくらい
分かりそうなもんだよ。

俺は「>>931はそれをわかっている」と思ったから>>941のように書いたんだけど、
これを「妄想」と呼ばれちゃうとなぁ。
>>931が本気でそんな馬鹿なケースを考えていた、という前提で書くべきだったということか。
でもそれ、ただの馬鹿だからw
944仕様書無しさん:2006/12/26(火) 14:03:46
マイ数千行関数の存在を匿名掲示板の面子に認めさせるために
そこまでがんばらなくてもいいのに
945仕様書無しさん:2006/12/26(火) 14:08:55
すくすく伸びる我が子の背丈のように感じてるんじゃねーの?
946仕様書無しさん:2006/12/26(火) 14:08:55
俺は921を本気で書いてた事に驚いたよw
947仕様書無しさん:2006/12/26(火) 14:10:02
>>946
それはかなりヤヴァイなw
948仕様書無しさん:2006/12/26(火) 14:11:44
まぁ>>898の本気度の前にはどの本気もひれ伏すだろw
949仕様書無しさん:2006/12/26(火) 14:13:14
>>940
理解できませんね。あの俺用語が解るなら解説して欲しいくらい。
950仕様書無しさん:2006/12/26(火) 14:15:29
まあここに>898がまだ居るかは知らんが俺は>907だよ

ま、細切れソースがいいと思うんならそれでもいいんじゃねーのw
俺はどんな場合にも無理やり細切れにして悦に浸るような
アホな真似はしないってだけだ。

>949
「特例」も「汎用」もごく一般的な日本語だが、なんで理解できないのか分からん
951仕様書無しさん:2006/12/26(火) 14:17:48
>>950
> どんな場合にも無理やり細切れにして悦に浸る
ここで急に、このスレの全員がはじめっから誰も反対したりしない
「当たり前のところ」まで引き戻すあたりがチキンでいいね。
952仕様書無しさん:2006/12/26(火) 14:20:50
「どんな場合にも無理やり細切れにして悦に浸るようなアホな真似はしない」って「だけ」なら
絶対ありえない意味不明の頑張りがログに残ってるけど、まあいいや。
953仕様書無しさん:2006/12/26(火) 14:23:12
そのあたり前の話にお前らが噛み付いてんだろうがよw
954仕様書無しさん:2006/12/26(火) 14:28:34
わかりやすく説明しとくか?

どんな場合=関数として括る処理がそれなりの長さになる場合
細切れ=200行は超えない

無理やり、では無いのかも知れんな。もうお前ら無意識で意味不明な分割やってそうだから。
悦に浸るってのは、それが正しいソースと思ってる今のお前らそのものだw

はじめっから誰も反対したりしない?当たり前のところ?
もう一回国語の勉強しなおせよ。
955仕様書無しさん:2006/12/26(火) 14:38:36
数千行は「それなりの長さ」ではないと思う
956仕様書無しさん:2006/12/26(火) 14:40:35
それは俺の発言じゃないしな
957仕様書無しさん:2006/12/26(火) 14:45:59
>>954
まるで意味がわからない(通らない)ので、もう一回。

あ、なんか色々思い込むことで成り立ってるスタンスなのは十分伝わってきたから、
そこらへんはもうそれ以上必死にならなくていい。
958仕様書無しさん:2006/12/26(火) 14:50:00
うん


自称わかりやすい説明が今までで一番意味不明w
959仕様書無しさん:2006/12/26(火) 14:55:03
どんな場合にも無理やり細切れにして悦に浸る

関数として括る処理がそれなりの長さになる場合でも
200行は超えないように細切れにしてそれが正しいと思い込む

954を繋げてやっただけだが、これならアホでも理解できるかね?
960仕様書無しさん:2006/12/26(火) 14:57:36
いったい誰が「越えないようにして」るんだろう。

やっぱり色々と思い込みが激しい。
961仕様書無しさん:2006/12/26(火) 14:58:54
・・・ここまでアホかw
962仕様書無しさん:2006/12/26(火) 15:00:14
「関数として括る処理がそれなりの長さになる」という判断の部分に
まるで疑いを持っていないのが面白い。

自分の言ってることが
「絶対正しい俺の判断と違っているから、こいつは間違えている」
という内容であると理解していないんだろうな。
963仕様書無しさん:2006/12/26(火) 15:03:28
だからそこで>950になるわけだよ。
細切れがいいと思うんならそれでもいいんじゃねーのw

なんか何度も同じ問答がループするコントみたいになってきたな。
アホの相手は疲れるわ。
964仕様書無しさん:2006/12/26(火) 15:05:20
あとはもう全部アホアホ言っておしまいになりそう。

思っていたほど上等じゃなかった持論を、それでも掲げ続けるための
最後の戦法だし。
965仕様書無しさん:2006/12/26(火) 15:14:53
上等な持論ってなんだよw
もともと俺は当たり前の話しかしてねえっつーの。
966仕様書無しさん:2006/12/26(火) 15:15:51
一気にスレが増えたと思ったら、年末厨が沸いていたのかwww
967仕様書無しさん:2006/12/26(火) 15:15:56
あほあほ
968仕様書無しさん:2006/12/26(火) 15:16:18
>>966
レスな。
969仕様書無しさん:2006/12/26(火) 15:16:47
スレタイ読めよお前ら
970仕様書無しさん:2006/12/26(火) 15:18:00
>>965
まぁ、自分ではそのつもりなんだろうってのは伝わってくるよ。
「もともと」はそうだったんだろうね。

「もともと」以外は、あまりにも妄想がひどすぎて当たり前どころの騒ぎじゃないけど。
971仕様書無しさん:2006/12/26(火) 15:22:19
はいはい、妄想妄想w
972仕様書無しさん:2006/12/26(火) 15:26:32
うん、妄想妄想w
973仕様書無しさん:2006/12/26(火) 15:29:23
妄想ってことで決着もついたし、まぁあれだ、お前ら関数はきちんと分けろってこった。
数千行とかになったら疑ってかかれ。いろいろと。
974仕様書無しさん:2006/12/26(火) 15:31:44
頑張って200行におさめろよ、お前らw
975仕様書無しさん:2006/12/26(火) 15:35:40
泣くなよw
976仕様書無しさん:2006/12/26(火) 15:39:58
いつもの仕事するだけだしな。
俺は俺の考える括りで関数作るだけだし。

何をさして妄想言われたのか知らんが、とりあえず200行を超える事がありえないと
思ってる連中がいる、というのは勉強になったよ。
今後無茶な分割してるコード見かけても、ああ、ここにも居るよ・・・って思えるからなw
977仕様書無しさん:2006/12/26(火) 15:41:45
よかった
数千行の関数なんて
なかったんだ
978仕様書無しさん:2006/12/26(火) 15:43:08
> 俺は俺の考える括りで関数作るだけだし。
くれぐれも周囲の人間をソースで、コメントで、口頭で、
納得させるという段取りを忘れるなよ。
このスレ見る限り、他人に自分の中にある物を説明する、というのが
お前は絶望的に下手糞だから。
979仕様書無しさん:2006/12/26(火) 15:49:29
自分の理解力の無さを人のせいにすんなよw
俺は最初から

>なんでもかんでもバラバラにすりゃいいと思ってる奴らにはうんざり

これしか言ってないのにw
980仕様書無しさん:2006/12/26(火) 15:51:59
>>977
さすがに4桁にいく事は無いな
200行は超えるけどなw
981仕様書無しさん:2006/12/26(火) 15:55:07
いやいや、それはお前の「もともと」の書き込みであって、
結局お前の一連の「コンテンツ」のメインだったのは、その
「なんでもかんでもバラバラにすりゃいいと思ってる奴ら」を「今ここで話してる相手」に
無理矢理あてはめて煽るというものだったから。

ソースも見ないうちから
「もうお前ら無意識で意味不明な分割やってそうだから。
悦に浸るってのは、それが正しいソースと思ってる今のお前らそのものだw」
なんて、どれだけ勝手に物を決めつけてるか、冷静になればわかりそうなもんだけどな。
982仕様書無しさん:2006/12/26(火) 16:00:54
×最初からこれしか言ってない
○最初だけこれを言っていた
983仕様書無しさん:2006/12/26(火) 16:02:51
このスレに紹介されそうなソース書いてるってことで
984仕様書無しさん:2006/12/26(火) 16:06:31
>981
すべての処理が200行におさまるのが当然、っつーところからの話だな。
そりゃここの誰もがそう思ってるわけでもないだろうよ。
そのへんは>942あたりが俺の考え。

>>982
アホか。会話してれば同じ言葉「だけ」言うわけねえだろ。
レスがくりゃそれに対応したことを書くっつーの。
でも根底にある意見はずっと変わらないしすべての書き込みは
それに基づいたものだって話だ。やっぱ理解力ねえな。
985966:2006/12/26(火) 16:06:59
>>968
スマ

スレが伸びた、と書いてから「増えた」に書き直したらちょっち足りなかったぽ
986仕様書無しさん:2006/12/26(火) 16:11:35
>>984
> そりゃここの誰もがそう思ってるわけでもないだろうよ。
じゃなくて、「ここの誰もそんなことは思ってない」が正解。
お前は仮想敵を作ってたんだよ。
987仕様書無しさん:2006/12/26(火) 16:12:47
>>984
返答になってないよ。

確認するけど、
「もうお前ら無意識で意味不明な分割やってそうだから。
悦に浸るってのは、それが正しいソースと思ってる今のお前らそのものだw」
これが妄想による煽りだってのは認めるのか?
988仕様書無しさん:2006/12/26(火) 16:15:39
すべての書き込みはそれに基づいたものだ


ワロタ
989仕様書無しさん:2006/12/26(火) 16:16:18
もう埋めるか
990仕様書無しさん:2006/12/26(火) 16:16:53
次スレ立ててみるか
991仕様書無しさん:2006/12/26(火) 16:22:05
願わくば、この流れが次スレまで持ち越されませんように
992仕様書無しさん:2006/12/26(火) 16:34:44
次スレ

この会社辞めようと思ったソースコード#15
http://pc8.2ch.net/test/read.cgi/prog/1167117526/l50
993仕様書無しさん:2006/12/26(火) 16:36:50
>986
>921がそうだと思っているし、>921を叩いたら総叩きにあったから、
とりあえずここで俺と会話してる奴はそう思ってると判断したわけだ。
それが>941含め単なる煽りで事実ではないなら俺が釣られただけだな。

>987
普通にやれば200行を超えない、と思ってるなら無意識で分割してるんだろ。
無意識でやってんならそれが正しいと思ってんじゃないのか?
妄想ねえ。書き込みから推測しただけだ。
必要以上に煽ってはいるが、妄想してるつもりは無いな。
上で述べたように誰もそんなこと思ってないってんなら俺が釣られただけ。
994仕様書無しさん:2006/12/26(火) 16:42:55
・釣られた
・つもりは無い

いいほうにいいほうに回り込んで終息って寸法でつねw
995仕様書無しさん:2006/12/26(火) 16:43:54
釣り宣言ならぬ釣られ宣言か。新しいな。
996仕様書無しさん:2006/12/26(火) 16:45:15
ちょっと冷静になって書き込めば煽られる。
これぞ2chだなw

言い直すわ。妄想なんかしてねえよボケw
997仕様書無しさん:2006/12/26(火) 16:52:42
今までが冷静じゃなかったのを認めたのは殊勝だけど、ちょっと解釈が違うかな。

×ちょっと冷静になって書き込めば煽られる
○何もかも自分の都合のいいように解釈してみせると突っ込みが入る
998仕様書無しさん:2006/12/26(火) 16:55:56
煽られたくて煽られるようなことを書くのか、
文章力がなくてそういう書き方になってしまうのか、
いずれにしろプログラマには向いていないと思われ。
999仕様書無しさん:2006/12/26(火) 16:57:52
↓最後に見苦しい捨て台詞をどうぞ
1000仕様書無しさん:2006/12/26(火) 16:58:25
それは違うね。
叩きやすい奴、煽りやすい奴を叩く、それが2ch。正論かどうかってあんまり関係無い。
解釈も糞も、>986の「そんな奴はいない」を信用してみただけだし。

煽られるようなことを書いても無いな。
当たり前の事を書いたら文盲に噛み付かれただけw
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。