Какой правильный подход для запуска приложения GWT? - PullRequest
10 голосов
/ 01 ноября 2010
  1. Разработать ли базовый каркас HTML и начать с него, вставляя компоненты и действия через код Java?

  2. Планируете построить все это как Java-программу, проектируя мельчайшие детали с использованием кода Java?

  3. Или есть лучший способ, о котором я не знаю?

Кроме того, насколько легко или сложно поддерживать код?

Я новичок в GWT и знаю самые основы.

Заранее благодарим за ваш вклад.

Ответы [ 2 ]

4 голосов
/ 01 ноября 2010

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

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

  1. Запрос функции: содержит описание требуемой функциональности на высоком уровне

  2. Wire Frames: пользовательский интерфейс высокого уровня, который дает первое представление о том, как функциональность будет предоставлена ​​конечному пользователю и как она интегрирована в существующее приложение (без каких-либо звонков).и свистит)

  3. Окончательный дизайн: окончательный расширенный пользовательский интерфейс новой функции, созданной нашим дизайнером (только в фотошопе, без HTML-скелета, без CSS)

  4. Внедрение и тестирование: я сосредоточусь на реализации и опишу, как она изменилась за один год

Мы началипроект с GWT 1.6, в котором отсутствует поддержка UiBinder .Поэтому было принято решение: 1) собрать всю клиентскую часть нашего приложения с помощью GWT (т. Е. Java-кода) или 2) построить наши страницы с помощью JSF (поскольку мы используем Seam) и расширить их с помощью виджетов GWT.Мы решили пойти по второму варианту главным образом потому, что нам понравилась идея передать большую часть состояния клиентам и позволить им выполнять обработку.И делать все в java было многообещающе с нашим большим опытом в разработке java.

Реализация бизнес-логики не была проблемой вообще.Больше всего времени у нас заняло создание пользовательского интерфейса: составление макета страниц и их оформление в java отнимает много времени и подвержено ошибкам.Разрыв между конечным html (на основе дизайнов из шага 3) и виджетами GWT был слишком велик.

Переход на UiBinder был первым шагом, который мы сделали, когда была выпущена версия GWT 2.0.Так как нам все равно пришлось переделывать большую часть нашего клиентского кода, мы также адаптировали шаблон MVP .После этого значительно возросла производительность: один разработчик внедрял бизнес-логику (в основном, часть представления MVP), в то время как другой занимался созданием части представления (.ui.xml и виджета). Модульное тестирование также стало более простым, потому что основные функции теперь были хорошо разделены в части докладчика (а GWTTestCase был частью прошлого).

Следующий важный шаг, который мы сейчас делаем, этоперейти от собственной реализации MVP к более сложной (а именно gwt-platform ).Обоснование этого решения: DI через GIN (зависимости ясны, а код становится чище), хорошая поддержка истории браузера (мы безрассудно пренебрегли ею - огромная ошибка!), Поддержка разделения кода, шаблон команд для асинхронных вызовов и некоторые другие.

Мой вывод после одного года опыта: используйте UiBinder для пользовательского интерфейса и переходите к чистой архитектуре MVP.Кривая обучения может быть крутой, но идти по тому же пути, что и у многих разработчиков GWT, у вас определенно больше времени.

... мои 2 цента:)

2 голосов
/ 01 ноября 2010

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

Легко сделать, это реализовать функцию, а затем создать интерфейс, соответствующий этой реализации, но выкак правило, в конечном итоге с чем-то, что не так приятно использовать.Возможно, вы захотите рассмотреть и свою модель данных / схему БД, но не попадайтесь в ловушку создания неуклюжего приложения CRUD, как и многие другие разработчики.

GWT-код довольно удобен в обслуживании, что, безусловно, больше, чем попыткипостроить кроссплатформенное веб-приложение без него по моему опыту.Вам следует взглянуть на google-gin и, возможно, gwt-mvp , они помогут сохранить ваш код модульным и простым в тестировании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...