反面教師に学ぶ読みやすいプログラミング

反面教師に学ぶ読みやすいプログラミング

どうもohbaです。

最初に断っておきますが今回はネタ回です。
この記事を真剣に捉えないでくださいね。(笑)

皆さん日頃コーディングする際どのような点を気をつけているでしょうか?
その一つに「読みやすいプログラミング」というのが有りますよね?
例えば、

  • 関数、変数は分かりやすい名前にする
  • コメントを適度に書く
  • 構造が見えるようインデントを使用する

等々あると思います。

読みやすいプログラミングは保守性にも優れていて、バグの発見も容易でまた改修もやり易いといいこと尽くめです。
そんな読みやすいプログラミングの助けになる(?)サイトを紹介します。

今回紹介するのは「IOCCC」です。
これはThe International Obfuscated C Code Contestの略で、訳せば「国際難読Cコードコンテスト」となり、どれだけ読みづらいC言語のコードかを競うコンテストです。
1984年からほぼ毎年行われています。(2007~2010年は開催せれていませんでした。)
このコンテストの受賞コードと逆のことをやれば読みやすいプログラミングになりますよね(笑)

では、その一例を見てみましょう。

これは1987年の「Best One Liner」受賞作です。David Kornさんが作成されました。

void main(void) {printf(&unix[“21%six12”], (unix)[“have”]+”fun”-0x60);}

わかりますか?これは「unix」と表示するプログラムです。
私は(解説付きで)読むのに小一時間かかりました。

また、次ようなインパクトのあるプログラムもあります。

こちらは1995年の「Best Layout」受賞作品です。Heather Downsさん、Selene Makariosさんが作成されました。
※全体を見渡せるように画像化しています。

このプログラムは2つの引数を加算するプログラムなのですが、コード自体も半加算回路になっています。(笑)

その他面白いコードが公開されていますので一度見てみると面白いですよ。 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です