なめらかなコードと名付けてみる修行

データ構造、アルゴリズムの工夫によって、繰り返しや分岐において、特別な場合の特別な処理をしないコードのこと。特異点がない、という数学的な「なめらかさ」から流用した概念。
特異点特異点の除去、などの用語もそのまま流用する。
たとえば、ループの中に、ループの最初にだけマッチする if 文がある場合、これを特異点と呼ぶ。初期値やデータ構造を工夫すると if 文をなくすできることがある。これを特異点の除去と呼ぶ。数学的な厳密さは求めず、より包括的であれば、また、より特異点が少なければ、よりなめらかなコードと呼ぶことにする。

特異点の除去のテクニックとしてすでに名前がついているものとしては、番兵、NULL オブジェクトパターンなどがある。多くのデザインパターンにもコードをなめらかにする工夫が見えるし、オブジェクト指向プログラミング自体がコードをなめらかにするのに寄与していると思われる。
でも、もしかすると特異点の除去とは、ロジックの複雑さをオブジェクトに押し込める作業なのかもしれない。この辺り、もっと研究する余地あり。

逆になめらかでないコードに特徴的なのは条件分岐の多用である。

なめらかなコードはテストしやすく、ロジックが見やすくなる。パフォーマンスは犠牲になることがある。ロジックの一部が隠蔽されるのでオブジェクト指向な脳でないと理解しにくくなるおそれもある。
好き嫌いはありそうだが、基本的に私は好き。