igorbor: (Default)
[personal profile] igorbor
Однажды приятель, работающий в Хеврат Хашмаль, прислал мне на работу письмо с заголовком: "Смотри, как в нашей конторе проверяют две переменные на равенство" и кусочком кода на несколько строчек:

if( a > b)
{
/* Do nothing */
}
else if( a < b)
{
/* Do nothing */
}
else
{
блаблабла - тут был написан какой-то реальный код.
}


Я посмеялся в усы и тут же переслал это письмо всем на фирме - только на всякий случай, чтобы не подставлять мужика (кто знает, какие у них там порядки в Хеврат Хашмале), вырезал все его данные и написал только, что вот, мол, этот код - не просто шутка, а кусок живой программы. Пусть, думаю, народ повеселится.

Через три минуты мне пришло ДВА ответа примерно одинакового содержания: "It's not me, it was there before"

Date: 2003-09-04 02:43 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Зря смеетесь. Все правильно написано. На каждый if, должен быть else, а компилятор все равно такие пустые блоки оптимизирует.

Не все так плохо

Date: 2003-09-06 07:00 am (UTC)
From: [identity profile] igorbor.livejournal.com
На каждый if должен быть else - это из Паскаля, что ли? или из анекдота? "Дорогой, если ты немедленно не не..., то пеняй на себя" "А else?"

Кроме того, довод про компилятор и оптимизацию ни при чем. Компилятор может также построить правильную программу из кода в одну длииииинную строчку, где все переменные имеют имена от a00000 до z99999, но стоимость сопровождения такого кода он, к сожалению, оптимизировать не может :( Код читается людьми, да и пишется для них же :)

Re: Не все так плохо

Date: 2003-09-06 10:19 am (UTC)
From: [identity profile] arbat.livejournal.com

Эта идея, которую никто не в состоянии усвоить. Писать код - для людей, не для компьютера...

Казалось бы - простая человеческая гордость должна сказать человеку - не оптимизируй операторы, это - ниже твоего достоинства, этим пусть компилятор занимается, он железный. А комментарии и докумeнтация? Из 10 менеджреов 9 сразу скажут, что у нас нету времени писать документацию.

Re: Не все так плохо

Date: 2003-09-07 03:06 am (UTC)
From: [identity profile] dimrub.livejournal.com
Это все для начинающих программистов. Начинающему я всерьез скажу, что на каждый if, в котором нет return, должен быть else. Ибо так проще, чем потом выискивать вшей, вызванных implicit assumption, что if выполнен. Разумеется, опытный программист может сам определить, когда else нужен, а когда - нет.
Page generated Dec. 27th, 2025 04:54 pm
Powered by Dreamwidth Studios