Pull to refresh

Конфетки для Валерки

Reading time 3 min
Views 3.4K
конфеткаВы никогда не сталкивались с проблемой как объяснить человеку, неиспорченному общением с железным другом, азы программирования?

Так уж получилось, что мы, работая в компании ГдеЭтотДом (я и anei), относительно часто ходим обедать в МуМу. Остаток от обеда обычно представляет собой фирменную конфетку. Которую мы не едим — вот такое несоответствие типов.

Но мы нашли выход, скармливая их Валерке.
Я, честно говоря, не знаю, причем тут программирование, Валерка и конфетки, но, в общем, однажды…
Подходит Александреску к Валерке и говорит:

Александреску: Валерка конфетку хочешь?
Валерка: Да
проверка условия и установка значения.
После чего Валерка разворачивает конфетку, кушает а фантик выкидывает. Фантик — это декоратор.

Проходит еще неделя, приходит к Валерке Вирт, и говорит:
Вирт: Валерка, конфетку хочешь?
Валерка: Да.
Вирт: А у меня еще есть, хочешь?
Валерка: Да.
Это циклы.
Вирт: А у меня еще есть, хочешь?
Валерка: Да
Вирт: Ан нету :P
Стандартный эксепшен.
Если через несколько секунд опять прибежит Александреску и продолжит кормить Валерку — то будет в итоге стандартное переполнение буфера.
Правда, новомодные технологии спасут вас.

Еще раз приходит Вирт к Валерке, уже с мешком, проверяет, есть ли там конфеты, и, если они есть, говорит:
Вирт: Валерка, конфетку хочешь?
Валерка: Да.
Вирт отдаёт конфетку, проверяет, остались ли в мешке ещё конфеты, и, если остались, снова предлагает конфетку. Это продолжается, пока в мешке есть хоть одна конфета.
Это цикл с предусловием.

Однажды Вирт пришел к Валерке и сказал, что конфет нет. Валера схватил большую палку и ударил Вирта.
— Отдашь конфетку? — грозно спросил он.
— У меня нет, — взвизгнул Вирт.
Но Валерка был неумолим. Он бил Вирта и требовал конфетку, пока тот не сдался. Валерка с удовольствием зачавкал конфеткой.
Такие они, циклы с постусловием.

Вирт уже порядком задолбал Валерку, но ради конфет он готов терпеть и не такое. Поэтому, когда Вирт пришел снова и разложил перед собой конфеты, Валерка выжидательно посмотрел на него. Вирт брал каждую конфетку и говорил:
— Валерка, конфетку хочешь?
— Да, — отвечал Валерка и брал конфетку.
Это совместный цикл или цикл просмотра.

Пришел как-то Вирт к Валерке с конфетками и пересчитал их. Потом он предлагал Валерке по одной конфетке ровно столько раз, сколько насчитал конфет.
Это цикл со счётчиком.

А потом приходит Страуструп и говорит
Страуструп: Валерка, конфетку хочешь?
Валерка: Да
Страуструп: А еще хочешь?
Валерка: Сек, эту дожую
мьютекс

Потом к Валерке приходит Винер и говорит:
Винер: Валерка, конфетку хочешь?
Валерка: Да
Винер: А еще хочешь?
Валерка: Конечно же да
Винер: Но я подожду, покуда ты первую пожуешь
синхронизация потоков

А однажды к Валерке пришел сам Нортон.
Нортон: Валерка, конфетку хочешь?
Валерка: Да
Нортон: Я тебе сразу упаковку дам
Валерка берет и перекладывает из упаковки в миску, после чего начинает кушать.
Это куча. Точнее LIFO. В тоже время процесс прохождения конфетки внутри Валерки, уж простите — FIFO.

А как-то ночью к Валерке пришел кибердемон.
Кибердемон: Валерка хочешь конфетку!!??
Валерка: да в любое время дня и ночи! Буду!
Кибердемон дает Валерке конфетку, от ее разворачивает и… не провел, не провел Валерка валидацию входящих данных.

Мы не будем сейчас рассказывать как Валерку тормознула некая банда четырех в темном переулке и какие конфетки он от них получил, и о том как ему однажды попалась конфетка из Ада — расскажем лучше напоследок сказку о неразменной конфетке!
Ее сколько не давай Валерке — она все время опять появляется.
А даже не знаю что за сказочная конфетка какая — либо это неучтенные референсы, либо просто синглентон.

Данная методика была проверена на моей теще (Валерия) и младшем сыне (Валерка, но он не кушает конфетки, заменим сухарями), и она работает.

image В процессе написания ни один Валерка не пострадал, но и не получил ни единой кофетки. Слава богу топик набрал достаточно балов чтобы обеспечить валерку инвайтом. Так что кэнди-мен теперь среди нас


ПС: Лучшему комментатору — коробку конфет (мск, спб) в виде учебного пособия.



Лучшее из комментариев

(да там почти все лучшее)
anei
Кнут тоже регулярно приносил конфетки Валерке. Но однажды ему надоело ходить в магазин самому, он кликнул мальчишку с улицы и сказал:
— Сбегай-ка ты, друг мой, за конфетой «Коровка» в магазин. Вот тебе деньги.
С тех пор в магазин бегал мальчик.
Мальчик — это функция, название конфеты и деньги — аргументы, конфета — возвращаемое значение.

ThePretender
А, и ещё указатели надо объяснить:

Приходит Ритчи и говорит:
Ритчи: Конфетку будешь?
Валерка: Атож!
Ритчи: Вот тебе бумажка, на ней адрес магазина. Сходишь и купишь себе конфетку.
Это указатель :))

Приходит Валерка по адресу, а там уже не продуктовый магазин, а обувной. Это неправильный каст из-за отсутствия проверки типов.

Приходит Валерка по адресу, и проваливается в тоннель к центру Земли, который выкопали на месте снесённого магазина. Это Access violation.

Приходит Валерка в магазин, и в поисках кондитерского отдела врезается в стену. Это Access violation из-за отсутствия проверки границ массива.

TheShock
Потом к Валерке приходит Билл и говорит:
Билл: Валерка, конфетку хочешь?
Валерка: Да
Валерка взял конфету, очень долго не мог её распаковать, а потом она у него, в самый не подходящий момент, выпала из рук в грязь
это проблемы с кроссбраузерностью (Interner Explorer)
Tags:
Hubs:
+157
Comments 208
Comments Comments 208

Articles