Index: [Article Count Order] [Thread]

Date:  Tue, 20 Nov 2001 12:14:47 +0900
From:  Eiji Yamane <e-yamane@....jp>
Subject:  [XP-jp:02812] Re: 長いコードは読み易い ? (Re: XP に関する誤解)
To:  extremeprogramming-jp@....jp
Message-Id:  <20011120114539.2E9E.E-YAMANE@....jp>
In-Reply-To:  <20011119.231112.112385784.kusakabe@....net>
References:  <20011119202416.2E9B.E-YAMANE@....jp> <20011119.231112.112385784.kusakabe@....net>
X-Mail-Count: 02812

山根です。

#あんまり、昔を語っても仕方ないのですが・・・
#歴史は必然と言うことで、私の育った環境では
#というお話になります。

On Mon, 19 Nov 2001 23:11:12 +0900 (JST)
KUSAKABE -bourbon!- Toshiaki <kusakabe@....net> wrote:

> 日下部と申します。
> 
> 横から失礼します。
いえいえ、ありがとうございます。

> 残念ながら、私は結構古い人間ですが、分からないです。
> 昔から「この人すげー」と思うCな人は、
>   短くて効率が良くて、可読性の高いコード
> を書いていました。
これは、そうですね。
私や、あの記事を書いた人は、
「トリッキーな短いコードよりは、基本に準拠した長いコード」
と言うのが、前段としてあって、
その先に日下部さんのおっしゃっているような、
> 「おめーのコードは冗長なんだよ。ここをこうすりゃ 2/3 だし、もっと縮ま
> るかもな!」って言われて、非常に胃が痛い思いをしました (^^;;
という、お話に発展するんだと思ってました。
#私も同様、その点はちくちく言われた口です。

> それから私は、今も昔も、コメント重視なコードはなるべく敬遠しています…
> #確かに、ワークアラウンドやヒューリスティックスの様な意味不明なロジッ
> #クはコメントに書きますが…(^^;;
えぇ、これは環境の違いなのかもしれません。
私が、携わっていた環境では、昔のプロジェクト(全てではありません)で、
関数(Cだったので)の頭に関数仕様書を書いて、
関数仕様書に処理詳細を書いて(ある変数が0だったらというレベル)、
さらに、その処理詳細に対応する処理の頭にコメントをつけて、
変数の右側に変数の使用内容をコメントして、
削除したソースは削除理由と一緒にコメントアウトすること
等など、事細かに、コーディング規約で決められていたという時代もありました。

フェーズが進むと、7割方がコメントと言うようなソースが
大量にあるという、今から考えると凄いプロジェクトだな。f(^_^;

> > まだ、ハードウエアスペックがプアな時代は、
> > ソースの可読性を犠牲にしてでも、メモリの使用効率や、
> > 速度を優先するように教わり、かつその奥義(?)を
> > 先輩から伝授されていました。f(^_^;
> 
> はいはい、そうですね。例えばメモリが8-16KBじゃあねぇ。
> #とはいえ、その様な環境は、今だってあるじゃないですか! (^^
そのような場合、メソッド名や変数名等の可読性は犠牲になりますよね。
インライン展開とかもしてしまいますよね。

iアプリのコードなんかは、だから*わざと*オブジェクト指向っぽくなく
作ったりもしているはずです。

メモリに制約があれば、その分可読性は犠牲になってくる
物ではないでしょうか?
#これは、自分のスキル不足に対する甘えだとは思いますが・・・

> > その後、メモリも潤沢で、性能も天文学的な物が手に入れられるようになって
> > 可読性とか、保守性とかの重要性が認められるようになったんです。
> 
> んー、つまり、
> 計算機 vs 人員のコストが
>   計算機 << 人員
> となったから、多少の速度を捨ててでも、人間にやさしい(優秀じゃない人間
> でも、多人数でも簡単に保守、管理出来るように)スタイルが台頭してきたん
> じゃないでしょうか?
> 
> 人を雇うより、PCは安価で充分速いんだから、人にやさしくね! ってな感じ。
そうです。

> > で、可読性を上げる方法もどんどん変わっていってます。
> > 昔は、コメントを大量に書いて可読性を上げると言う時代もあったのです。
> 
> 先ほども書きましたが、昔からそれを否定している人も一杯いますです。
> ソースコードの意味合いをコーディングスタイルで、ある程度表現できます。
だと、*今では*思います。f(^_^;

私の場合、前述した通り。
コメントはいっぱい書け!!
↓
さすがにソースの履歴は無駄なんじゃないか!?(履歴管理ツール有るのに)
↓
「プログラミング作法」という本でコメントや、リファクタリング本で、
コメントを書かないコードの方が保守性が高いと言うことを知って
↓
シンプルさとは何かを考えるようになった。

というのが、現状です。

> > #そんな時代は無い?じゃぁ、自分の周りだけなのかもしれません。(T_T)
> 
> いやいや、そういう人ばかりじゃない、ってことです。
そう思ってて、「自分の周りだけなのかもしれません。」という
発言でした。f(^_^;

会社や部署が違えば、同じウォーターフォールでも、
作業方針が微妙に違っていると思い、
上記のようなコメントをつけさせていただいた次第です。

> 未だに、コメントレス、コメントフル論争は終っていません ;-)
終わってないんですね。

> この辺は以上で述べた通りです。
> 1つの関数は短くある(30行から50行)べきです。
はい。同意します。
「プログラムが長い=関数が長い」と述べたわけではないです。

> それから「同じ様なロジックが繰返し現れる」コードが悪いのは事実だとして、
> それはコードを長くする重大な原因の一つであるとも、昔から言われているこ
> とですよね。
えぇ、それは重々承知しています。
> 確かに、疑問ですが人それぞれということじゃないですかねぇ?
> #ごめんなさい。逃げてます。
> #僕もにょにょるさんと同感なんで。
と、書いたとおりです。

それ以降の記述は、
それまでいた環境によって、感じ方は様々なんだと思い
あのように書きました。

山根 英次@アプリコット
  大阪支店
  TEL:06-6266-8333 FAX:06-6266-8334
    E-Mail:e-yamane@....jp