Баян, небось, однако славный
Jul. 14th, 2011 09:56 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Буратине дали три яблока. Два он съел. Сколько яблок осталось у Буратины?
Думаете — одно? Фигушки! Это может в первом классе на уроке арифметики оно одно осталось. А ежели задать эту задачку программистам... Ответы могут быть совершенно неожиданными:
— Неизвестно сколько. Никто-ж не знает, сколько яблок было у него до этого.
Мораль: обнуляйте начальные переменные.
— Даже если обнулить переменные, никто не гарантирует, что Мальвина не отдала ему свои яблоки, пока он уничтожал те два. Или не сожрала третье.
Мораль: не используйте глобальные переменные.
— А где гарантия, что Буратино съел именно два яблока, а не два чего-то другого? Там написано что он съел два.
— Количество яблок у Буратины не изменилось. Они только поменяли область видимости: часть из них переместилась внутрь Буратины.
Думаете — одно? Фигушки! Это может в первом классе на уроке арифметики оно одно осталось. А ежели задать эту задачку программистам... Ответы могут быть совершенно неожиданными:
— Неизвестно сколько. Никто-ж не знает, сколько яблок было у него до этого.
Мораль: обнуляйте начальные переменные.
— Даже если обнулить переменные, никто не гарантирует, что Мальвина не отдала ему свои яблоки, пока он уничтожал те два. Или не сожрала третье.
Мораль: не используйте глобальные переменные.
— А где гарантия, что Буратино съел именно два яблока, а не два чего-то другого? Там написано что он съел два.
— Количество яблок у Буратины не изменилось. Они только поменяли область видимости: часть из них переместилась внутрь Буратины.