06 апреля 2024 года, 10:21

Написал подробную статью об одном интересном опыте на одном из проектов. Мне нужно было разобрать логику большого эксель файла — там несколько сотен довольно сложных формул, и работал он так: менеджер вводил с десяток параметров на одной вкладке, и все остальные были готовы для печати сметы для клиента. Там довольно сложная специфика и сложные товары, с массой особенностей типа с таким-то товаров должен идти такой-то сервис, а вот тут нужно умножать на два если там четыре. Никто у клиента до конца это не понимал, оно просто работало больше десяти лет, и все эти десять лет люди по чуть-чуть подправляли там логику, в пределах своего понимания. Документации не было, но даже если бы была, она бы только мешала, потому что сделанное потом по документации наверняка бы не билось с тем, что выдает Excel, и избежать реинженеринга все равно не удалось бы.

Я тогда поломал голову, как сделать этот реинжиниринг возможным в конечное время, исчисляемое единицами недель, и придумал решение, основанное на функциональном программировании на Groovy.

Публикую подробный разбор решения и репозиторий с кодом. Код пришлось написать с нуля для статьи, как и придумать эксель для демонстрации (в сотни раз проще того).

https://hybrismart.com/2024/04/06/how-i-reverse-engineered-huge-excel-file-full-of-complex-formulas/

https://hybrismart.com/2024/04/06/how-i-reverse-engineered-huge-excel-file-full-of-complex-formulas/

Оставьте комментарий