Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GWT. Согласование серверной и клиентской частей, Интересует оптимальный подход. 
:(
    Опции темы
opeg
Дата 6.10.2009, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 6.10.2009

Репутация: нет
Всего: нет



Доброго времени суток.

Я изучаю java а именно GWT
В процессе согласования серверной и клиентской частей у меня возник вопрос, как это сделать более оптимально.

Как один из вариантов можно наплодить нужное количество сервисов и незаморачиваться.

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

Я начал делать класс в функции которого входит помнить зарегистрированные классы, и в зависимости от способа обращения отдавать на растерзание объект соответствующему классу/методу.

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

Это сообщение отредактировал(а) opeg - 6.10.2009, 14:54
PM MAIL   Вверх
ivanovpv
Дата 6.10.2009, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 2
Всего: 28



Цитата(opeg @  6.10.2009,  14:53 Найти цитируемый пост)
Я изучаю java а именно GWT

Странный выбор для изучения Java... Достаточно специфический фреймворк скажем так... Уже одно то, что клиентская часть пишется на Java, которая затем транслируется в JavaScript - ну как то сразу понимаешь, что это уже урезанная Java. Ну да ладно - выбрали так выбрали.

Цитата(opeg @  6.10.2009,  14:53 Найти цитируемый пост)
После того как я начал это писать я вспомнил, java славится большим количеством уже написанного кода, который надо просто использовать. Может кто-нибудь уже решал подобную задачу и может подсказать куда смотреть.


Да, есть такая штука - называется MVC (Model - View - Controller). В вашем случае View - это та самая клиентская часть, которая по сути уже разделена от остальных частей. Model - это некая бизнес-логика на серверной части, ну а Controller - это как раз та самая прослойка которую вы уже начали собирать.

Будь бы это не GWT - я бы порекомендовал вам тучу библиотек и кода реализующего MVC, но поскольку вы уж выбрали специфический тул - то тут нечего и сказать то. Погуглите с ключевыми словами "GWT MVC" - может и найдете чего (хотя вряд ли).

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




--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
COVD
Дата 6.10.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Цитата

Как один из вариантов можно наплодить нужное количество сервисов и незаморачиваться.

Для системы, находящейся в эксплуатации, это и есть лучший вариант. Простые независимые сервисы проще модифицировать, перезапускать без заметного ущерба для функционирования всей системы, дублировать, передвигать на другие компьютеры.  
PM MAIL   Вверх
opeg
Дата 6.10.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 6.10.2009

Репутация: нет
Всего: нет



Благодарю за комментарии.

Я окончательно ещё не определился с GWT. Мне нужен богатый ajax интерфейс и с GWT + smartGWT это в первом приближении достаточно просто достигается.
При использовании связки GWT + smartGWT есть очень большой недостаток, точнее 2, это колоссальный размер приложения (более 2МБ) и невероятно большое количество запросов (сотни запросов) даже при весьма скромной функциональности приложения (регистрационная форма, форма восстановления пароля, логин форма — все формы до безобразия простые, просто примитивные, ничего лишнего).

Как вариант можно конечно смотреть в сторону js библиотек, меня сдерживает только желание забыть состояние «HTML/CSS руками». Несмотря на то что я с web достаточно хорошо знаком, хочется верить что GWT от этого спасёт.

В HTML/CSS — я не вижу ничего плохого, просто хочу не спускаться на уровень конструирования отдельных элементов интерфейса, которые уже кто-то достаточно хорошо сконструировал. К тому же если есть возможность остаться в рамках одно ЯП понятного многим и при этом упростить разработку, то как мне кажется это хорошее решение.

зы: Я с удовольствием изучу Ваши доводы в пользу других подходов, и схожу по предложенным Вами ссылкам, где будут описаны другие подходы программирования "богатого веб клиента".
PM MAIL   Вверх
dejavu
Дата 24.10.2009, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.1.2009
Где: Харьков

Репутация: нет
Всего: нет



  opeg!

Не совсем понятно что Вы хотели добиться имея всего один сервис
Если вы считаете что кол-во кода это как то повлияет на работу GWT приложения ,
это совсем не так,  не морочьте голову и не выдумывайте велосипед.

Патерн MVC Вам действительно поможет.
Поможет рефакторинг с наведением порядка в коде.

Для чего можно использовать один (но не единственный) сервис для получения через Ajax
данных - это оптимизация кол-ва запросов на сервер чтобы не тормозить загрузку !
Но надо понимать что данный подход не для уменьшения количества кода, а для того чтобы
за один запрос к серверу получить больше данных которые в обычном случае выполнялись по очереди,
как известно браузеры паралельно могут выполнять 2 запроса(возможно чуть больше), поэтому возникает очередь.

Совет Вам - изучайте Java без GWT
GWT это уже не просто строитель пользовательских интерфейсов в браузере,
и настолько быстро развивается, что Вы просто не успеете за ним.
Базовая Java, как языка программирования + базовые знания HTML +CSS и понимание работы HTTP протокола
даже без знания JS - позволит Вам писать великолепные веб приложения  с rich интерфейсом, на выразительном языке Java


PM MAIL   Вверх
Nofate
Дата 25.10.2009, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 13.10.2008

Репутация: 2
Всего: 8



В GWT действительно реализован MVC - как им воспользоваться можно посмотреть в примерах (Mail, кажется). Хотя я, например, реализую его несколько по- своему.
GWT несложно подружить со Spring. Хотя бы как здесь. Тогда работать совсем одно удовольствие (например, раздавать права на GWT-сервисы через Spring Security).

В качестве библиотеки виджетов посмотрите ExtGWT. Очень много полезного, довольно удобно работать.


--------------------
The future is not set, there is no fate but what we make for ourselves.
Нофейтово пространство и смежные области 
PM MAIL WWW ICQ   Вверх
dejavu
Дата 26.10.2009, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.1.2009
Где: Харьков

Репутация: нет
Всего: нет



А можно подружить и с Aspect Oriented Programming
Но это не касается GWT на прямую - это серверная сторона, и там может быть все что угодно.

MVC патерн на клиенской стороне очень даже желателен, имеется ввиду не контролер ввиде сервлета по RPC
а на самом клиенте в браузере 
Поясню.
За представление отвечают виджеты которые потом генерируются в html ввиде Table, TextArea, TextBox, ListBox,Button и прочее
Модель это то что вы получаете по RPC(или другим способом)  с сервера
И наконец контроллеры которые обновляют эту модель и реагируюя скажем на внешние события например нажатие кнопки
В GWT  это клиенский MVC  ан не классический как в Spring Flow  

1. Это позволит Вам тестировать GWT приложение обычным JUnit 
2.Сделает управляемым код при разростании проекта
3.Читаемым и понятным другим
О чем это я?  Это классика ! К ней рано или поздно приходишь сам - хотя тебе долбят об этом с самого начала smile .
Да еще интересно в GWT2 реализован  UIBinder !!!, по сути выносит представление из кода, как говориться деклоративное представление, есть проект GIN  (http://code.google.com/p/google-gin/), хотя слабое подобие Spring, но это на клиенте в браузере!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1046 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.