Кирилл Данилов (donz_ru) wrote,
Кирилл Данилов
donz_ru

Category:

Основные недостатки ZKoss

Решил упорядочить, чтобы не писать по новой, когда снова спросят.

1)Фреймворк заточен на то, чтобы абсолютно любое действие пользователя летело на сервер, где и обрабатывалось бы. Банальный дизейбл/енейбл элементов в зависимости от состояния чекбокса очень трудно и через ж... сделать яваскриптом. При этом приходится использовать конструкции action=" onchange: setSomeFields( \#{self}, \#{idTextBox} ) ". Если нужно отслеживать, что пользователь вводит в инпуте, то событие по вводу нового символа стучится на сервер.
2)Парсинг ZK превращает страницу в полный п. Идентификаторы контролов не сохраняются. Так что для работы с ними из ява скрипта надо писать что-то вроде document.getElementById( idTextBox ).childNodes[0].childNodes[0], где idTextBox - хитрым способом переданный в яваскрипт параметр.
3)Фреймворк очень располагает программистов к захреначиванию ява-кода в в страницы. Одна из страничек в проекте содержала четыре разных языка: jsp, javascript, java и zul (птичий язык ZKoss'а)
4)Для некоторых банальных вещей не сделана поддержка динамических параметров (под динамическими подразумеваю параметры, которые могут обновляться через AJAX-запросы)
5)Крайне хреновая документация, размазанная по нескольким Javadoc, туториалу, small talks, developer's guide, developer's reference и форуму. Причем в своей статье, как делать то или иное, могут запросто дать ссылку на тему в форуме, где это обсуждалось, и даже не скопировать в статью саму суть.
6)Свой птичий язык ZUL, который по идее должен был заменить JSP, но не имеет банальных тегов if, которые бы не были завязаны на контроле. Причем если для конкретного контрола можно задать условие, то оно не может быть вычисляемым и динамическим (насчет динамики, правда, не уверен). То есть банальное if="${!someBoolField}" не прокатит. Надо заводить отдельное поле notSomeBoolField и писать if="${notSomeBoolField}". Возможности сравнить значение поля с числом, соответственно, нет.
7)Возможно этот пункт относится ко всем фреймворкам с сохранением состояния. Но конкретно с ZK была проблема, что делать, если пользователь открывает ссылки в новых окнах/закладках? Состояние хранится для конкретной страницы. Можно увеличить количество хранимых состояний страниц, но что делать, если пользователь откроет N+1 страницу?
8)Не совсем явная интеграция со Spring и JSP.

Если знаете, что какой-то пункт ошибочный, то, плз, пишите. Не стесняйтесь.
Tags: it, java, zkoss
Subscribe

  • Ода Lenovo

    По картинке уже, наверное, поняли, о чем будет речь. В одну прекрасную субботу я налил в кружку пива, собрался выяснить, кто там…

  • Нафига 14-дюймовому дисплею 4К?

    Новый ноут оказался с 4K экраном. Не то, чтобы он мне нужен - на 14 дюймах совершенно пофиг QHD будет, 4К или даже старый добрый…

  • Работник VS работодатель в IT на примере Яндекса

    Наткнулся на две статьи об одном и том же: отношение работодателя и работника. Первая - взгляд работника. Вторая явно с точки…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments