В комментариях к посту Реймонда Чена зашла речь о занулении памяти. Перед тем, как новой памятью воспользоваться, полезно заполнить её нулями, чтобы твёрдо знать, какие значения будут у переменных. Однако это не всегда нужно. Некоторые функции выделяют уже нулевую память, и повторно занулять её - только тратить время зря.

Один из участников - видимо, начальник - сказал: "я всегда слежу за тем, чтобы другие не писали лишних занулений. Я стараюсь воспитывать программистов, которые думают над тем, что пишут, а не пихают бессмысленно зануления где попало".

В принципе он прав - с бездумностью надо бороться. Но зачем думать над всем подряд?

Ресурсы мозга ограничены. Нельзя уследить за всем и мыслить по-хардкору круглые сутки напролёт. Попробуйте восемь-то часов проработать как следует - вы к вечеру два и два сложить не сможете! Поэтому надо выбирать, чему уделить внимание, а на что махнуть рукой - полностью сознавая последствия.

Так получается, что лишнее зануление - операция быстрая и безвредная. Поэтому хороший программист не станет специально размышлять, где нужно, а где не нужно занулять память. Он просто занулит её везде, и этим освободит себе время подумать над действительно важными вещами - над теми, где ошибочное решение приведёт к тяжёлым последствиям. А программист, воспитанный таким начальством, обдумает каждое зануление, и от усталости забудет про слона.
Бессмысленное мышление вредно :)

Кроме того, не придётся ломать голову и проверяющему: "Тут память не занулили. Это потому, что было не нужно? Или программист забыл?" Ещё одна экономия внимания.

@темы: Компьютеры

Комментарии
15.07.2012 в 01:19

Хороший программист не станет ломать голову, он просто воспользуется автоматизированным средством проверки кода т.к. такие вещи как использование не инициализированной переменной алгоритмически ловятся очень и очень просто. Естественно, не нужно лишних обобщений. Автоматизированные средства не панацея, но они могут реально помочь.
15.07.2012 в 01:50

Гость, и это тоже, whatever flows your boat. Я и говорю, что программирование нужно облегчать, а не превращать в бесконечную головоломку.
14.09.2012 в 23:07

Нас, например, препод заставлять занулять вообще всё, даже если это через несколько строчек инициализируется чем-нибудь.
14.09.2012 в 23:43

Гость, а в каком языке? В C++ можно просто объявлять при первой инициализации, например.

Расширенная форма

Редактировать

Подписаться на новые комментарии