Чтение онлайн

на главную - закладки

Жанры

Записки автоматизатора. Профессиональная исповедь

Орлов Андрей Юрьевич

Шрифт:

– Ты издеваешься?

– Нет, я серьезно.

– Хорошо.

Я в раздражении швыряю трубку, открываю текст задания и… задумываюсь. На всякий случай лезу в Интернет, потом благодарю Бога, что у меня есть умный и спокойный программист, и записываю в задании:

ДРОБН:= А – ЦЕЛОЕ (А)

ЕСЛИ ДРОБН < 0,25 ТО ДРОБН:= 0

ИНАЧЕ ЕСЛИ ДРОБН < 0,75 ТО ДРОБН:= 0,5

ИНАЧЕ ДРОБН:= 1

ОКРУГЛ05 (А) = ДРОБН + ЦЕЛОЕ (А)

Дело в том, что не существует никакого «общего» способа округления до полтинников. Его нужно было записать в задании явно.

Что я и сделал самым понятным для программиста способом.

Про дополнительное оборудование (история, рассказанная Александром Ройзнером за 15 лет до предыдущей). Мы пытались формализовать действия, которые во время поездки должен совершать машинист локомотива, чтобы в дальнейшем правильность этих действий оценивала автоматизированная система. По этому поводу с начальником одного из локомотивных депо произошел следующий диалог:

– По правилам при проверке тормозов нужно после появления тормозного эффекта и снижения скорости на 10 км/ч в грузовом груженом, грузопассажирском, пассажирском поезде и на 4-6 км/ч в грузовом порожнем поезде произвести отпуск тормозов. Снижение скорости мы определить можем. А как определить «эффект торможения»?

– А эффект торможения каждый машинист задницей чувствует.

– Значит, нам надо включить в измерительную систему задницу?

Кстати, прекрасные образцы для подражания в постановке задач имеются в Книге Левит Ветхого Завета:

«скажите сынам Израилевым: вот животные, которые можно вам есть из всего скота на земле:

всякий скот, у которого раздвоены копыта и на копытах глубокий разрез, и который жует жвачку, ешьте;

только сих не ешьте из жующих жвачку и имеющих раздвоенные копыта: верблюда, потому что он жует жвачку, но копыта у него не раздвоены, нечист он для вас;

и тушканчика, потому что он жует жвачку, но копыта у него не раздвоены, нечист он для вас,

и зайца, потому что он жует жвачку, но копыта у него не раздвоены, нечист он для вас;

и свиньи, потому что копыта у нее раздвоены и на копытах разрез глубокий, но она не жует жвачки, нечиста она для вас» (Левит 11: 2–7).

Вот настоящий пример Божественной формализации: сначала описано общее правило, а потом еще дано несколько примеров, подтверждающих, что в общем правиле условия, подлежащие проверке, соединены логическим «и», а не «или».

Оставьте здравый смысл дома

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

При описании бизнес-процессов фантазия постановщика становится очень большим недостатком. Правило здесь есть только одно, но оно не допускает отклонений.

Если какие-то части бизнес-процесса вам не известны точно, то их нужно узнать, а не выдумать.

Здравый смысл и логику в такие моменты лучше оставлять дома. Иначе в системе будут реализованы решения красивые, логичные, но абсолютно не соответствующие

реальности.

«По логике вещей это должно быть так». По логике, может, и так, но кто вам сказал, что бизнес-процессы подчиняются хоть какой-то логике? А если логика и есть, то она совершенно не обязана быть айтишной, аристотелевой или даже женской. Самое ужасное, что бизнес-процесс создается совместными стараниями людей, может быть, и разумных, но преследующих самые разные цели. Есть закон, основанный на думной логике, подзаконные акты, основанные на смеси нескольких ведомственных логик (к примеру, налоговой, милицейской и железнодорожной), бизнес-правила ваших крупных контрагентов, которые вы не в состоянии поменять или не применять, жгучее желание вашего хозяина, противоречащее не менее жгучему желанию его компаньона, а напоследок ограничение по количеству кнопок, на которые младший бухгалтер может нажать, не ошибаясь слишком часто.

Вот может измениться сумма денег в зависимости от количества накладных, по которым продан товар? «По логике вещей» нет.

А теперь возьмите карандаш и запишите варианты, в которых это не так, исходя из вашего опыта, не поглядывая в то, что я написал ниже.

Теперь давайте сравним.

Округлениестоимости по каждой из двух накладных даст не тот же результат, что округление по одной накладной.

Фиксированная сумма на накладную: за оформление и/или доставку одного заказа берется фиксированная плата. Если накладных две, то эту сумму возьмут дважды.

Скидки, зависящие от позиции товара в накладной. Правила розничной продажи могут включать скидки, зависящие и от общей стоимости покупки, и от количества предметов в покупке, и даже от порядка следования строк в накладной («при покупке на сумму свыше 1000 рублей скидка 3 %», «купите два товара и получите третий бесплатно», «на второй товар скидка 5 %, на третий – 10 %, на четвертый и последующие – 15 %» и т. д.).

Рассчитываемая стоимость доставки: в сумму накладной включена стоимость перевозки товара. Тут Кафка отдыхает.

Вот выдержка из правил расчета стоимости перевозки мелких отправок железнодорожным транспортом:

«Минимальный расчетный вес отправки 10 кг. При исчислении провозной платы масса груза до 1000 кг округляется до полных 10 кг, а масса груза свыше 1000 кг округляется до полных 100 кг.

Количество груза определяется в м3, если масса 1-го м3 груза менее 200 кг.

Объем груза округляется до 0,05 м3».

Теперь вам понятно, что стоимость доставки 6 кг груза по двум накладным будет ровно в два раза больше, чем по одной, а вот стоимость доставки 1010 кг по одной накладной будет больше, чем по двум накладным на 500 и 510 кг.

Еще интереснее случай перевозки пенопластовых блоков и чугунных гирь. Включив и то и другое в одну накладную, вы заплатите за вес перевозимого, а оформив две накладные, за чугун будете платить по весу, а за пенопласт – по объему.

А теперь рассмотрим еще один вопрос.

Поделиться:
Популярные книги

Генерал Империи

Ланцов Михаил Алексеевич
4. Безумный Макс
Фантастика:
альтернативная история
5.62
рейтинг книги
Генерал Империи

Приручитель женщин-монстров. Том 1

Дорничев Дмитрий
1. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 1

Виконт. Книга 1. Второе рождение

Юллем Евгений
1. Псевдоним `Испанец`
Фантастика:
фэнтези
боевая фантастика
попаданцы
6.67
рейтинг книги
Виконт. Книга 1. Второе рождение

Идеальный мир для Лекаря 25

Сапфир Олег
25. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 25

Магия чистых душ 3

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Магия чистых душ 3

Шипучка для Сухого

Зайцева Мария
Любовные романы:
современные любовные романы
8.29
рейтинг книги
Шипучка для Сухого

Метатель. Книга 2

Тарасов Ник
2. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель. Книга 2

Отмороженный 5.0

Гарцевич Евгений Александрович
5. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный 5.0

Кодекс Охотника. Книга XIII

Винокуров Юрий
13. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XIII

Деспот

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Деспот

Огненный князь 6

Машуков Тимур
6. Багряный восход
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 6

Ваше Сиятельство 5

Моури Эрли
5. Ваше Сиятельство
Фантастика:
городское фэнтези
аниме
5.00
рейтинг книги
Ваше Сиятельство 5

"Фантастика 2024-5". Компиляция. Книги 1-25

Лоскутов Александр Александрович
Фантастика 2024. Компиляция
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Фантастика 2024-5. Компиляция. Книги 1-25

Поступь Империи

Ланцов Михаил Алексеевич
7. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Поступь Империи