- C言語なら俺に聞け
690 :デフォルトの名無しさん[sage]:2016/04/10(日) 14:04:18.17 ID:1wJYBBrT - 殆どの変数が関数内でstatic宣言されている2万行くらいのソースをメンテしたことがある
変数の値が変わると、それぞれの関数の内部処理が分岐して異なる処理を行っていた 書いた当人は体調を崩して最後までやり遂げなかった 引き継いだ時は死ぬかも知れないと思った
|
- C言語なら俺に聞け
695 :デフォルトの名無しさん[sage]:2016/04/10(日) 19:24:37.06 ID:1wJYBBrT - >>694
このモジュール(実行単位)についてのドキュメント、 関数仕様書はこんな感じでした。 「初期処理」 初期処理を実行する 「メイン処理」 メイン処理を実行する 「終了処理」 終了処理を実行する 「異常処理」 異常処理を実行する 関数の引数 なし 関数の戻り値 なし つまり、2万行のソースには全部で4個の関数がありました。 ホスト側の処理なので、クライアントの要求に応じて処理内容が変わります。 もう、いわゆるスパゲッティを遙かに超えてました。 何故こうなったかと言うと、関数一つ一つ、使用する変数一つ一つ 対応する詳細なドキュメントを本来は書かないといけなかった。 それが面倒だったのでしょう。書く時間がなかったというのも事実でしたけど。 記述内容をできるだけ減らすために、関数の数を少なく、 もちろん引数、戻り値なしで作る様になったらしいです。 内部はブラックボックスというか、ダンジョンというか・・
|
- C言語なら俺に聞け
697 :デフォルトの名無しさん[sage]:2016/04/10(日) 19:54:14.07 ID:1wJYBBrT - コメント通りにはプログラムは動かないからね。ヒント程度の意味。
コメントを信じてしまうと、思わぬ落とし穴にはまる危険もある。 ソースを読んでいて、なんでこんな無駄なことをしているのだろうと 読んだ人が疑問に思うだろう箇所に、 「こういう事情・経緯があってこうせざるを得なかった。だから、直す場合は気をつけてね」 と書くのは良いと思う。
|
- C言語なら俺に聞け
703 :デフォルトの名無しさん[sage]:2016/04/10(日) 22:13:56.39 ID:1wJYBBrT - 20年以上前の話だけど
ある有名テキストエディタをバイナリーダンプすると プログラマーのぼやきの言葉が見つかる リビジョンアップするたびに内容が変わるので 毎回楽しみにしていた。
|