Часто разработчик будет сталкиваться с выбором между двумя возможными способами решения проблемы - одним из которых является идиоматический и читаемый, а другой - менее интуитивным, но может работать лучше. Например, в языках на основе C существует два способа умножения числа на 2:
int SimpleMultiplyBy2(int x)
{
return x * 2;
}
и
int FastMultiplyBy2(int x)
{
return x << 1;
}
Первая версия проще подобрать как для технических, так и для нетехнических считывателей, но вторая может работать лучше, поскольку смещение битов - это более простая операция, чем умножение. (Пока предположим, что оптимизатор компилятора не обнаружит этого и не оптимизирует его, хотя это также является соображением).
Как разработчик, который был бы лучше как первоначальная попытка?