Index: [Article Count Order] [Thread]

Date:  Mon, 19 Nov 2001 23:11:12 +0900 (JST)
From:  KUSAKABE -bourbon!- Toshiaki <kusakabe@....net>
Subject:  [XP-jp:02807] 長いコードは読み易い ? (Re: XP に関する誤解)
To:  extremeprogramming-jp@....jp
Message-Id:  <20011119.231112.112385784.kusakabe@....net>
In-Reply-To:  <20011119202416.2E9B.E-YAMANE@....jp>
References:  <20011119165348.2E98.E-YAMANE@....jp>	<KDEHKEPCBPCHADONCLGMIEHLCBAA.fwii7128@....jp>	<20011119202416.2E9B.E-YAMANE@....jp>
X-Mail-Count: 02807

日下部と申します。

横から失礼します。

> > 行数が多いプログラム=わかりやすい
> という件に関しては、特に妙だとは僕は思わないです。
> と言うか、古いプログラマ世代の人は分かるかと思います。
> #歴史の変遷ですかね?f(^_^;

残念ながら、私は結構古い人間ですが、分からないです。
昔から「この人すげー」と思うCな人は、
  短くて効率が良くて、可読性の高いコード
を書いていました。
「おめーのコードは冗長なんだよ。ここをこうすりゃ 2/3 だし、もっと縮ま
るかもな!」って言われて、非常に胃が痛い思いをしました (^^;;

それから私は、今も昔も、コメント重視なコードはなるべく敬遠しています…
#確かに、ワークアラウンドやヒューリスティックスの様な意味不明なロジッ
#クはコメントに書きますが…(^^;;

> まだ、ハードウエアスペックがプアな時代は、
> ソースの可読性を犠牲にしてでも、メモリの使用効率や、
> 速度を優先するように教わり、かつその奥義(?)を
> 先輩から伝授されていました。f(^_^;

はいはい、そうですね。例えばメモリが8-16KBじゃあねぇ。
#とはいえ、その様な環境は、今だってあるじゃないですか! (^^

> でも、そのコードは当然奇妙奇天烈でそのテクを知らない人には、
> さっぱり分からないようなコードだったりしました。

はいはい、裏技の塊でしたね。といっても、こればっかりはコメントには書か
なかった気がします。技の伝承の様なもので、ハッキングする人には常識的な
内容ですから。

> その後、メモリも潤沢で、性能も天文学的な物が手に入れられるようになって
> 可読性とか、保守性とかの重要性が認められるようになったんです。

んー、つまり、
計算機 vs 人員のコストが
  計算機 << 人員
となったから、多少の速度を捨ててでも、人間にやさしい(優秀じゃない人間
でも、多人数でも簡単に保守、管理出来るように)スタイルが台頭してきたん
じゃないでしょうか?

人を雇うより、PCは安価で充分速いんだから、人にやさしくね! ってな感じ。

> で、可読性を上げる方法もどんどん変わっていってます。
> 昔は、コメントを大量に書いて可読性を上げると言う時代もあったのです。

先ほども書きましたが、昔からそれを否定している人も一杯いますです。
ソースコードの意味合いをコーディングスタイルで、ある程度表現できます。

> #そんな時代は無い?じゃぁ、自分の周りだけなのかもしれません。(T_T)

いやいや、そういう人ばかりじゃない、ってことです。
未だに、コメントレス、コメントフル論争は終っていません ;-)

> 時代時代で求められていることが変わってきているのです。
> だから、
> 短くトリッキーなコードを書く人:アセンブラ世代の人
> トリッキーなコードを排除した長いプログラム:C全盛の人
> と言うことで、その先に、XPでというか本来あるべき、
> シンプルさがあるのだと思います。
> #上記表現は、かなりCerや、アセンブラーな方には
> #失礼な文章かも知れません。

この辺は以上で述べた通りです。
1つの関数は短くある(30行から50行)べきです。

余談:
ポータビリティ重視なCを書く、ハード/デバドラ屋さんを知っていますが、
彼は標準ライブラリーも使えないCでトリッキーなコードを書いています。
#おっと、これは余りに extreme な例でした! ;-P

> だから、この記事では、この変遷を述べずに、
> 「長く読みやすいコードより、短いコード」という事を
> 述べているから誤解が生じてるのであって、
> 決して先祖帰りを容認しているわけではないと思います。
> #容認しているように読めるのは事実ですが。f(^_^;

はい、これは全くその通りだと思います。

(以下、引用省略)

それから「同じ様なロジックが繰返し現れる」コードが悪いのは事実だとして、
それはコードを長くする重大な原因の一つであるとも、昔から言われているこ
とですよね。

	---kusakabe	空き缶はクズ箱へ...