трое суток в раю или краткий дневник разработчика СЕРЁГИН ВЛАДИМИР AKA PEKO Спецвыпуск: Хакер, номер #073, стр. 073-064-2 [месяц второй – все дороги ведут в ад, или о благих намерениях.] Неделя первая. Начли разбираться с Backbase. Страшно понравилась система инклудов - сборки темплейтов на стороне клиента, а также конструктор виджетов – объявление своих компонентов и их поведения: <s:include b:source=”мои-виджеты/красная-супер-кнопка.xml”/> <b:red-super-button b:label=”экземпляр кнопки раз”/> <b:red-super-button b:label=”экземпляр кнопки два”/> Неделя вторая. Переписали под свой дизайн и интерактив все компоненты Backbase. Возникли небольшие сложности с браузерной совместимостью, но их быстро решили. Все здорово и красиво, проект разложен по папочкам и блестит свежими комментариями. Только почему-то не с первого клика срабатывает кнопка «OK», видимо, эвенты не успевают пробраться через дизайн... Неделя третья. Начали писать клинет-side логику. Для большинства задач вообще не нужно писать код – почти все проблемы решаются с помощью XPath, например проверку правильности e-mail можно сделать по ходу верстки: <s:when b:test="@name='email' and not(matches(@value, '^.+@(.+\.)+.{2,4}$'))"> <s:setatt style="background: red; " /> <s:setatt b:valid="false" /> </s:when> Неделя четвертая. IE делает первый предупредительный выстрел. Дизайнер в панике - стоит отключить кэш у этого браузера – вся верстка начинает беситься, дергаться и моргать. Техподдержка Backbase разводит руками, - «Sorry guys, It`s IE bug!». Что означает - это не наша проблема, у эксплорера баг в прогрузке изображений из CSS, а именно - при каждом новом эвенте он забывает, что картинка уже прогружена и грузит ее снова. Откачивали дизайнера два дня. [месяц третий - апокалипсис] Неделя первая. Настроение стремительно ухудшается. Стали поступать живые данные от серверной части проекта. Диспатчер и парсер Backbase явно не справляются с выводом таблицы больше чем на 15 строк. Если кроме таблицы в верстке - еще несколько активных компонентов (поля, кнопки, сворачивающиеся заголовки), то даже в такой таблице начинает страшно тормозить подсветка. Клики проходят только со второй, третьей попытки. Начинается депрессия. Неделя вторая. Оптимизация. Все силы брошены на увеличение производительности проекта. Выкинули и сократили в коде все, что можно сократить и выкинуть. Руководствуясь подсказками техподдержки Backbase, оптимизировали и переписали 50% всего кода. Прогресс минимален. Начали избавляться от структур Backbase в узких местах. Неделя третья. Апокалипсис проекта. Первым не выдержал парсер CSS в IE. Видимо, мы все-таки переступили какую-то недозволенную черту с количеством подключаемых в компонентах Backbase CSS-файлов (всего около 10, по числу наших виджетов). Это привело к совершенно неожиданным спецэффектам - ИЕ начал вылетать с ошибкой выделения памяти, попутно увлекая за собой десктоп операционной системы. Видимо, это дала знать о себе старая проблема со слабым парсером CSS. Неделя четвертая. Живем как на вулкане. Не смотря на то что, изуродовав до неузнаваемости структуру проекта, нам удалось добиться относительной стабильности - от бета-тестеров регулярно приходят сообщения, что время от времени проект продолжает убивать браузер. |