You are here: Home / TinBlog / 準最長不倒関数

準最長不倒関数

Posted by h2 at Oct 06, 2011 03:48 PM |
Filed under:
世の中には、常軌を逸したプログラムというものが存在するものだ。いままでコキタナイ(と言い切ってしまおう)プログラムをいじり回す羽目に陥ったことは数々あれど。21世紀も10年経過したいまになって、最長不倒関数に出くわすとは、思いもしなかった。とほほほ・・・ orz

古くからのプログラマであれば、誰でも知っている古典的名作、Cプログラミング診断室という本がある。一時絶版したり、復刻版が出たりした本だ。

現在、書店に並んでいるかどうかは定かではないが、幸いなことに著者が好意(でいいのかな?)でWebに公開しているので、2011年10月6日現在、読むことができる。

Cプログラミング診断室・藤原博文著

iOSにObjective-C、AndroidにJava、が主流の現在でさえ、その内容は実に有意義なので、読んだことがないプログラマには、一読をお勧めする。

・・・というか、できれば本を購入して、精読しましょう。

 

で。この本の中に、最長不倒関数というものが出てくる。

コキタナイプログラムの一つとして、ほぼ無条件で駄目子ちゃんの烙印が押されるプログラムだ。

一言で言えば、「一つの関数(メソッド)の行数が多すぎて解読が困難」なプログラムだ。

当然、バグの温床にもなるし、改修も困難、他のプログラムへの流用や応用もほぼ不可能、という、わがまま放題のプログラムだったりする。

 

自分も、このようなプログラムにお目にかかったことは、多々ある。

ただし、前世紀に。

今世紀に入って、プログラム手法も洗練されてきた現在において、このようなプログラムにお目にかかることは、ほぼ無くなっていたのだが。

 

それが、いま、目の前に横たわっていたりして orz

 

さすがに、プログラム内容をさらすわけにはいかないのだが。

かいつまんで言うと。

一つの関数の長さが、3520行。

このうち、約3300行が、一つの switch〜case文。

さらに、この中に別の switch〜case文がネストされていて。

 

・・・・・・・・。

もう、なんてコメントしていいものやら。

唯一の救いが、多少なりともコメントの書き込みがある、ぐらいか。

・・・部分的に、間違った内容のコメントもあるけど(コメントの弊害についても、上記「Cプログラミング診断室」で触れられている通り)。

 

えーと。

プログラマの皆さん。

もしくは、プログラマを目指している皆さん。

もっと勉強して、良識のあるプログラムを組みましょう。

 

Filed under:
« August 2019 »
August
SuMoTuWeThFrSa
123
45678910
11121314151617
18192021222324
25262728293031