![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
opeg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 6.10.2009 Репутация: нет Всего: нет |
Доброго времени суток.
Я изучаю java а именно GWT В процессе согласования серверной и клиентской частей у меня возник вопрос, как это сделать более оптимально. Как один из вариантов можно наплодить нужное количество сервисов и незаморачиваться. Другой вариант сделать прослойку которая занималась бы наведением мостов через один сервис, на нём я решил и остановиться так как в этом случае у меня нет лавинно-образного роста поголовья сервисов и файлов с ними связанных. Для добавления кода которому необходимо общаться со своей серверной или клиентской частью достаточно добавления одной строчки в регистрирующий файл и соблюдения некоторой договорённости стучать туда-то. Я начал делать класс в функции которого входит помнить зарегистрированные классы, и в зависимости от способа обращения отдавать на растерзание объект соответствующему классу/методу. После того как я начал это писать я вспомнил, java славится большим количеством уже написанного кода, который надо просто использовать. Может кто-нибудь уже решал подобную задачу и может подсказать куда смотреть. Это сообщение отредактировал(а) opeg - 6.10.2009, 14:54 |
|||
|
||||
ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 2 Всего: 28 |
Странный выбор для изучения Java... Достаточно специфический фреймворк скажем так... Уже одно то, что клиентская часть пишется на Java, которая затем транслируется в JavaScript - ну как то сразу понимаешь, что это уже урезанная Java. Ну да ладно - выбрали так выбрали. Да, есть такая штука - называется MVC (Model - View - Controller). В вашем случае View - это та самая клиентская часть, которая по сути уже разделена от остальных частей. Model - это некая бизнес-логика на серверной части, ну а Controller - это как раз та самая прослойка которую вы уже начали собирать. Будь бы это не GWT - я бы порекомендовал вам тучу библиотек и кода реализующего MVC, но поскольку вы уж выбрали специфический тул - то тут нечего и сказать то. Погуглите с ключевыми словами "GWT MVC" - может и найдете чего (хотя вряд ли). Я бы на вашем месте, либо учился бы на другом фреймворке - ну скажем самый простой Struts или же взял бы все тот же Struts и попробовал его приспособить к GWT (что-то мне подсказывает - можно приспособить его к GWT). -------------------- Aut viam inveniam aut faciam |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Для системы, находящейся в эксплуатации, это и есть лучший вариант. Простые независимые сервисы проще модифицировать, перезапускать без заметного ущерба для функционирования всей системы, дублировать, передвигать на другие компьютеры. |
|||
|
||||
opeg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 6.10.2009 Репутация: нет Всего: нет |
Благодарю за комментарии.
Я окончательно ещё не определился с GWT. Мне нужен богатый ajax интерфейс и с GWT + smartGWT это в первом приближении достаточно просто достигается. При использовании связки GWT + smartGWT есть очень большой недостаток, точнее 2, это колоссальный размер приложения (более 2МБ) и невероятно большое количество запросов (сотни запросов) даже при весьма скромной функциональности приложения (регистрационная форма, форма восстановления пароля, логин форма — все формы до безобразия простые, просто примитивные, ничего лишнего). Как вариант можно конечно смотреть в сторону js библиотек, меня сдерживает только желание забыть состояние «HTML/CSS руками». Несмотря на то что я с web достаточно хорошо знаком, хочется верить что GWT от этого спасёт. В HTML/CSS — я не вижу ничего плохого, просто хочу не спускаться на уровень конструирования отдельных элементов интерфейса, которые уже кто-то достаточно хорошо сконструировал. К тому же если есть возможность остаться в рамках одно ЯП понятного многим и при этом упростить разработку, то как мне кажется это хорошее решение. зы: Я с удовольствием изучу Ваши доводы в пользу других подходов, и схожу по предложенным Вами ссылкам, где будут описаны другие подходы программирования "богатого веб клиента". |
|||
|
||||
dejavu |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 3.1.2009 Где: Харьков Репутация: нет Всего: нет |
opeg!
Не совсем понятно что Вы хотели добиться имея всего один сервис Если вы считаете что кол-во кода это как то повлияет на работу GWT приложения , это совсем не так, не морочьте голову и не выдумывайте велосипед. Патерн MVC Вам действительно поможет. Поможет рефакторинг с наведением порядка в коде. Для чего можно использовать один (но не единственный) сервис для получения через Ajax данных - это оптимизация кол-ва запросов на сервер чтобы не тормозить загрузку ! Но надо понимать что данный подход не для уменьшения количества кода, а для того чтобы за один запрос к серверу получить больше данных которые в обычном случае выполнялись по очереди, как известно браузеры паралельно могут выполнять 2 запроса(возможно чуть больше), поэтому возникает очередь. Совет Вам - изучайте Java без GWT GWT это уже не просто строитель пользовательских интерфейсов в браузере, и настолько быстро развивается, что Вы просто не успеете за ним. Базовая Java, как языка программирования + базовые знания HTML +CSS и понимание работы HTTP протокола даже без знания JS - позволит Вам писать великолепные веб приложения с rich интерфейсом, на выразительном языке Java |
|||
|
||||
Nofate |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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. Нофейтово пространство и смежные области |
|||
|
||||
dejavu |
|
|||
Новичок Профиль Группа: Участник Сообщений: 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.Читаемым и понятным другим О чем это я? Это классика ! К ней рано или поздно приходишь сам - хотя тебе долбят об этом с самого начала ![]() Да еще интересно в GWT2 реализован UIBinder !!!, по сути выносит представление из кода, как говориться деклоративное представление, есть проект GIN (http://code.google.com/p/google-gin/), хотя слабое подобие Spring, но это на клиенте в браузере!! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |