Чего не может быть, того не миновать

Aug 29, 2021 14:04

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

Вот под этим соусом в нашей картографии вдобавок к функции-проверялке "фигура A содержит точки из фигуры B" появились функции "фигура A может содержать точки из фигуры B" и "фигура A не может содержать точки из фигуры B", каждая в двух вариантах разной степени параноидальности и дуракоупорности.

Написал и забыл.

Прошло N лет. Как в "Джуманджи", в начале, когда свежекрашенная дверь с блестящей дверной ручкой превращается в старую-тусклую.

У одного клиента --- диспетчерской службы, координирующей перевозку донорских органов, мелкое недоразумение. В Швейцарии увозить один орган от одного донора приехали четыре бригады из четырёх соседних городов. Лучше, чем если бы никто не приехал, но все равно ведь ошибка. Стали разбираться --- да, ошибка в карте. Но спасла дуракоупорная логика, которую их программист собрал из моих дуракоупорных функций. Если от бригады до нужной точки "может быть" дорога, то добавить её в список кандидатов, а если "есть дорога", то добавить с бОльшим приоритетом. "Да не может такого быть", чтобы в Европе не было однозначно известно, есть между городами дорога или нет, но на всякий случай, если у какой-то бригады одновременно и "есть дорога", и "не может быть дороги", то пусть туда едут все, у кого дорога "может быть", пока хоть один не доедет. Ну вот они и поехали.

А на следующее утро начали звонить картографы. Оказывается, диспетчерская программулина ещё и разослала в несколько офисов письма с просьбой проверить карты.

У меня лучшая работа в мире, потому что у меня лучшие клиенты в мире. Они занимаются самыми разными вещами, но каждый из них в своём деле суперпрофи.

забавное, hcls, rdbms

Previous post Next post
Up