スパゲッティプログラムの読み方

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
仕事で他の人が作ったソフトを任されることになったのですが、
スパゲッティプログラムなので読むのが非常に辛いです。
聞こうにもその人は会社辞めたし・・・
何かみなさんのコツのようなものはないでしょうか。
2デフォルトの名無しさん:2001/08/14(火) 00:41
フォークをうまく使う。
3デフォルトの名無しさん:2001/08/14(火) 00:43
スパゲッティプログラム自動整形プログラムって
どっかにないかね。
4デフォルトの名無しさん:2001/08/14(火) 00:45
if((pid = fork()) < 0) ...
5デフォルトの名無しさん:2001/08/14(火) 00:46
とりあえず indent コマンドをかけてみるとか。
俺流コーディングスタイルは治せる。
設計がひどいのはどうしようもないけど。
6デフォルトの名無しさん:2001/08/14(火) 01:24
スレタイトルが「スパゲティプログラムの書き方」に見えた。鬱だ・・・。
7デフォルトの名無しさん:2001/08/14(火) 01:29
>>1
読むな。
全部消してから書き直せ。
81:2001/08/14(火) 02:08
みなさん、レスありがとうございます。
みなさんもスパゲッティプログラムには苦労されているようですね。

>>5
おっしゃる通り設計が悪くて・・・
読んでも読んでも色々な条件が増えるだけ。

>>7
確かにその通りかもしれませんが、時間がないので(藁
9デフォルトの名無しさん:2001/08/14(火) 02:51
その辛さが快感に変わります。
その身をゆだねて快楽に身をまかせましょう。
10デフォルトの名無しさん:2001/08/14(火) 02:55
まー、丁寧に一本一本よりわけて整理するか、
まとめて飲み込むしかないような

関係ないところはまとめて飲み込んで済ましたいのこころ
11デフォルトの名無しさん:2001/08/14(火) 04:47
ファウラーのリファクタリング本を読みながら、体系立てて慎重に(=UnitTestとかもしながら)直す、
ってのが正しい答えなんだろうけど、そのファウラー本でも、
「設計が全然駄目な」奴は、捨てて作り直すしか無いぞと書かれていた(ぷ
やはり、菩薩のようになんでも救済ってのは無理だな。
12デフォルトの名無しさん:2001/08/14(火) 05:02
goto label;
みたいのがたくさんあるんですか?
エディタの検索コマンドを駆使するといいかも。
13デフォルトの名無しさん:2001/08/14(火) 05:08
厨ですまん。
スパゲッティプログラムってなに?
14デフォルトの名無しさん:2001/08/14(火) 05:21
>>13

スパゲティコード=
スパゲティのように、(主にgotoなどで)ぐちゃぐちゃになって、
何をしているのか、ロジックがさっぱり分からないプログラムのこと。




または、オレの書いたコードのこと(藁
15デフォルトの名無しさん:2001/08/14(火) 06:02
わざとスパゲッティにして配布するって手があるよ
16デフォルトの名無しさん:2001/08/14(火) 08:27
クラス?モデル?何それ?
っていうコードを見ると眩暈がするねえ・・・
17デフォルトの名無しさん:2001/08/14(火) 09:30
とりあえず、コメント追加してくところから始めたら?
18デフォルトの名無しさん:2001/08/14(火) 10:49
>>14
gotoくらいなら大したことはない。関数内にしか飛ばないから。
グローバルなフラグでぐちゃぐちゃ飛んでくやつは始末におえん。
19デフォルトの名無しさん:2001/08/14(火) 11:04
longjumpのこと?
20デフォルトの名無しさん:2001/08/14(火) 13:53
>>15
わざとスパゲティにするフィルタが掛かってるソース渡されて、
移植してくれって仕事やったことあるよ
21デフォルトの名無しさん:2001/08/14(火) 19:00
>>18-19
要するに、ワケのわからない再帰を行っているプログラムだと思ワレ
22デフォルトの名無しさん:2001/08/14(火) 19:38
>>21
それは>>18-19の逝ってることとは違うんじゃ…
2321:2001/08/14(火) 21:12
そーか?
例えば、こんなコードはどうだ?

void Funk1()
{
<略>
Funk2();
<略>
}

void Funk2()
{
<略>
if(Chk())Funk3();
else Funk4();
<略>
}

void Funk3()
{
<略>
Funk1();
<略>
}

void Funk4()
{
<略>
Funk2();
<略>
}
24デフォルトの名無しさん:2001/08/15(水) 00:43
GOTO使うのってアセンブラくらいだと思ってたけど、
Cとかでも使う人いるの???
25デフォルトの名無しさん:2001/08/15(水) 06:51
>>24
GOTOをCで見たことのないあなたは運がいい、と思う。
26デフォルトの名無しさん:2001/08/15(水) 08:21
gotoを使った方がソースが短くなる場合は使う。
関数内にreturnやbreakステートメントが多い場合は、素直に
gotoを使った方が可読性に優れる。
じっくり考えればどちらも回避出来るが、その時間が無いなら、
1関数を1ページ以内にプリント出来る事を厳守すべき。
longjmpはやっぱりX。
27デフォルトの名無しさん:2001/08/15(水) 08:39
>26
ANSIはc++に行番号を導入する事を決めたらしい。
目的の一つにgotoを使い易くすることが挙げられる。
http://www.reuters.com/news_article.jhtml?type=sciencenews&StoryID=157548
28デフォルトの名無しさん:2001/08/15(水) 09:24
これでモジュール化がいっそう進み、
共同開発が楽になるね。
>27
29デフォルトの名無しさん:2001/08/15(水) 11:14
C++もやっとCOBOL並みに実用言語なってきたね>>27
30デフォルトの名無しさん:2001/08/15(水) 11:58
>>25
運がいいっていうか仕事とかに使ったことない(学校でやっただけ)ので
他人のソース見る機会なかったもんで・・・。
うちの大学の先生はアセンブラじゃないだから使うなみたいなことを
いってたような。
31デフォルトの名無しさん:2001/08/15(水) 12:31
>>27
へぇ、ロイターがこんな記事を。それだけ皆に注目されているということか。
32デフォルトの名無しさん:2001/08/15(水) 12:56
>>30 学習方針としてはgoto使うなというのは正しい。
出題がfor/while/do/switchで解決できる範囲なのでしょう。

実務上は、必要な場合にgotoを使うのは正しい。
二重ループの脱出やエラー検出時に、gotoを使うのを嫌って
フラグ変数を使って制御しようとするのは愚かです。
33デフォルトの名無しさん:2001/08/15(水) 13:36
>>27
ネットのおかげで最新情報が手に入るな。これだから2CHからは目が離せん。
いくつかの翻訳ソフトで訳してみたが、この分野の翻訳がまともに出来るソフトは未だ少ないな。見当違いな医学用語に訳されたりして苦労したよ。

"I don't want to put too much of a damper on this but I think one has to be realistic about this. This is work at a very early stage," Dr. Carsten Korth told BBC radio.
Korth博士は言いました。英国放送協会に。「行番号の採用だけで浮かれてはいけない。これはまだ序の口だ。」

In a study appearing in the Proceedings of the National Academy of Science, the California university researchers reported finding drugs effective in treating mouse cells infected with prions.
加州大学の研究者はは報告しました。まもなく発行される米科学学会の予稿集に。ネズミでもコードが書けるようになる画期的な方法の発見を。

半日もたてば、impressあたりのページで全文訳が掲載されるか
34デフォルトの名無しさん:2001/08/15(水) 13:57
すごいニュースだけど、よそでは騒いでないな。
まともなやつはお盆で帰省中か?
35デフォルトの名無しさん:2001/08/15(水) 14:17
>34
掲示板に入り浸ってる場合じゃないぞ。
ジャスダックを見てみろ。
36デフォルトの名無しさん:2001/08/15(水) 14:20
ラベルに数字が使えるのがそんなにうれしいか?
37デフォルトの名無しさん:2001/08/15(水) 14:35
>>36
アホ
38デフォルトの名無しさん:2001/08/15(水) 14:38
>36
ラベルが無くても、どこにでも飛べる。
これでプログラマは翼を得た。
39デフォルトの名無しさん:2001/08/15(水) 14:59
BASIC経験ないから分からんです。
行番号ってそんなに便利なの?>ALL
40デフォルトの名無しさん:2001/08/15(水) 15:02
>>27
ANSIがC++に行番号を導入するのか...
ちょっと信じられんが、ロイターなら信じざるを得ないな。
gotoが使い易くなるのもまあ嬉しいが、それよりもgosubを
実装してくれた方がより実戦的だ。
関数が乱立しているソースは読み辛くていかん。
gosubが有ればmain()1個でプログラムが出来て美しい。
41デフォルトの名無しさん:2001/08/15(水) 15:02
>>39
>>27のリンク先を読んでからじっくり考えてみろ。
君にもすぐわかるよ。
42デフォルトの名無しさん:2001/08/15(水) 15:02
>>38
おいおい。自分でお買い上げの商品をよく見ろよ。
「自分の足を撃てる拳銃」を手に入れただけだろ。

どこにでも飛べることは、「殆ど」メリットにならんぞ。
43デフォルトの名無しさん:2001/08/15(水) 15:12
.NETは行番号に対応するため、リリースが遅れるらしい。
ttp://mlcrosoft.com/developer/news?topic=linenumber&fake
44名無しさん:2001/08/15(水) 15:21
英語わからんですたい
45デフォルトの名無しさん:2001/08/15(水) 15:26
>42
そのとおり。
今後、C++に標準化された行番号をどう活用するかが課題だな。
その点に関しては、>>27の記事にも関係者の警告が出ている。
一つの解決策が40の言ってたgosubではないかな?
>44
33に部分訳が出ている。全貌は未だわからんが。
46デフォルトの名無しさん:2001/08/15(水) 15:33
on_error_gosub は無いのか?
例外機構は冗長になっていかん。
47デフォルトの名無しさん:2001/08/15(水) 15:40
壮大なネタスレ???
48デフォルトの名無しさん:2001/08/15(水) 15:46
>>43
アクセスが集中しているらしい。重くて見れない。
見れたひと、情報きぼん。
urlの最後のあたりにmlcrosoftの良心がうかがえるな。
49名無しさん:2001/08/15(水) 15:57
.NETいくらぐらいになんだろ?
アカデミックあんのかな?
50デフォルトの名無しさん:2001/08/15(水) 16:10
>>49
行番号が実装されても、値段はそれほど上がらないと思う。
bcbやdelphiの行番号対応が遅れれば、足元を見られて値上げ
される可能性は有るが...
>>48
43のは、アクセス集中でサーバが落ちたみたいだ。
今のところ、>>27のロイター報道が唯一の情報だな。

しかし、特殊な専門用語を使っているから読むのに骨がおれる。
"Mad Cow"というのは、行番号が無くてgotoが普及しないc++の
現状を、狂った牛が柵の中に閉じ込められて暴れる様子に例えた
ものだ。
こんなフレーズは、市販ソフトでの翻訳は無理だな。
51七氏:2001/08/15(水) 16:12
52デフォルトの名無しさん:2001/08/15(水) 16:16
>>50
そうなんだ。"Mad Cow"って、てっきり「狂牛病」のことかと・・・
53デフォルトの名無しさん:2001/08/15(水) 16:56
>>27のサーバ復旧したみたい。あいかわらず激重だが。
その内容だが、行の途中への分岐も可能になるそうだ。
これはドキュメント性を損なう改悪ではないかと一瞬思ったが、大きな間違いだった。この仕様は「一行プログラム」を実現するための布石だったのだ。
ベーシックマガジンでC一行プログラムに打ち興じた時代が走馬灯のようによみがえる。
しかも時代は32bit。一行に1600万文字も書ける。>>40の言ってたmain()1個だけのプログラムが、なんと一行で実現する。
夢のような世界。
コンパイラのリリースが遅れるそうだが、もうじっとしていられない。今から仕掛りソースの書直しだ。
5453:2001/08/15(水) 17:01
>53
興奮して改行わすれた。

俺はプログラム一行化のため、しばらくここには来れない。
みんな元気でな。
55デフォルトの名無しさん:2001/08/15(水) 17:13
>>27-50(一部除く?)
おまえら暇すぎ。
5655:2001/08/15(水) 17:20
>>27のリンク先読んでるうちに>>53-54が・・・
俺も暇かも(w
57デフォルトの名無しさん:2001/08/15(水) 17:31
>>45
関係者の警告を自動翻訳してみました。

>"I don't want to promise them a cure or even a treatment since we don't have any experience of
> how these programs will...act in a clinical coding," Korth said.
> Korthは言った。私は、極限に記述されたプログラムがどう振る舞うであろうか、
>全く経験したことがないため、この行番号が必ずしも有効な記述であると約束する
>ことはできない。

>But Korth said the question was would he try the treatment if
> he had the disease with no known cure. His answer was "yes."
> しかし、Korthは言った、彼がもし有効なコーディング方を知らずにいた
>として、行番号化を試みたいと言ったとしたら、その答えはYesである。

 これによれば、行番号は常に最上の手段ではないが、他の手段(gosub、
ラベル等)と並ぶべき手段であると言えることは間違いなさそうです。
58デフォルトの名無しさん:2001/08/15(水) 17:35
お盆の今、ライバルに差をつけるチャンスかも知れん。
俺もやってみるか。
ところで、一行プログラムで#defineは使えるのか?
53よ。たまには帰ってきて教えてくれ。
59デフォルトの名無しさん:2001/08/15(水) 17:37
>>57
やっぱりメインフレームの翻訳ソフトにはかなわん。
ちゃんと意味が通ってるじゃないの。
60デフォルトの名無しさん:2001/08/15(水) 17:47
6153:2001/08/15(水) 18:34
53だ。
みんな元気そうでなによりだ。一行化は始めは大変だったがだいぶ慣れた。
今、23関数をmain()に統合した所だが、エディタが32bit/lineに対応して
いるかどうかをサポートに問合わせたら、即答出来ないというので一休みだ。
心地よい疲労感が全身をつつむ。
サポートは「何に使うの?」なんて不審がってた。例の発表を未だ知らない
らしい。もちろん教えなかったよ。しめしめ。笑いがとまらん。
>>57
Kurthは謙虚だな。もっとも、k&r以上の名誉を約束された勝者の余裕か。
>>58
一行化の真の価値を理解しておらんな。
すべてのソースが一行になるのに、何で#defineが必要なのだ?
やる前からあれこれ心配せずに、コーディング有るのみだ。
検索/置換なんて一発だ。
なにしろ一行しか無いんだからな。
>>60
すまんな。英語よ読むのはもうつかれた。
62デフォルトの名無しさん:2001/08/15(水) 18:52
将来プログラマになりたいのですが
頭が構造化に慣れきっており
gotoを駆使したプログラムを書けるか不安です。

どうやって勉強したらいいですか?
63デフォルトの名無しさん:2001/08/15(水) 19:51
>>62
お若いのにご立派ですね。
さて、お問合せの件ですが、
かつてはgotoの達人は珍しくなかったですが、今は昔ですね。
知り合いに55歳以上のプログラマが居たら聞いてみて下さい。
でも結局はあなたのやる気次第だと思います。
実は私も始めたばかりで、手始めにswitch文をgotoに変換して
いるところです。これならとっつきやすいでしょう?
それでも不安なら、gotoをペアで使って元の場所に戻るという
裏技もあります。なるべく離れたところに使えば、時空を越える
かのようなgotoの魅力を堪能出来るでしょう。
これからは、あなた方の若い力が奔放にgotoを駆使する時代なのです。
21世紀なのですから。
64デフォルトの名無しさん:2001/08/15(水) 20:19
時代が変わっていく。音とも振動ともつかない地響きを立てて。
魔女狩りのようなgoto撲滅の嵐は、今は影も無い。
予想出来なかった訳ではない。
cそしてc++の規格が変わるたび、静かに、しかし着実にgotoの
機能が強化されていたのは知っていた。
そして、それを見て見ぬ振りをしてきた俺。
まさかこんなに早くgotoの時代が...
今回のうねりを乗り切ることが出来るのか、俺は。
65デフォルトの名無しさん:2001/08/15(水) 20:21
終戦に日に発表されるなんて。
彼等はパールハーバーを覚えていたんだ。
66デフォルトの名無しさん:2001/08/15(水) 20:37
このスレッドを上げてはいけない。
少しでも長くこのムーヴメントを世間から隠蔽するのだ。
今となっては、俺たちに残された最後の抵抗手段だ。
67デフォルトの名無しさん:2001/08/15(水) 20:43
そろそろ、Cマガあたりがgotoの特集組んだりするのか。
楽しいような、怖いような・・・
68デフォルトの名無しさん:2001/08/15(水) 20:50
>>66
そうだな。
微力ながら協力しよう。
俺は2倍下げるぞ。
69デフォルトの名無しさん:2001/08/15(水) 20:55
Cマガは既に特集を組んでたはずだ。
5月号か6月号だったと思う。
その時は気にも留めなかったが、こういう事だったとは。
よし、おれは2バイト下げるぞ。
70デフォルトの名無しさん:2001/08/15(水) 21:03
あの、理解できないんですが
どうしてGOTOが見直されてるんですか?

あまり安易に使いすぎると、やはり可読性に欠けるとおもうのですが。
71デフォルトの名無しさん:2001/08/15(水) 21:15
>>70
あなたはGoto使った時ありませんね?
例えば、Whileなどの場合、
while(xxxx)
ですが、
Gotoの場合
xxx:

xxxxxxxxxxxx

if(xxxx)goto xxx;

いいじゃないですか・・・
最高です。

これから時代はGotoです。
オブジェクト指向?
それよりGotoです。
72デフォルトの名無しさん:2001/08/15(水) 21:23
>>70
>>27あたりからの流れを追いましょう。
73デフォルトの名無しさん:2001/08/15(水) 21:24
xxx:

    xxxxxxxxxxxx

if(xxxx)goto xxx;

>>71せめてループの内側は字下げして戴きたいですね。
わたしも構造化プログラミングが染み付いてしまったので。
7471:2001/08/15(水) 21:32
>>73
タブ入れてたからインデント無くなっちゃった・・・
75デフォルトの名無しさん:2001/08/15(水) 22:04
これって、ようするに LineSpace パターンだよね。
76デフォルトの名無しさん:2001/08/15(水) 23:11
>>71
私も後藤派だったのですが、先日OO派に鞍替えしました。

オブジェクト指向言語である C++ も才能ある人間が使うと、

- ぐちゃぐちゃに拡張され入り組んだ仮想関数
- 例外の嵐

で非常に美しいコードをかけることが分かったからです。goto + setjmp
を超えるのでは?




……頼む。このコードを捨てて、一から書き直させてくれ。
77デフォルトの名無しさん:2001/08/15(水) 23:30
>>76
Javaでそういうのを見たことがあるよ
コンストラクタで自分自身の仮想関数バンバン呼びまくってすごいことになってたよ
OO最高ですよ
7853:2001/08/15(水) 23:31
よし、1本終わった。
しかし32bit/lineとは想像を絶する空間だな。まだまだ入るぞ。
早くもtipsを発見した。フォントをterminalの4ポイントにすれば広範囲を
見渡せて能率が上がった。VSは3ポイント以下を選択出来んな。
vectorフォントなら0.1ポイントまで可能なはずだが。明朝また問合わせよう。
しかし、スクリーンエディタでは無駄が多いな。Edlinまだ持ってたかな?
>>71-74
インデントの概念は一行プログラムにはそぐわん。
>>75
俺の友人がLifeSpiceというアフリカ音楽バンドをやっていたが、改名した。
>>76-77
一から書き直せ。一行でな。

じゃあ寝る。しっかり下げておくように。
79デフォルトの名無しさん:2001/08/15(水) 23:37
>>78
sageる気ないだろう。
8026だが:2001/08/16(木) 00:37
娘とバナナワニ園へ行ってる間に、こんな事になっていたのか。
この業界は盆暮れ無しだな。>>26-71
今朝は誇りを持って1関数1ページを主張した俺だが、素直に認めよう。

1プロジェクト1行には負けた。 >>53

今にして思えば、これまでのソースコードに何と空白の多い事よ。
学校や趣味ならこれでも良いが、こんな無駄使いをしているようでは
ISO14000は取れない。奴らは捕鯨禁止などを主張する一方で、密かに
実の有る事も進めていたのだ。今日は終戦の日だ。
81デフォルトの名無しさん:2001/08/16(木) 00:48
あと問題はコメントだな。
俺は常々コメントなぞ不必要なものだと考えていたんだが
これについて意見はないだろうか?
8226だが:2001/08/16(木) 00:53
>80
終戦の日は昨日だ。光陰矢の如し。
>81
このテクノロジをもってすればコメントはもはや不要だ。
ANSIではコメントを.hにする事を推奨しているが、これも
過渡的な対応に思える。近い将来、コメントは.dllとして
柔軟に結合されるというのが大方の声だ。
83通りすがりのものだが:2001/08/16(木) 01:07
一行プログラムと聞いちゃあ、黙っていられねぇ。
81はコメントの心配をしているようだが、確かにCでは課題が多かった。
しかし、C++になった今、悪い事ばかりではないぞ。
行頭にダブルスラッシュを置いてみろ。あらゆる問題が解決出来る。
84デフォルトの名無しさん:2001/08/16(木) 01:16
C++をつまみ食いしてthrowを使うとか。
85◆dElPHlKo:2001/08/16(木) 10:52
Delphiにもgotoあったような。
よし今日からオレもバシバシ使うぜ!!
86デフォルトの名無しさん:2001/08/16(木) 11:21
遅レスだけど。
>>36-38
36の言ってるのはFORTRANの行番号のことだと思う。
87デフォルトの名無しさん:2001/08/16(木) 11:21
行番号への対応はどこも苦労してるな。
delphiは新バージョン出たとたんにANSI規格変更で気の毒だ。
tp://www.borland.com/delphi/news/LINENUMBER
88デフォルトの名無しさん:2001/08/16(木) 11:25
>86
FORTRANも分岐先は明示的なラベルが必要ではなかったか?
20年前の記憶なのでうろ覚えだが。
89デフォルトの名無しさん:2001/08/16(木) 11:46
>>87
 DLLとして結合された関数の中にgotoするための「DLLブラウザ」が
professional以上にしか搭載されないのはナメてるな。
 結局金出して買わないといかんのか?
90デフォルトの名無しさん:2001/08/16(木) 11:57
心配はもっともだが、安心しろ。
DLLブラウザは、互換性を維持するための、むしろ特殊な方法だとおもわれ。
これからは、DLLのソースもまとめて行番号をふり直すのが正攻法だ。
関数ごとの行番号では一貫性が無くなり、行番号採用の効果が半減するからな。
最初は面倒に感じるかも知れんが、すべてのDLLの中身を理解する近道だ。
91デフォルトの名無しさん:2001/08/16(木) 12:04
スパゲティーコードってなんですか。教えてください。
92デフォルトの名無しさん:2001/08/16(木) 12:05
このスレは壮大なネタスレですか?
それともコードの追いすぎで壊れた人たちの集まりですか?
9363でございます:2001/08/16(木) 12:14
>91-92
やあ、またお若い方たちがお見えですね。
驚くのも無理はありません。
なにをかくそう、わたくしも最初は戸惑いました。
行番号の採用だけなら驚きませんが、行の途中への
分岐も可能になるんですからね。行番号x桁番号で、
アクロバティックなコーディングが思いのままです。
でも、自由は往々にして堕落をもたらします。
堕落を阻止出来るのはあなた方の若い力なのです。
21世紀なのですから。
9471:2001/08/16(木) 12:30
>>90
Parl などのScript系も対応するのかな?

さすがにParlは対応すると思うけど(対応が速いから)、他はどうなんだろ?

あと、Java も近々対応させるって。

http://java.san.com/features/?topic=javatech&id=line_num

なんかやっと goto にちゃんとした定義ができたね。
95デフォルトの名無しさん:2001/08/16(木) 12:47
... 自作自演、楽しい?

ほとんどすべての URL は嘘。または関係のない英文サイトへのリンク。
英語読めない馬鹿向けに翻訳結果をならべて煙に巻いているんだろうが。

どうせやるならひとつくらい、内容でっち上げた英文サイトをおいとけば?
96デフォルトの名無しさん:2001/08/16(木) 12:51
>>95
わかってないなぁ・・・

>... 自作自演、楽しい?
わかってないなぁ・・・

>ほとんどすべての URL は嘘。または関係のない英文サイトへのリンク。
わかってないなぁ・・・

>英語読めない馬鹿向けに翻訳結果をならべて煙に巻いているんだろうが。
わかってないなぁ・・・

>どうせやるならひとつくらい、内容でっち上げた英文サイトをおいとけば?
わかってないなぁ・・・
97デフォルトの名無しさん:2001/08/16(木) 12:55
>>96
違う。
わかってないのはお前だ。

>>95はわかってないわけではない。
わかっててあえて、あのような行動に出ているのである。
なんでそんなことするかって?

>>95は北朝鮮のスパイだからだ。
日本においてgoto復権が達成される事への危機感を深めた北朝鮮が
妨害工作を始めたのだ。
9896:2001/08/16(木) 12:59
しまった・・・

どうも変な文章を書いたと思ったら、
北朝鮮のスパイにマインドコントロールされてたのか!

くそっ 不覚だった・・・
9926だが:2001/08/16(木) 13:29
日テレの津田梅子物語を見ていた。
分野は違えども真の開拓者の姿には共通点が有る。
さすがのDr.Korth(>>27)も、自らの革新に対する風当たりの強さには
戸惑っている事だろう。時代が変化する時はいつもこうだ。>>27-71
>>53のように果敢に前進する者、
>>63のように老獪に身をゆだねる者、
>>64(95)のようにうろたえる者..
誰が勝者となるかは今は解らない。
彼等を非難することを咎めはしない。
それが自分自身への精神の叫びであることを自覚しているのならば。
100デフォルトの名無しさん:2001/08/16(木) 13:36
うましかじゃん
10126だが:2001/08/16(木) 13:45
みやみに上げてはいけない。
たとえそれが、霧番取得の魔力に負けた結果であっても。
どんな小人にも、決して侵されざる尊厳があるのだから。
102デフォルトの名無しさん:2001/08/16(木) 13:52
>>101
つまり下げるときは全角でってことッスね?
103デフォルトの名無しさん:2001/08/16(木) 14:15
人間は思想を隠すためでなく、思想を持ってない事を隠すために語ることを覚えた。
−キルケゴール−
104デフォルトの名無しさん:2001/08/16(木) 14:28
>>57が原文をいじくった時点で、英語分かんなくても気づくと思うんだがどうよ?
105デフォルトの名無しさん:2001/08/16(木) 14:38
文章は引用された時点で作者の意思から開放される。
ただし、この事を学校では教えない。
10626=53=63=64(!95):2001/08/16(木) 14:44
このスレッドは使命を果たした。
いつかどこかで、また会おう。
107デフォルトの名無しさん:2001/08/16(木) 14:52
>>26>>53>>63>>64>>!95
スパゲッティプログラムの読み方はどうでもよくなったのか?
10862とか97とか:2001/08/16(木) 14:58
>>104
>>57まで逝かなくても>>27の話が胡散臭いし、英語わかんなくても
リンク先にもC++やANSIって単語がないことから気づくと思うんだがどうよ?

>>106
あんた結構いい線逝ってると思うよ。
10986:2001/08/16(木) 15:05
>>88
任意の行にラベルを振ることができて、そこへGOTOできるんだけど、
そのラベルが数字しか許されてない(行番号=ラベルとなる)のがFORTRANじゃなかった?
110デフォルトの名無しさん:2001/08/16(木) 15:16
Rubiy-talk で紛糾してたよ。
Rubiyの行番号を Fixnum のサブクラスとするか Continuation のリテラル表現とするかで
意見が割れてるみたい。すべてがオブジェクトというのも厄介ですな。
111デフォルトの名無しさん:2001/08/16(木) 15:17
既に行番号と呼ぶにふさわしくないと思われ
112デフォルトの名無しさん:2001/08/16(木) 15:22
ていうか狂牛病病原プリオンの話題を行番号ネタとして紹介した>>27のセンスに脱帽だなコリャコリャ
113デフォルトの名無しさん:2001/08/16(木) 15:50
>>112
センスがあるとは思わないが....

つまらなかったし。
114デフォルトの名無しさん:2001/08/16(木) 15:53
...
↑これ使ってる人って少数派だよね。
最近>>95>>113しか見てないよ…。
115デフォルトの名無しさん:2001/08/16(木) 15:57
確かに・・・とか…はあるけど...は見ないな
116デフォルトの名無しさん:2001/08/16(木) 16:19
そうか?

プログラム技術板だけでも数人いるようだが?
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=995694473&st=93&to=93&nofirst=true
にもいるし...
117デフォルトの名無しさん:2001/08/16(木) 17:02
ふふ
118デフォルトの名無しさん:2001/08/16(木) 17:16
他にも味の有るのが居たのに、26と共に去りぬ か。
じゃ、おれもそろそろ行くわ。
みんな体にだけは気をつけろよ。
119デフォルトの名無しさん:2001/08/16(木) 22:54
120デフォルトの名無しさん:2001/08/17(金) 21:07
まぁ、スパゲッティでも何でも最終的に動けば良いさ。
綺麗なソースが安全で早いってわけでも無いし、逆もまた然り。
ってそれ言っちゃお終いなんだが。
しかもスレの主旨とずれてそうだし。
121デフォルトの名無しさん:2001/08/17(金) 21:09
>>120
ってかずれてます。
122デフォルトの名無しさん:2001/08/18(土) 14:12
絡まった釣り糸をほぐすには
一つ一つ丁寧に分けるか
燃やして滅して忘れ去るのどちらかしかない。
123デフォルトの名無しさん:2001/08/20(月) 10:57
スパゲテイの問題点はその可読性よりも、仕様変更の難しさにある。
スパゲテイはちょっとした変更しようとも、その解が得られない場合が多い。
逆に、無理やり解を見つける作業の繰り返しが、大規模なスパゲテイを生成しているとも言え、
些細なスパゲテイから将来の大混乱へ派生することがあることを常に考慮すべきだ。
124デフォルトの名無しさん:2001/08/20(月) 14:23
>>122-123
というわけで、リファクタリングの本には、絡まった結び目を
どうほどけばよいか?が、一つ一つ詳細に説明されてるってわけだ。
125デフォルトの名無しさん:2001/08/22(水) 12:52
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=984182993

これらはスパゲティですか??
126「人のバグ見て、わがバグなおせ」:01/09/01 01:48 ID:N2P03Y3g
Excelにコードを貼り付けて、付箋とかでメモをガンガンつけて、
ハイパーリンクで関数の呼び出しを表現して、2,3人でレビュー
する。どうせいない人だから、むちゃくちゃ悪口言って、笑いながら
なおす。
ひとりでやるともっとスパゲティになるのでご注意を。
127デフォルトの名無しさん:01/09/02 00:23 ID:aFbnRb8I
>126
Excel貼り付けに一票。
どうせ、紙にプリントアウトしなきゃ前に進まんだろうから。
1.複数列印刷(カット&ペーストは自力で) や
2.長い列だけ縮小(一行300文字なんてのがあるだろう?改行すると行数が変わるし。)
が出来るだけで地獄にホトケ。
128デフォルトの名無しさん:01/09/02 00:27 ID:IRVzVOpk
>126-127
tabを使ってると厄介だな。
vsは設定でtabとspaceを切り替えられるが、
既に書かれたtabをspaceXnに置換する簡単な方法は有る?
129デフォルトの名無しさん:01/09/02 00:43 ID:LluL/RIY
>>127
後、EXCELにペーストした後に欲しい機能
1.色分け
 カラーレーザーがこれだけ普及しているのに白黒印刷はむなしい。
 セル内の文字列を選択してプロパティイ変更は出来るが、一発で
 置換出来るコマンドが無い。よね?
2.関数の区切りで改ページできるプロポーショナル行間設定
130デフォルトの名無しさん:01/09/02 01:07 ID:xicbm3Eg
カラー印刷か。良さ気げだな。
VisualStudioのソースを印刷するとカラーになるのか?
単独キーワードや、中・小カッコの対応を色分けしてくれる
エディタって有る?
131デフォルトの名無しさん:01/09/02 03:47 ID:3bXnTTWA
誰かの言葉で「動いているプログラムは全て美しい」というのがあったが
あれはウソなのか?
132デフォルトの名無しさん:01/09/04 14:09 ID:36bZ5Kfo
そりゃ動いていること自体は美しいが、こっちは汚い中身をいじくる方な訳で。

美しいアヒルでも水の下では一所懸命足をバタバタ……って話があったっけ。違うか。
133デフォルトの名無しさん:01/09/04 14:48 ID:y/VspVw.
>>131
生きている人間はすべて美しい、と同じぐらいにはウソ。
134デフォルトの名無しさん:01/09/05 13:17 ID:dcMqU0JI
まあなんだかんだ言ってもgoto文がそこかしこに出てくるプログラムはイヤだけど、かといってgoto文を使わないとまともなプログラムを書けないってのには同意せざるを得ないね。

一番困るのがブロックを途中抜けする場合。
C++やVBは曲がりなりにもブロックを途中抜けする文があることはあるけど、Delphiにはないからその場合はイヤでもgoto文を使わざるを得ない。
たとえばこのようにね。

procedure Hogehoge;
label
ProcedureExit;
begin
なんたらかんたら
if なんたらかんたら then
begin
 なんたらかんたら
 goto ProcedureExit;
else
 なんたらかんたら
end;
なんたらかんたら
ProcedureExit:
end;
135デフォルトの名無しさん:01/09/05 13:32 ID:jBt/U5BQ
>>134
CやBasicやPascalがへぼいというだけのような気が。
制御構造くらい自作できないと他の奴等に上を行かれてしまうぞ。
136デフォルトの名無しさん:01/09/05 13:38 ID:s.cf87tE
gotoはよく問題になるけれど、
プログラムスイッチ的なフラグも goto と同じぐらい害悪だと思う。
必要な時には使うべきなのも同じだが。
フラグは設定する箇所と参照する箇所がどこにでも置けるのがガン。
フラグで分岐するときに、そのフラグをどこで設定しているかを、
フローを辿らないと把握できないのは非常に困る。

実体的な状態を表すフラグだったら、
設定箇所、参照箇所で独立して読めるからいいんだけどね。
137デフォルトの名無しさん:01/09/06 16:57 ID:0OgeC6l2
gotoにnewをからめてつかうと
おいしい素パゲティのいっちょ出来上がり
138134:01/09/06 19:38 ID:2b2j3zrU
>>135
スマソ。調べてみたらDelphiでもExit文やBreak文でブロックを途中抜けできるんだった。
でもgoto文はやっぱり使わないに越したことはないわな。
かといって意地でもgoto文を使わなかったために見づらくなるのも困るが。
>>128

tr使え。
あれ?
141デフォルトの名無しさん:01/09/19 19:38
じゃあ、みんなで関数型言語に移行ってことでファイナルアンサー?
142結論:01/09/22 20:32
つまり、最良のスパゲッチープログラムへの対処法は。
こいつらの意見など聞かず、自分で仕様書を読んで1からプログラムを作り直せと
言う事だ。
オリーブ油かけて丁寧にほぐせ。
バターの方が好きだな、マーガリンでも可。
145デフォルトの名無しさん:01/11/19 22:52
フラグ害悪論に一票
>>142
激同。
しかしそれをやると給料が仕事量に見合わなくなる諸刃の剣・・・。
素人にはオススメできない。
>>134

try使え。
スパゲッティプログラム自動整形ツールならつくれそうじゃない?
他人に読まれたくないプログラムは…
149Kusakabe Youichi:01/12/04 01:24
In article >>148, 148 デフォルトの名無しさん wrote:

> スパゲッティプログラム自動整形ツールならつくれそうじゃない?

っていうかcb -sしろ(indentでも可)
あなた達はわかっていませんね。
スパゲティは暗号化の一種です。
わざと読みにくくしているのです。
読まずにデバッガで追え
同値問題停止問題。。。
153デフォルトの名無しさん:01/12/04 03:12
>>読まずにデバッガで追え

正しい....。

スパゲじゃないけど、N88-Basic使って組まれた制御系プログラムを
VBに持ってくときは大変だったよ。造りなおしを許してくれないもん
だから、N88エミュに近いものをつくっただーよ。
スパゲッティなプログラムは、
カリ城でルパンと次元がやってたようなイメージで
読み解けばいいんですよ。
まぁ、イタリアンに限りますけどね(´ー`)y−〜〜
155デフォルトの名無しさん:01/12/04 18:42
言語やgotoが悪なのではない。
カスプログラマが悪いのだ。
カスプログラマの生成物が結果としてgoto文だらけだったり、
N88-Basic製だったりするだけだ。
言語やgoto文を滅ぼすよりカスプログラムを殲滅するほうが
抜本的解決方法だ。
156デフォルトの名無しさん:01/12/04 18:49
ruby!
腹減ってきた。。。
もうすぐ辞めるときにすごいのつくって置いて来た
159デフォルトの名無しさん
逆アセンブルしてデバッガで追えば?