ナイーブソリューションとは何か


リーダブルコードを読み始める

リーダブルコードの書籍を購入し、読んでいると知らない言葉に出会った。

例えば、「ヒューリスティック」・「ブルートフォース」・「ナイーブソリューション」などがそうだ。コメントが長くてくどいと感じたら、こうした表現を使えないか確かめよう。

この文章がでてきた背景には、情報密度の高い言葉を使おうという内容で、多くの意味を含んだ言葉や表現を使う事で、プログラムのコメントを読みやすくしようという事が狙いとなっている。そのアイデアとして、上記のアドバイスがされていた。

naïve(ナイーブ)とは

naïveという言葉は、「世間知らず」や「単純」、「無邪気」といった意味があります。
英語で、naïveと打つと、iの上に点が2つ表記されます。これは、フランス語が語源の為みたいです。このフランス語のnaïveには、純粋や素直といったポジティブな意味と、世間知らずといったネガティブな意味の両方が含まれているそうです。
そしてNaïveには、芸術分野において、単純、無邪気、技巧を凝らさないといった意味があります。

ナイーブソリューションとは

美しい(分かりやすい)コーディングを目指す事において、プログラミングも芸術であると思います。
となると、ナイーブソリューションのニュアンスとしては、単純で素朴な解決策という事でしょうか。
あるサイトには、「経験豊かなプログラマーが最初に浮かぶシンプルな解決策」を意味する専門用語とありました。
その方はさらに、「経験の浅いプログラマーは、その単純な解決策を受け入れよう。その単純な解決策に欠点が無いと思うのであれば、複雑な解決方法はおすすめしない」というアドバイスまで。

まとめ

単純な方法で解決できないか考えてみて、その手法では実現できない事が分かったら別の方法を考えてみる。