LINUX.ORG.RU

История изменений

Исправление WitcherGeralt, (текущая версия) :

Разрабатывал я информационную систему для МВД. Было 2 legacy API, старое из разрозненных сервисов и новое, тоже кривое и неконсистентное, которое нужно было переделать. Там и там были отчёты, в старом они были зардкожены, в новом еле рабочие на убогих шаблонах, заполняемых через headless либру. Новые долгое время доводили до ума, переделывая агрегацию в БД, борясь то с либрой, то с библиотеками, то с заказчиками, у которых отчёты не бились с их кривыми внутренними, и от которых приходила единственная формулировка «не работает», а ничего внятного добиться не получалось. В один прекрасный момент всё заработало и всех всё устроило.

Некоторое время спустя мы запланировали переезд на новые сервера, а заодним и апгрейд со старой системы, работавшей на 32-битном SLES и практически непригодной для поддержки, на новую, работавшую на Astra Linux. Разумеется, предварительно убедившись, что старыми сервисами никто не пользуется, а всё клиентское ПО будет синхронно обновлено. Успешно обновили, перенесли данные, всё прекрасно заработало. Через пару недель техподдержка получила обращение о том, что отчёты опять «не работают» и всё пропало. Позже выяснилось, что «инженер» заказчика запилил свои отчёты на базе отчётов из старого API, которое, на минуточку, отдавало вовсе не машиночитаемые данные, а XLS. У него было два документа с таблицами, частично заполняемыми вручную, и макросами, макросы парсили отчёты, отдаваемые старым API, и обновляли таблицы, затем третий документ, в свою очередь, парсил первые два и делал общий большой отчёт, которым пользовался весь департамент. Инженер за несколько месяцев до этого уволился. Oh, shit. Наш отчётер такие сложные документы генерировать не мог даже близко, ибо этого никогда и не просили, а старое API впринципе нельзя было завести на новой систепе, да и мы совсем не хотели этого делать. Новые отчёты были резко переделаны так, чтобы таблицы по структуре в точности совпадали со старыми, а эпичные write-only макросы с тучей хардкода путём лютого пердолинга были пофикшены. Как казалось. Но в итоге нормально оно всё равно не заработало, ибо третий документ теперь не мог прохавать первые два.

Пришлось выбросить и переписать вообще всё. Но это уже совсем другая история. Цирка и коней было не меньше, только уже с согласованием шаблонов и шлангами-юзерами, которые свои же формы не осиливали правильно читать.

Исправление WitcherGeralt, :

Разрабатывал я информационную систему для МВД. Было 2 legacy API, старое из разрозненных сервисов и новое, тоже кривое и неконсистентное, которое нужно было переделать. Там и там были отчёты, в старом они были зардкожены, в новом еле рабочие на убогих шаблонах, заполняемых через headless либру. Новые долгое время доводили до ума, переделывая агрегацию в БД, борясь то с либрой, то с библиотеками, то с заказчиками, у которых отчёты не бились с их кривыми внутренними, и от которых приходила единственная формулировка «не работает», а ничего внятного добиться не получалось. В один прекрасный момент всё заработало и всех всё устроило.

Некоторое время спустя мы запланировали переезд на новые сервера, а заодним и апгрейд со старой системы, работавшей на 32-битном SLES и практически непригодной для поддержки, на новую, работавшую на Astra Linux. Разумеется, предварительно убедившись, что старыми сервисами никто не пользуется, а всё клиентское ПО будет синхронно обновлено. Успешно обновили, перенесли данные, всё прекрасно заработало. Через пару недель техподдержка получила обращение о том, что отчёты опять «не работают» и всё пропало. Позже выяснилось, что «инженер» заказчика запилил свои отчёты на базе отчётов из старого API, которое, на минуточку, отдавало вовсе не машиночитаемые данные, а XLS. У него было два документа с таблицами, частично заполняемыми вручную, и макросами, макросы парсили отчёты, отдаваемые старым API, и обновляли таблицы, затем третий документ, в свою очередь, парсил первые два и делал общий большой отчёт, которым пользовался весь департамент. Инженер за несколько месяцев до этого уволился. Oh, shit. Наш отчётер такие сложные документы генерировать не мог даже близко, ибо этого никогда и не просили, а старое API впринципе нельзя было завести на новой систепе, да и мы совсем не хотели этого делать. Новые отчёты были резко переделаны так, чтобы таблицы по структуре в точности совпадали со старыми, а эпичные write-only макросы с тучей хардкода путём лютого пердолинга были пофикшены. Как казалось. Но в итоге нормально оно всё равно не заработало, ибо третий документ теперь не мог прохавать первые два.

Пришлось выбросить и переписать вообще всё.

Исходная версия WitcherGeralt, :

Разрабатывал я информационную систему для МВД. Было 2 legacy API, старое из разрозненных сервисов и новое, тоже кривое и неконсистентное, которое нужно было переделать. Там и там были отчёты, в старом они были зардкожены, в новом еле рабочие на убогих шаблонах, заполняемых через headless либру. Новые долгое время доводили до ума, переделывая агрегацию в БД, борясь то с либрой, то с библиотеками, то с заказчиками, у которых отчёты не бились с их кривыми внутренними, и от которых приходила единственная формулировка «не работает», а ничего внятного добиться не получалось. В один прекрасный момент всё заработало и всех всё устроило.

Некоторое время спустя мы запланировали переезд на новые сервера, а заодним и апгрейд со старой системы, работавшей на 32-битном SLES и практически непригодной для поддержки, на новую, работавшую на Astra Linux. Разумеется, предварительно убедившись, что старыми сервисами никто не пользуется, а всё клиентское ПО будет синхронно обновлено. Успешно обновили, перенесли данные, всё прекрасно заработало. Через пару недель техподдержка получила обращение о том, что отчёты опять «не работают» и всё пропало. Позже выяснилось, что «инженер» заказчика запилил свои отчёты на базе отчётов из старого API, которое, на минуточку, отдавало вовсе не машиночитаемые данные, а XLS. У него было два документа с таблицами, частично заполняемыми вручную, и макросами, макросы парсили отчёты, отдаваемые старым API, и обновляли таблицы, затем третий документ, в свою очередь, парсил первые два и делал общий большой отчёт, которым пользовался весь департамент. Инженер за несколько месяцев до этого уволился. Oh, shit. Наш отчётер такие сложные документы генерировать не мог даже близко, ибо этого никогда и не просили, а старое API впринципе нельзя было завести на новой систепе, да и мы совсем не хотели этого делать. Новые отчёты были резко переделаны так, чтобы таблицы по структуре в точности совпадали со старыми, а эпичные write-only макросы с тучей хардкода путём лютого пердолинга были пофикшены. Как казалось. Но в итоге нормально оно всё равно не заработало, ибо третий документ теперь не мог прохавать первые два.

Пришлось выбросить и переписать вообще всё. Но это уже совсем другая история, с цирком и конями. И она уже не такая интересная.