Использовать ClientBundle в большом корпоративном приложении? - PullRequest
7 голосов
/ 08 ноября 2011

Мы создаем большое корпоративное приложение (десятки модулей) с GWT и должны решить, использовать ли ClientBundle или нет.Мне было любопытно, что плюсы / минусы сообщества StackOverflow GWT рассматривают как лиц, заключающих сделки и ограничивающих сделки для такого случая использования.

Насколько мы видим это в настоящее время:

Плюсы

  • Все файлы изображений / css, которые занимают ресурсы сервера для загрузки, удаляются
  • Клиент загружается быстрее из-за вышеизложенного (то есть встроенные URL-адреса изображений)
  • CSSимена запутываются, поэтому устраняются коллизии пространства имен
  • CSS автоматически оптимизируется / проверяется
  • Устраняются неиспользуемые классы CSS (см. выше)
  • Ссылка Java на имена классов заменяется на рефакторируемыеинтерфейсы css
  • Ссылка UiBinder на имена классов заменена рефакторимыми интерфейсами css
  • Больше не происходит больших "main.css", так как ресурсы зависят от комплекта модуля

Минусы

  • Для обслуживания CSS становится либо нечитаемым в режиме запутывания, либо чрезвычайно многословным в режиме отладки
  • Требуются дополнительные шаги дляr базовая работа с CSS (например, добавление класса)
  • Все разработчики должны знать нюансы Java, CSS, HTML
  • CSS3 и другие at-правила (например, @ font-face) не поддерживаются GWT изначально
  • Увеличено время компиляции

Спасибо!

Ответы [ 2 ]

8 голосов
/ 08 ноября 2011

Я активно использую клиентский пакет в m-gwt .

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

В основном все правила CSS3 могут использоваться в ClientBundle с помощью литеральной функции, так что все должно быть в порядке. Это немного обманывает запросы @media. Вы можете внедрить CSS как простой текстовый ресурс в качестве обходного пути, но это выглядит ужасно.

Когда вы говорите о нескольких модулях gwt, рассмотрите возможность использования нескольких клиентских пакетов, чтобы вы могли по-прежнему использовать точки разделения, чтобы контролировать размер загружаемого файла (в зависимости от размера ваших файлов .js)

Я использовал клиентские пакеты в нескольких больших приложениях gwt, и для меня поддержка проверки времени и рефакторинга во время компиляции превосходит маленькие странности, которые все еще находятся в клиентских пакетах.

2 голосов
/ 08 ноября 2011

Всего две дополнительные заметки:

  • В GWT доступна утилита , которая позволяет автоматически создавать интерфейсы для ваших CSSResources
  • Это правда, что стили отладки могут быть немного громоздкими из-за запутанных имен. Я имел хороший успех, используя Firebug для изменения стилей в dev-режиме прямо в браузере, и когда я доволен, я изменяю их в своем приложении GWT.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...