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

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

  • あれを未だにやめず使う人の気が知れんです。
    • 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 という式は

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

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

            • by Anonymous Coward on 2009年05月05日 11時53分 (#1559439)

              長さとか質量とか、物理量の場合には、異なる次元の物理量同士の加減は誤りである可能性が高いですが、
              乗除は誤りとは言えません。たとえば、速度を得るには長さを時間で割りますよね。

              親コメント
              • by Anonymous Coward
                > 速度を得るには長さを時間で割りますよね。

                違います。

                速度を得るには、距離と時間から速度を計算する関数を呼ぶべきです。
                異なる意味の数値どうしの演算をしている箇所を限定することでレビューやテストがやりやすくなるし、
                異なる意味の数値どうしの演算や代入を機械的に排除することでバグを発見しやすくなります。
              • by Anonymous Coward

                とはいえ、なんでもかんでも関数にしたら、そういう計算をしたい箇所の数が猛烈に多い場合には面倒だ。
                特にCみたいに関数リテラルとかが書けない言語だと悲惨。
                せめてLispくらい「関数」が便利な言語ならばまだいいんだけども。

                Lispなら「xを足す関数」から「5を足す関数」を「作る」のは容易だけど、Cとかだと超面倒だ。
                LispよりCのほうが、関数の数にたいするコーディングの手間の処理量オーダーが大きい。
                (Cのように支援が乏しいと毎回丸々書く羽目になるからO(n)だが、Lispだともっと少ないのだろう)

                とはいえ、次元計算の支援機能もまた無いCでは、「関数をあまり書

犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー

処理中...