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

もうやらなくていい昔のコーディングテクニックあれこれ」記事へのコメント

  • あれを未だにやめず使う人の気が知れんです。
    • Re: (スコア:3, 参考になる)

      アプリケーションハンガリアン [joelonsoftware.com]は結構有効な気はします。
      char szHogeHoge[64]のようなシステムハンガリアンを使うことについては、僕も大嫌いですが。
      • Re: (スコア:0, すばらしい洞察)

        by Anonymous Coward
        > アプリケーションハンガリアンは結構有効な気はします。

        同意しない。だって、そういう目的なら、それ用の型を準備して使えばいいわけで。
        暗黙に決めた名前ルールでどうにかしようなんて馬鹿げてて、型でシステマティックに解決するべきです。Javaのような部類の言語(静的型付言語)ならそれができるよね。

        けっきょく、ハンガリアン記法なんてものは、静的に型を明示できない言語で型名を変数名に入れているだけだよね。しかもアドホックに。
        • by Anonymous Coward
          アプリケーションハンガリアンをご存知ないようですので軽く説明しておきますと、
          例えば、X座標を保持する変数にはpx、重さを保持する変数にはkgというプリフィックスを付けましょうということです。
          そうすれば、pxA + kgX という式は誤りである可能性が非常に高いということが字面だけでわかります。

          これは型でどうこうできるものではないのは理解いただけると思います。
          (むろん言語のほうでどうにかすべきで、curlではなんとかしていますが)
          • >X座標を保持する変数にはpx、重さを保持する変数にはkg

            用にそれぞれ別の型を宣言してやればいいんですよ。

            >そうすれば、pxA + kgX という式は

            コンパイラがワーニングかエラー吐いてくれますよ。こんな機械に判定させておけば良い物に人間が煩わされるなんて馬鹿馬鹿しい。

            普通ここまでやらないのはパフォーマンスがどうとか使い勝手がどうとかいう話が絡んでくるからで、アプリケーションハンガリアンなんてもんは所詮妥協の産物ってこった。

            • Re: (スコア:2, すばらしい洞察)

              by Anonymous Coward

              プログラミングの経験の少ない人は型でなんでも出来ると思いがちなんだけど、例えば
              pxA + pxB という式は要注意だが、
              (pxA + pxB) / 2 という式は平均を取っているのでたぶん問題なし、
              ということを読み取りたいわけ。

              ハンガリアンの目的はコードの可読性を高めることにあるので、型とは目的からして違うんだよ。

              • by Anonymous Coward
                いつの間にか例と話が摩り替わってるね。
              • Re: (スコア:1, 興味深い)

                by Anonymous Coward
                難癖つけてるんでなければ、どこがどうすり替わっているのか具体的に指摘してくだちいいい。訂正します。
                何にせよ後から書いたほうがより正確ですので、そちらを参照してください。
              • by Anonymous Coward

                >指摘してくだちいいい

                釣りか自覚してないのか迷うなあ。

                >pxA + kgX

                は型が違うので足してはいけないって話が

                >pxA + pxB

                いつの間にやら同じ型になって全然違う話に。「同じ型だから安全ぽいよ!」と言いたいならそれこそ型でやるべきだし、そもそも変な命名規則を使わずとも変数の名前からそれが読み取れないような名前をつけてる時点で落第なんですよ。

              • by Anonymous Coward
                ああ、例が悪かったかな。後者の例のほうがより適切です。
                つまり

                (pxA + pxB) / 2 という式なら、これは二つの値の平均を取っているわけだから、この部分だけ見てもおそらく正しいことが読み取れる。
                これが、単に

                pxA + pxB という式だった場合には、バグの可能性があるので要注意、この周りのコードにも気をつけましょうということが分かる。
                しかし必ずしも間違ったプログラム片とは限らないので、コンパイラに排除させるわけにはいかない。

                > そもそも変な命名規則を使わずとも変数の名前からそれが読み取れないような名前をつけてる時点で落第なんですよ。

                学生さんかな?本当にチームプログラミングをやったことがないんだろうね。
                俺たちは仕事でプログラムを書いてるわけ。意思疎通がうまく行かなかった場合に、俺は悪くない、悪いのは君だ、君は落第!じゃすまないのね。
              • by Anonymous Coward on 2009年05月05日 6時19分 (#1559374)
                そもそも、何らかの意図をもった処理を、どんなに短くても、その場にベタベタと書くべきではないと思う。
                Cなら、操作を関数として分離しますし、C++ならクラスにしますが演算子や型変換は潰します。
                親コメント

※ただしPHPを除く -- あるAdmin

処理中...