Работа и управление
XYZ VDR

XYZ VDR

Закрыл очередной проект. Virtual Data Room для XYZ (банк). В целом, проект прошёл неплохо: сроки соблюдены (даже доп. хотелки были добавлены), заказчик молчит (значит, проблем нет).

Из интересного:

  • это первый проект для меня на Zend Framework 2,
  • Doctrine ORM я также до этого не использовал,
  • в админке ещё использовался AngularJS, сильно напомнивший уже знакомые Backbone.js&Underscore.js.

Все вышеописанные технологии ныне являются стандартом в компании, в которой я снова работаю.

VDR был сделан за 1.5 месяца. В команде разработки 2 программиста, 1 верстальщик и 1 дизайнер.

Разработка велась в 2 этапа. На первом:

  1. Создание средств конвертации документов в изображения для последующего постраничного отображения документов на сайте с возможностью увеличения/уменьшения страницы.
  2. Разграничение доступа для пользователей к документам: права на чтение/скачивание документа.
  3. Сами пользователи: логин, профиль, восстановление реквизитов доступа.
  4. Администраторская панель для всего перечисленного.

Второй этап был гораздо интереснее (на этом этапе уже остался только 1 программист):

  1. Кромсаем странички, чтобы нельзя было просто скопировать документ. Да, в DOM всё равно всё собирается всё ОК… Но это уже не зашифровать.
  2. Передаём странички от сервера в виде массива Base64-изображений, дабы не 1000 запросов за страницу было, а всего лишь 1. Первый раз, когда мне пригодился data: URL.
  3. Документ на странице просмотра можно таскать, скроллить (это плюсом к зуму и прочему).

Самым весёлым в этом была миграция между версиями: переконвертация всех документов… Это удовольствие шло на 4-х ядерном процессоре (i3) с 8Гб памяти часов 5.

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

Работа с XYZ оказалась также «интересной». Нужно было поддерживать актуальными версии на 4-х разных компьютерах:

  1. локальном (где ведётся разработка),
  2. git,
  3. наш сервер, который смотрит «в Мир», на котором идёт демонстрация проекта,
  4. внутренний сервер XYZа, где ведётся тестирование их IT-отделом.

Как и ожидалось, в подобных компаниях виртуалки огорожены, программные пакеты протухшие, а админы не проявляют инициативы. Что делать? — большая иерархия, не хочется, чтобы шишки все полетели на тебя.

Зато хотелки не возникают на каждом уровне (нет сверх-инициативных начальников отделов, менеджеров и прочих людей, увеличивающих энтропию) — хотелки были последовательны и, в большинстве, ожидаемы.

В общем, интересный и приятный проект. Что приятно, на этом сотрудничество с данным заказчиком не закончилось — новый проект на подходе.