パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

汚いソースを見たら?」記事へのコメント

  • 仕事で扱うソースだと、不用意に書き換えることは出来ないのよ。
    あんまりサイズが大きくなければ、「書き直したほうが早い!」としちゃうこともあるけど、
    何人月かかかりそうなのはそうも行かなくてね…

    そういう場合に出来ることは、「吐く」ことぐらいだよなあ…
    •  理由なしには1文字足りとも修正出来ないのよ…
       んで、修正する際も、見栄えや構造を優先するのではなく、その場での修正行数や、試験項目の少ない修正を選ばされるから、その調子で10年もメンテされたソースは大変さぁ…
      #修正履歴もすべてコメントで残すから、もとの倍以上のソースサイズなんてザラだし。
      #書き直した方が早く(速く)ても、書き直したソースにより発生する試験の工数まで考えると無理な場合がほとんど。

       お陰で、ソース読解用のマクロや、脳内インデントが洗練されました。
       ま、そもそも、自分もそんな綺麗なソース書かないけど。
      #80×25文字にどれだけの機能を盛り込むか?とかが得意な人間だったので。
      親コメント
      • こんな事がありますた (スコア:2, おもしろおかしい)

        by Anonymous Coward on 2002年10月30日 11時46分 (#192056)
        とあるファーム開発で貰ったソース。

        unsigned char x;
        ...
        if(x0){
        ...

        漏れ「あの、ヘンなコードがあるんですが」
        上司「あぁ、動いてるモノだから直さないでね」
        漏れ「...( ゚Д゚)ポカーン」
        親コメント
        • by ponpon (8909) on 2002年10月30日 13時37分 (#192142)
          参考までに。
          日曜プログラムにはunsigned char に数を入れて使いますよ。
          #つっこみどころ、違いますね。

          (unsigned char) < 0
          ( ゚Д゚)ニョガーン
          #使い方にもよりますが、よく動いてますね。
          親コメント
          • その部分って

            if (x != 0)
            と同じですよね。まあたまたま動くのは不思議じゃないかも。ただ、そんなことを書くスキルの人と一緒に仕事をしたくないというのはあるかも知れません。ましてやその修正を拒否されるってのは信じがたいですね。

            --
            vyama 「バグ取れワンワン」
            親コメント
            • unsigned char だからその取り得る値は 0~255
              x を実際の値に置き換えてみると
              if (0 0) は False
              if (1 0) は False
              ・・・
              if (255 0) は False
              となってこの if文は then節をコメントにしているだけです。
        • メモリ節約や処理量低減の為に、明示的に8bit型を使うために、コンパイラの吐いたアセンブラソースを見て検証した上で、あえてこのようなコードを使うことがあります。(ワンチップ系はRAMが数KB以下も珍しくないし、8bitプロセッサで16bit演算なんかバンバン使われた日には...)

          もっとも、紛らわしいことは確かなので、

          #define BYTE unsigned char

          BYTE a;

          とでもして、数値だぞと主張した方がメンテはしやすいですし、組込みコンパイラでも気の利いたものはバイト型整数なんてものがサポートされています。
          親コメント
        • 間違い。

          x0→x<0
      • by SteppingWind (2654) on 2002年10月29日 23時53分 (#191742)

        ほぼ同じ状況ですね. しかも驚くべきことにこれが1年半前に完全に新規作成されたソースだってこと. 私は10何年ソフトウェアを扱っていて, 初めて絶望という物を味わいました. 現在せめてもの望みは私がこれにかかわったという一切の痕跡を消し去ることです.

        完全新規に書き直した方が今後の累積テスト工数を考えれば良いのは確実なんですが, それ以前に本番開始1年以上たっているのに要求仕様が明文化されていないので何をかいわんやなんですが.

        親コメント

ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ

処理中...