Много непонятных слов и действий...
Dec. 16th, 2009 04:08 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
- Ты вот сидишь, штаны просиживаешь, Интернет уже до дыр зачитал, а нам нужна поддержка PDF в новом сервисе. Дополнительно к уже существующей поддержке XML.
- Сде-е-елаю...
Ну а почему бы и не сделать. Итак, входные данные или PDF, или XML. Процессим, обрабатываем внешними тулзами, сохраняем результат.
Пишу unit test для PDF, убеждаюсь, что он фэйлится.
Дергаю за выступающие части коллегу, чтобы он адаптировал внешние тулзы под процессинг PDFок.
Создаю интерфейс DocumentProcessor. Создаю два класса PdfDocumentProcessor и XmlDocumentProcessor, первый пока пустой, во второй выношу всю функциональность, связанную с XML. Поправляю unit testы, чтобы они работали с новой структурой.
Создаю DocumentProcessorFactory, принимает имя входного файла как параметр, выдает нужный процессор. Меняю сервис, чтобы он использовал factory и processorы. Поправляю unit testы, пишу unit test для factory.
Проверяю - unit test для PDF успешно фэйлится.
Имплементирую логику для процессинга PDF, дело нелегкое, полдня на него грохнул. Проверяю unit test - теперь все работает.
Добавляю изменения, внесенные коллегой во внешние тулзы.
Конфигурирую и запускаю реальный PDF файл в реальной системе. Работает.
Перед коммитом по привычке проверяю изменения. Сравниваю процессор для PDF с процессором для XML. Сравниваю еще раз. И еще. С ужасом убеждаюсь, что никакой разницы между ними нет. Совершенно никакой. Factory выдает совершенно одинаковые объекты-процессоры, только имена разные.
Чешу репу.
Удаляю ВСЕ изменения последнего дня - двух. Абсолютно все изменения.
Запускаю реальный PDF файл в реальной системе. Все работает.
Принимаю решение вечером напиться...
- Сде-е-елаю...
Ну а почему бы и не сделать. Итак, входные данные или PDF, или XML. Процессим, обрабатываем внешними тулзами, сохраняем результат.
Пишу unit test для PDF, убеждаюсь, что он фэйлится.
Дергаю за выступающие части коллегу, чтобы он адаптировал внешние тулзы под процессинг PDFок.
Создаю интерфейс DocumentProcessor. Создаю два класса PdfDocumentProcessor и XmlDocumentProcessor, первый пока пустой, во второй выношу всю функциональность, связанную с XML. Поправляю unit testы, чтобы они работали с новой структурой.
Создаю DocumentProcessorFactory, принимает имя входного файла как параметр, выдает нужный процессор. Меняю сервис, чтобы он использовал factory и processorы. Поправляю unit testы, пишу unit test для factory.
Проверяю - unit test для PDF успешно фэйлится.
Имплементирую логику для процессинга PDF, дело нелегкое, полдня на него грохнул. Проверяю unit test - теперь все работает.
Добавляю изменения, внесенные коллегой во внешние тулзы.
Конфигурирую и запускаю реальный PDF файл в реальной системе. Работает.
Перед коммитом по привычке проверяю изменения. Сравниваю процессор для PDF с процессором для XML. Сравниваю еще раз. И еще. С ужасом убеждаюсь, что никакой разницы между ними нет. Совершенно никакой. Factory выдает совершенно одинаковые объекты-процессоры, только имена разные.
Чешу репу.
Удаляю ВСЕ изменения последнего дня - двух. Абсолютно все изменения.
Запускаю реальный PDF файл в реальной системе. Все работает.
Принимаю решение вечером напиться...
no subject
Date: 2009-12-16 02:15 pm (UTC)какая жизнь у некоторых людей интересная
Date: 2009-12-16 07:49 pm (UTC)