psilogic: (Default)
psilogic ([personal profile] psilogic) wrote2007-01-23 09:10 pm

Торможу

"Программист ставит себе на тумбочку перед сном два стакана. Один с водой – на случай, если захочет ночью пить. А второй пустой - на случай, если не захочет."

Я программист. Смысла онекдота не понимаю :)

Если бы написали так:
"А второй пустой - на случай, если не пить."
- я бы подумал, что намек на поссать. Но тогда при чем тут программист. А так - хз...

Поясните! :)

[identity profile] eugenebo.livejournal.com 2007-01-24 06:00 am (UTC)(link)
Это на более высоком уровне, нежели if...then.

Нужна мне, например, функция F, которая берёт на вход два параметра: массив данных и объект класса, обладающего методами для предварительной обработки (скажем, Фурье-преобразования или сглаживания) этих данных. И F изнутри эти методы будет всячески многократно там вызывать.

Фурье-преобразование можно написать разными способами. И какой конкретно метод будет в жизни использоваться, пока не понятно. Но хочется написать так, чтобы алгоритм F не зависел от конкретной имплементации сглаживания или там преобразования. А между тем уже видно, что функция F по своей натуре должна быть ну такая сложная, что вот прямо неделю отлаживать надо, пока заработает! Что делать?

Одним из способов "развязать" зависимости между F и "поставщиком данных" для неё будет определить F так, что на вход она берёт интерфейс класса, выполняющего сглаживание. Затем быстренько унаследовать от этого интерфейса (можно даже "пустой стакан", который ничего и не делает), и написать и отладить F, подавая на вход текущий вариант класса. А когда F уже "плавать научится", тогда и "воду напустим", создав полную имплементацию интерфейса и дав её на вход. Старую имплементацию интерфейса (равно как и все последующие от 3rd parties) держим на тумбочке на случай, если понадобятся :)

Как я уже сказал, этому приёму возможны альтернативы. Но иногда бывает удобнее всего именно так.

Разумеется, после расшифровки анекдот перестаёт быть смешным, как и всякая разжёванная шутка :)

[identity profile] psilogic.livejournal.com 2007-01-24 09:27 am (UTC)(link)
Нихренаська ты понаписал! :)
Вряд ли попсовый анекдот учитывает такие тонкости.
Но в принципе да, можно пустой стакан понимать как заглушку в коде :)

[identity profile] eugenebo.livejournal.com 2007-01-25 05:46 am (UTC)(link)
Попсовый анекдот, думаю, учитывает стиль мышления, который может порождать подобные конструкции :)

[identity profile] widowmaker1984.livejournal.com 2007-01-24 02:45 pm (UTC)(link)
=))

Если в таком же стиле расшифровать достаточное к-во "анекдотов про программистов", можно из них одних составить практическое пособие...