[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を読みましょう。
>