трое суток в раю или краткий дневник разработчика СЕРЁГИН ВЛАДИМИР AKA PEKO Спецвыпуск: Хакер, номер #073, стр. 073-064-4 <tpl:BottomMenu/> </mx:VBox> </mx:Application> Собственно, это почти весь проект! Точно так же выглядело то, что мы пытались заставить работать с помощью дорогого навороченного аякс фрейм-ворка Bаckbase – три изнурительных месяца. * <mx: … > пространство имен родных flex-компонентов * <tpl: … > мое пространство имен под функциональные темплейты (xml’ки в папке tpl) * <loc: … > мое пространство имен под структурные темплейты (xml’ки в папке loc) Конечно, вещи вроде <tpl:AuthorizationForm /> тоже нужно описать, но они по объему зачастую меньше приведенного здесь отрывка. На досуге (пока закипал чайник) зачитался документацией – чайник выкипел. [сутки вторые – компоненты и CSS] После двухчасового сна тело само подскочило и потянулось к клавиатуре реализовывать приснившиеся идеи. Приступил к клиент-сайд логике, попутно имитируя дизайн основного проекта (на стабильную кросс-браузерную верстку которого наш дизайнер убил полтора месяца жизни и килограммы драгоценных нервных клеток). Через 16 часов под аккомпанемент «VoodoPeople» был закончен последний «гламурный» виджет (всего их в проекте около десятка – кнопочки, окошки и прочая интерактивная GUI-ерунда со сложным и не очень поведением). Настало время цеплять реальные данные из базы. Но надо вздремнуть – мониторы слились в два мутных пятна. [третьи сутки – экспоненциальная эйфория] Начал с самого больного места aякса – таблиц. - 10 записей - никаких проблем, все в порядке, с этим справляется даже aякс; - 50 записей – (здесь Backbase издох) - никаких изменений в работе; - 100 записей – не вижу разницы; - 300 записей – ноль реакции, все в порядке; - 1000 записей! – MySQL задумался на 1.5 секунды, возвращая запрос. В скорости работы - никаких изменений! - Две таблицы по 3000 записей в каждой - задержка запроса 3 секунды, скроллбар сжался в черточку, в остальном - вообще не вижу разницы по сравнению с таблицей с 10 записями, сортировка работает практически мгновенно. В шоке от контрастов, дышу свежим воздухом у форточки. Отдышавшись, начинаю переписывать серверный API под flex, попутно выкидывая весь бэкбейсовский мусор. Наверное, со стороны я похож на изголодавшуюся пиранью, случайно оказавшуюся в аквариуме с золотыми рыбками - воздух вокруг кипит. К утру третьих суток была готова полнофункциональная, идеально работающая флеш-версия проекта, включающая наброски запланированных, но таки и не реализованных в корневом проекте фич. Осталась одна небольшая проблема – по ТЗ в этом проекте нет флеша, только аякс… Курим… [общие впечатления.] Браузеры не готовы самостоятельно и в полном масштабе взять на себя задачи, решаемые при разработке RIA. И основная причина, на мой взгляд, в том, что на плечи JavaScript machine свалена непосильная нагрузка. Несмотря на то, что ходят слухи о выпуске Майкрософтом вместе с IE 7 новой ускоренной JSM ява скрипт, а, следовательно, Фреймворки, основанные на аяксе, подобны экскаваторам из фанеры, - красивы и эффектны, но только до первой траншеи. Скорость встроенных в браузеры XML-парсеров также оставляет желать лучшего, даже обвешанные XPath, XSLT и прочими X-игрушками, своей неполной (и зачастую отличной в разных браузерах) реализацией они не сколько облегчают, сколько усложняют решение конкретной прикладной задачи. |