[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: [jfriends] Re: [jfriends] Re: [jfriends] Re: Javaの開発生産性について




水野です。

On Mon, 30 Aug 1999 14:31:47 +0900
Kazuya Maebashi <maebashi@xxxxxxxxxx> wrote:

> 前橋です。
> 
> 年齢の場合、Cなら、
> 
> typedef int Age;
確かに、Ageのような物はClass化するには小さすぎますが、
変数名に気をつければ,混乱しないのでは?
> 
> たとえば、AWTのLabelですけれども、文字列のアライメントを
> こんなもん↓で指定するものだから、
> 
>     public static final int LEFT 	= 0;
>     public static final int CENTER 	= 1;
>     public static final int RIGHT 	= 2;
> 
> これを与えるときのメソッドの引数はこんなふう↓になっちゃうわけで、
> 
>     public Label(String label, int alignment)
> 
> これじゃ、alignmentに何を渡していいのだか、インタフェースを
> 見ただけではさっぱりわかりません。
これは、コーディングでカバーするらしいですね。
Labelクラスで使用する定数はLabelクラスで宣言しておけという。
> 
> ところで、Labelのalignmentについては、*Javaの言語仕様上では* 
> こうなっちゃってもしょうがないのですが(私は許せんけど)、
> もっと酷いのがBorderLayoutのコレ↓ (-_-;
> 
> ↓↓ここから↓↓ここから↓↓ここから↓↓ここから↓↓
>     public void addLayoutComponent(String name, Component comp) {
> 	if ("Center".equals(name)) {
> 	    center = comp;
> 	} else if ("North".equals(name)) {
> 	    north = comp;
> 	} else if ("South".equals(name)) {
> 	    south = comp;
> 	} else if ("East".equals(name)) {
> 	    east = comp;
> 	} else if ("West".equals(name)) {
> 	    west = comp;
> 	}
>     }
> ↑↑ここまで↑↑ここまで↑↑ここまで↑↑ここまで↑↑
Layout自体かなり、抽象度の低い機能ですからね。自分で作ってみると
奇麗に整理するのが大変なのがわかる筈です。
Layoutの設計手法ってなんかあるんでしょうかね。
コンポーネントにaddする場合に使用するコンセントレーターは、確かに、これし
かないのかとなやみました。誰かいい解決方法知りませんか?
> 
> 現存するコーディングを見る限りでは、C/C++では、確かにかなり
> 酷いコーディングも存在します。古いGNUやBSDのカーネルなんか読
> んでると泣けてきます。変数名短いです。関数名も短いです。ポイ
> ンタ演算使いまくりです。++が複雑な式の中にまぎれこんでます。
> 
> これは、これらのコーディングが、「古い」スタイルだから、読み
> にくいわけです。
> 
> # ま、今でも古いスタイルで書きたがる人は多いんですけど...
> # これについては、K&Rなんて困った本が、未だにバイブルになっ
> # てしまっている現実に問題があるわけなんですけれども。
Javaも出来たばっかりですから、そのうち良くなるとおもっていいのではないで
しょうか。

> 
> C++は、機能をいろいろ盛り込んだおかげで、面白がって乱用する
> 奴が後を絶たず、おかげで変なコーディングが幅を効かせているよ
> うな気がします。
> 
> CにせよC++にせよ、読みにくいコーディングは確かに存在するけれ
> ども、それはどちらかと言えば書く奴の問題です。
でも、CやC++は、良いコーディング方法を勉強するのが難しいような。
Javaには、いくつかの慣習があってそれをきちんと守っていれば、そんなにひど
い、コーディングにはなりません。(多分)
> 
> 変な書き方はしなければいいわけで、いくつかの単純な規則に基い
> てコーディングすれば、C/C++で読みやすいコードを書くことはあ
> る程度可能ですが、Javaだと、少なくともC++に比べれば、機能自
> 体が足りてませんし、しかも、逃げ道が存在しない... って、これ
これは、作れって事ではないでしょうか、Javaは拡張型言語ですから。
> は昔 Dennis Ritchie がPascalについて言った文句と同じですね。
> 
> #defineは、乱用するとムチャクチャ危険ですが、うまく使えばか
> なり便利です。Javaでデバッグライトはどうやって挿入するの?
何処かで通知を利用した設計で、デバッククラスが作れるようです。
まずは、PeterCordを読みましょう。
>