?

Log in

No account? Create an account

rauf


Блог Алиева Рауфа

О жизни и о себе


Previous Entry Поделиться Next Entry
одна непрострая айтишная задачка
rauf
На прошлой неделе завершил одну мегафазу одного большого мегапроекта. То, что это мегафаза, похоже, кроме меня, еще никто в компании не понимает, потому что спецы делали только маленькие части работы, а все скопом видел и делал только я.



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

И вот эту всю помойку нужно перенести на новый портал. Такой красивый, ровненький и стильный. А тексты.. ну в лучшем случае, это HTML, сгенерированный вордом. Короче, ситуация такая, что как ни крути - все нужно переписывать.

Что предпринято: Первым делом из пяти тысяч оставили чуть менее двух. Большая часть текстов либо не опубликована, либо может быть смело откинута за абсолютно неприемлимым качеством и невозможностью приведения в нормальный вид. Для этого набросал скриптик, который откидывает все неопубликованные на сайте тексты, но имеющиеся в базе. Таких оказалось много. Вообщем, в результате осталось чуть меньше двух тысяч.

Две тысячи - тоже до хрена. Каждый материал если просматривать как минимум по два раза - уйдет очень много времени и сил.

Придумал выход: все списковые материалы - новости и статьи, разбиты на пять частей: первые три каждой новостной ленты или списка, следующие три, следующие пять, следующие пять и все остальные. Чтобы сделать эту разбивку, пришлось попотеть. Дат, например, в списках нет.

Для каждого текста набросана программка, позволяющая прямо с сайта оценивать его качество. Это нужно для того, чтобы на первом этапе из этих 2000 отбросить как минимум половину. Есть поле для комментов, которые потом пригодятся верстальщику.

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

Другой специалист будет работать в другом интерфейсе - будет видеть все материалы со статусом "требует доверстки" и последовательно приводить материалы в порядок. материал перейдет в другой статус и из списка исчезнет.

Теперь самое интересное. Каждый материал представлен в двух видах: чистый HTML и собственно кусок страницы, в чего он превращается в браузере. Сверху есть кнопочки:
  • применить фильтр: (выбрать фильтр)
  • положить в историю изменений
  • извлечь из истории изменений (выбрать)


Фильтры - плагины на перле, которые принимают на вход STDIN текст, применяют к нему регулярные выражения или делапют что-то еще и выбрасывают результат в STDOUT. Такие плагины могут писаться пачками и по ходу проекта и обработки живо меняться, т.к. никак не завязаны на систему, которая их использует. Например, один плагин у меня очищает мусор после вордовского HTML, второй - находит в тексте все ссылки, оформленные в соответствии со стандартом старого сайта и конвертит их в ссылки нового сайта. При этом, кстати, плагином в урле меняются одни ID на другие - для этого делается запрос как в старую базу, так и в новую. Фильтров планируется сделать много - и делать их по ходу. Они очень простые, модифицируются и пишутся за пять минут в зависимости от того, что мы видим в HTML.

Работа верстальщика тут - процесс итеративный. Он применяет те фильтры, в которых видит необходимость, просматривая HTML-текст. По расчетам, на каждый текст у него не должно уходить больше 6-8 минут максимум.
Интерфейс выполнен с активным использованием javascript. Например при этом обработанный текст не запоминается нигде в базе и может быть безопасно поврежден модулем, т.к. в базу сайта он без специальной команды пользователя не записывается.

С понедельника набираю аутсорсеров на оценку текстов (это дней 15 уйдет) и на параллельное и последовательное исправление плохого HTML на хороший. По предложениям стучасться в icq 176606939 или на мыло r.aliev@gmail.com


  • 1
  • 1