Ясность побеждает краткость каждый день, по моему мнению. Я иногда чувствую, что написание кода, такого как:
if(!(x = func(y)) && ++z == x)
... эквивалентно быстродействующим полосам на автомобиле. Это может быть быстро, но это не так. Я также не думаю, что использование непонятных имен переменных (например, в приведенном выше примере) для экономии при наборе текста является хорошей идеей.
Что тут лучше:
for(int x(0) x < managers.size(); ++x)
managers[x]->initialise();
или
for(int mgr(0); mgr < managers.size(); ++mgr)
managers[mgr]->initialise();
Они оба выполняют одно и то же, и можно утверждать, что нет смысла делать mgr
более ясным (есть даже другие аргументы, чтобы сказать, что mgr
должно быть яснее :)). Но если когда-нибудь эта часть рутины станет более сложной, это может быть очень важно:
for(int mgr(0); mgr < managers.size(); ++mgr)
{
for(int dependentMgr(0); dependentMgr < managers[mgr].dependents().size(); ++dependentMgr)
{
// init these first
}
}
Очевидно, что речь идет не о том, использовать итераторы или нет, просто о том, должны ли мы использовать четкие имена или нет.
Когда я смотрю на фрагмент кода, который не видел раньше, имена переменных - это все. Я съеживаюсь, когда вижу tmp
и tempt2
и vec2
. Они ничего не значат.
Серьезно, люди, если вы беспокоитесь о количестве набираемой вами информации, получите IDE с автозаполнением или отправляйтесь выращивать цыплят на Фиджи:)