Twitterに「世界一IQの低いソースコード」が投稿され話題となっています(slashdot日本版)。
世界一IQの低いソースコードはこれ。吉井博史著「基礎から学ぶAndroid SDK」。4ページ半にわたってこれが続いた。今まで怒りのあまり床に投げつけた技術書はこれだけだ。 http://t.co/y6GZ1go3kL
— ROBA (@vjroba) 2014, 7月 31
if〜else連打
問題のソースコードは、Android開発用の技術書のサンプルプログラムとして掲載されていたもので、if〜elseの羅列が4ページ半にわたって続いていたというもの。以下のような定数を文字列に変換する処理が延々と続いています。
(略) } else if (keyCode == KeyEvent.KEYCODE_CALL) { ret = "KEYCODE_CALL"; } else if (keyCode == KeyEvent.KEYCODE_ENDCALL) { ret = "KEYCODE_ENDCALL"; } else if (keyCode == KeyEvent.KEYCODE_0) { ret = "KEYCODE_0"; } (略)
これに対し「リフレクションを使えばいい」とか、「keyCodeToStringがある」という意見や、「本の発売時点では keyCodeToStringがまだ使えなかったはず」といった様々な意見が飛び交っています。
String keyCodeStr = KeyEvent.keyCodeToString(keyCode);
個人的には、世界一IQが低いとは思えませんが、4ページ半はちょっとやり過ぎかなとおもいました(汗