多くの場合、開発者は、問題を解決するための2つの可能な方法から選択する必要があります。1つは慣用的で読みやすい方法で、もう1つは直感的ではないがパフォーマンスが向上する可能性があります。たとえば、Cベースの言語では、数値に2を掛ける方法は2つあります。
int SimpleMultiplyBy2(int x)
{
return x * 2;
}
そして
int FastMultiplyBy2(int x)
{
return x << 1;
}
最初のバージョンは、テクニカルリーダーと非テクニカルリーダーの両方で簡単に選択できますが、ビットシフトは乗算よりも簡単な操作であるため、2番目のバージョンの方がパフォーマンスが向上する可能性があります。(今のところ、コンパイラのオプティマイザがこれを検出して最適化しないと仮定しましょう。ただし、これも考慮事項です)。
開発者として、最初の試みとしてどちらが良いでしょうか?