by
Anonymous Coward
on 2009年05月04日 20時53分
(#1559207)
アプリケーションハンバリアン、はじめて知りました、
でもこれ、単位系の整合性は、実行するまでもなくコンパイルレベルでチェックできるんですね。
テンプレートメタプログラミングなどでコンパイル時点でバグを始末してしまえるような気がします、というかコンパイラに機能として組み込むべき?
たとえば
int Y;
Unit pxkg = px * kg;
Y * pxkg = A * px + X * kg;
のような形にして、単位系があっていなければ、即エラー。
機械的にできるならコードレビューチェック化すべきじゃないと思われます。
ハンガリアン記法とか (スコア:0)
Re: (スコア:3, 参考になる)
char szHogeHoge[64]のようなシステムハンガリアンを使うことについては、僕も大嫌いですが。
Re: (スコア:0, すばらしい洞察)
同意しない。だって、そういう目的なら、それ用の型を準備して使えばいいわけで。
暗黙に決めた名前ルールでどうにかしようなんて馬鹿げてて、型でシステマティックに解決するべきです。Javaのような部類の言語(静的型付言語)ならそれができるよね。
けっきょく、ハンガリアン記法なんてものは、静的に型を明示できない言語で型名を変数名に入れているだけだよね。しかもアドホックに。
Re: (スコア:0)
例えば、X座標を保持する変数にはpx、重さを保持する変数にはkgというプリフィックスを付けましょうということです。
そうすれば、pxA + kgX という式は誤りである可能性が非常に高いということが字面だけでわかります。
これは型でどうこうできるものではないのは理解いただけると思います。
(むろん言語のほうでどうにかすべきで、curlではなんとかしていますが)
アプリケーションハンガリアンは組み込まれるべきだとおもった (スコア:0)
でもこれ、単位系の整合性は、実行するまでもなくコンパイルレベルでチェックできるんですね。
テンプレートメタプログラミングなどでコンパイル時点でバグを始末してしまえるような気がします、というかコンパイラに機能として組み込むべき?
たとえば
int Y;
Unit pxkg = px * kg;
Y * pxkg = A * px + X * kg;
のような形にして、単位系があっていなければ、即エラー。
機械的にできるならコードレビューチェック化すべきじゃないと思われます。