Закрыл очередной проект. Virtual Data Room для XYZ (банк). В целом, проект прошёл неплохо: сроки соблюдены (даже доп. хотелки были добавлены), заказчик молчит (значит, проблем нет).
Из интересного:
- это первый проект для меня на Zend Framework 2,
- Doctrine ORM я также до этого не использовал,
- в админке ещё использовался AngularJS, сильно напомнивший уже знакомые Backbone.js&Underscore.js.
Все вышеописанные технологии ныне являются стандартом в компании, в которой я снова работаю.
VDR был сделан за 1.5 месяца. В команде разработки 2 программиста, 1 верстальщик и 1 дизайнер.
Разработка велась в 2 этапа. На первом:
- Создание средств конвертации документов в изображения для последующего постраничного отображения документов на сайте с возможностью увеличения/уменьшения страницы.
- Разграничение доступа для пользователей к документам: права на чтение/скачивание документа.
- Сами пользователи: логин, профиль, восстановление реквизитов доступа.
- Администраторская панель для всего перечисленного.
Второй этап был гораздо интереснее (на этом этапе уже остался только 1 программист):
- Кромсаем странички, чтобы нельзя было просто скопировать документ. Да, в DOM всё равно всё собирается всё ОК… Но это уже не зашифровать.
- Передаём странички от сервера в виде массива Base64-изображений, дабы не 1000 запросов за страницу было, а всего лишь 1. Первый раз, когда мне пригодился data: URL.
- Документ на странице просмотра можно таскать, скроллить (это плюсом к зуму и прочему).
Самым весёлым в этом была миграция между версиями: переконвертация всех документов… Это удовольствие шло на 4-х ядерном процессоре (i3) с 8Гб памяти часов 5.
Таки, миграция — крайне неприятный процесс в разработке. Он уступает только, разве что, ситуациям, когда клиент не знает, что он хочет.
Работа с XYZ оказалась также «интересной». Нужно было поддерживать актуальными версии на 4-х разных компьютерах:
- локальном (где ведётся разработка),
- git,
- наш сервер, который смотрит «в Мир», на котором идёт демонстрация проекта,
- внутренний сервер XYZа, где ведётся тестирование их IT-отделом.
Как и ожидалось, в подобных компаниях виртуалки огорожены, программные пакеты протухшие, а админы не проявляют инициативы. Что делать? — большая иерархия, не хочется, чтобы шишки все полетели на тебя.
Зато хотелки не возникают на каждом уровне (нет сверх-инициативных начальников отделов, менеджеров и прочих людей, увеличивающих энтропию) — хотелки были последовательны и, в большинстве, ожидаемы.
В общем, интересный и приятный проект. Что приятно, на этом сотрудничество с данным заказчиком не закончилось — новый проект на подходе.