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

#俺が見たクソコード選手権、Twitterで盛り上がる」記事へのコメント

  • クソコードというかクソコーディング規約ですが。
    本気でどうしようかと思った。

    #関数名が通し番号とかじゃないだけマシだったと思うほかない

    • by wolf03 (39616) on 2012年04月03日 20時25分 (#2128992) 日記
      【1関数50ライン、1モジュール500ライン、1ライン80カラム】
      これでもProCの規約だったりする。
      ほぼ全てのモジュールでカラム数以外超えまくりでしたがね。
      親コメント
      • by Anonymous Coward

        >【1関数50ライン、1モジュール500ライン、1ライン80カラム】
        杓子定規に従うのはまぁ、なんだと思うが、言っていることは割とまともだと思うが。
        これらを越えると、正直読みづらくて頭に入らない。

        • by wolf03 (39616) on 2012年04月03日 21時29分 (#2129062) 日記
          いやいや、面倒なコーディングが非常に多いかつ、変数の命名規約で変数名もかなり長めなんですよ。
          で、自分が担当した物で一番小さかった関数でも100ラインを軽く超え、複数行にまたがっての記述
          だらけになり、見た目の行数は非常に多くなるんですよ。
          親コメント
          • by Anonymous Coward

            まあ3000行くらいのループが3つくらい入っているswitch文で、
            1万行くらいの関数があるよりマシですね。

            1メソッドなんて20行もあれば十分でしょう。>Smalltalk
            50行もあったら、コードレビュー以前の問題でしょう。

          • Pro*C書いたことは無いですが見たことはあります。
            あの言語は、SQLとかプログラム中に普通に登場するから行数が増えるってことですよね?

            普通の言語(JavaにしろPHPにしろ)なら真っ当なコーディング規約でも、それを違う言語にそのまま持ってくると糞規約に早変わり、というのは有り勝ちなことです。
            どちらかというと、COBOLとかCとかの規約をJavaやらに持ってこられて泣かされるケースの方が多いですが・・・。

            • ついでに、データ保持用の変数とホスト変数は必ず分ける規約で、数値なら代入、文字ならstrncpyが大量に・・・。
              初期値に1を入れる数値変数であっても、必ず0で初期化を入れろとか・・・。

              各関数に入れるお決まりのロジックだけで10行超えるのに、これ入れて50行でしたし。

              #変数名・関数名の命名規則はまともだったのになぁ・・・
              親コメント
          • by Anonymous Coward

            50行 -> 25Line x2
            80カラム -> 半角80文字

            もしかして、dos時代に作られた規約なんじゃ....

    • by Anonymous Coward

      きっと、昔いじめられっこでクラスという文字を見るのが嫌なんだろうね。

    • by Anonymous Coward

      > #関数名が通し番号とかじゃないだけマシだったと思うほかない

      COBOLer disってんの?

      #関数名どころか変数名も英字+連番・・・

      • by kalb (19692) on 2012年04月03日 22時02分 (#2129093)

        COBOLだけじゃなく大規模開発の旧態依然な体制のプロジェクトではありがちではなかったかと
        # 自分の経験では今は無き某銀行のPL/Iで書かれたシステムで有りましたが

        親コメント
      • by wolf03 (39616) on 2012年04月04日 0時49分 (#2129172) 日記
        思い出した・・・・・
        初版が1970年代のソース、変数が英数で2文字だった。
        親コメント
        • by Anonymous Coward

          MSXのBASICを思い出した。

      • by Stealth (5277) on 2012年04月09日 10時22分 (#2131817)

        W88- の部分などは言語仕様によって決まっている部分なので、「変数名の付け方」的なコンテキストの話では含めてはいけない部分だと思いますが。
        Perl で言えば $ とか @ とかと似たような感じでしょうか。

        むしろ、その後の部分にマルチバイト英数書かれたりとか、そっちの方がヤバいですね。
        メソッド名でマルチバイト文字列を使うのは、テストコードなんかでかなり有効だと思いますけど、それ以外はちょっと……。

        親コメント
      • by Anonymous Coward

        それ、かなり古い話なんでしょうか?
        私がこの業界に入った90年代には既に記述的な名前をつけろ、と教育を受けているのですが。
        まぁ、そういうソースを見た事はあるし、せっかく記述的な名前にしたのにA000000~A999999でリネームさせられた事はありますが。

        # 挙句、それを見て「よし、分かりやすくなった!」と来たもんだ。
        # コーディング規約は無しでした。

    • by Anonymous Coward
      自分の周囲ではそもそもオブジェクト指向を理解しない人が大多数のためクラス禁止、関数名は機能カテゴリ名+通し番号なんて世界が未だに普通だったりします。
      そして関数をExcelの台帳で管理して、さらにそのExcelが共有に失敗して上書き破損して...

      #半分自社の悪口になってしまうのでAC

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

処理中...