Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Обратная сторона web-фрэймворков


Автор: Vasay 25.12.2009, 02:28
Решил поднять очень больную тему для Java WEB фрэймворков  - удобство их использования со стороны пользователя и совместимость с SEO (поисковыми системами).

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

Теперь подумайте - удовлетворяет ли ваш любимый фрэймворк этому требованию.

В качестве примера неудачного выбора фрэйморка могу привести веб магазин (на одном форуме я уже писал разработчику о недостатках его сайта, надеюсь он их быстро поправит, так что не уверен, что спустя некоторое время после написания данного поста по ссылке будет именно то, что я хочу показать):

http://e-carneol.com/web/portal/home 

Вот кто мне может сказать, какой товар я смотрел по http://e-carneol.com/web/portal/home?p_p_id=catalog_portlet_WAR_carneol_INSTANCE_nxd7&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&p_p_col_id=column-2&p_p_col_count=1&_catalog_portlet_WAR_carneol_INSTANCE_nxd7_com.sun.faces.portlet.VIEW_ID=%2Fpages%2Fcatalog%2FviewProductList.jsp&_catalog_portlet_WAR_carneol_INSTANCE_nxd7_com.sun.faces.portlet.NAME_SPACE=_catalog_portlet_WAR_carneol_INSTANCE_nxd7_ ?

Посмотрите, что видит на этом сайте http://www.google.ru/#hl=ru&source=hp&q=site%3Ae-carneol.com&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=f&oq=site%3A&fp=5f96a978f2abe2da

Попробуйте кинуть ссылку на какой-нибудь товар по аське другу (или открыть в другом браузере).




Еще один пример: фотоальбом, который не смогут проиндексировать поисковики (по крайней мере пока не станут нормально понимать js)
http://livedemo.exadel.com/photoalbum/index.seam





С Юзабилити все немного сложнее. Тут многое индивидуально.

Вот зайдите на упомянутый выше фотоальбом, выберете Sport & Cars, затем Cars..... а затем нажмите кнопку назад вашего браузера, мой firefox отработал это действие некорректно, так же как и последующее нажатие кнопки вперед. 

Так же попробуйте открыть какую-нибудь ссылку из левого меню в новом окне (в новой вкладке) - мой firefox  опять же не смог справиться с этой задачей :-(

А вот, посмотрите на фотографию этой классной машины (если конечно ее увидите): http://livedemo.exadel.com/photoalbum/index.seam?cid=368653 


Кстати, есть еще момент - производительности. Попробуйте взять стандартную табличку из набора компонентов Woodstock и вывести 100 строк - если FireFox справится с этой задачей легко, то IE умрет даже на весьма приличной машине (спасибо обилию JS).




Что я всем этим хочу сказать? Будьте внимательны при выборе технологии, что бы потом не создавать интернет магазины, которые не увидит ни один поисковик, или корпоративные приложения пользователи которых будут вас потом люто ненавидеть (имел дело с одним таким приложением как пользователь, столько мата в адрес разработчика сложил...)

Автор: gcc 25.12.2009, 09:18
mod_rewrite?

Автор: Vasay 25.12.2009, 12:22
Цитата(gcc @  25.12.2009,  09:18 Найти цитируемый пост)
mod_rewrite?


mod_rewrite в Java нет, хотя есть возможности URL-mapping-а, однако, в случае с ajax, или использовании POST запросов они Вам не помогут.

Автор: Omut 25.12.2009, 20:48
Цитата(Vasay @  25.12.2009,  02:28 Найти цитируемый пост)
Будьте внимательны при выборе технологии

"Огласите весь список, пожалуйста"(с)('Приключения Шурика')
Какие фреймворки Вы СОВЕТУЕТЕ? Вот хотя бы из перечисленного: Struts, Struts2, JSF1.2, JSF2.0( jsf-ы без аяксов), Tapestry5, Wicket, SpringMVC(куда ж без него)? Что из этого Вы бы порекомендовали, а что  забраковали бы для интернет-магазина? Можно прям табличку в 3 столбца

                                      |Годится|Не подойдёт|Краткое обоснование|

Автор: AJetman 25.12.2009, 21:21
Цитата(Omut @ 25.12.2009,  20:48)
Цитата(Vasay @  25.12.2009,  02:28 Найти цитируемый пост)
Будьте внимательны при выборе технологии

"Огласите весь список, пожалуйста"(с)('Приключения Шурика')
Какие фреймворки Вы СОВЕТУЕТЕ? Вот хотя бы из перечисленного: Struts, Struts2, JSF1.2, JSF2.0( jsf-ы без аяксов), Tapestry5, Wicket, SpringMVC(куда ж без него)? Что из этого Вы бы порекомендовали, а что  забраковали бы для интернет-магазина? Можно прям табличку в 3 столбца

                                      |Годится|Не подойдёт|Краткое обоснование|

Странный вопрос, автор топика лишь предупреждает выбирать технологию для разработки веб-приложений более тщательно.

Работал плотно с Wicket. С точки зрения SEO в нем все нормально, нужно лишь классы страниц "монтировать" по ключам. Для этого, кстати, советую сразу использовать сторонний аддон wicketstuff-annotations...

Автор: Vasay 26.12.2009, 00:59
Omut

Цитата

Можно прям табличку в 3 столбца

                                      |Годится|Не подойдёт|Краткое обоснование|


Это действительно хорошая идея, но лично я не могу гарантировано сказать про все фрэймворки. Да и возможна такая ситуация, когда фрэймворк позволяет делать правильные URL, но ради этого приходится отказаться от какого-то функционала. 


Однозначно плохо обстоят дела у Ajax фрэймворков (GWT, ZK, у различных faces....)

У Wicket, насколько я понял из своего небольшого знакомства с ним, если не использовать Ajax компоненты соответствие контента страницы и URL - однозначное, но вот управлять URL в полной мере нельзя (могу ошибаться). Однако это не критичный недостаток.

С Tapestry5 тоже игрался немного, из того на что обратил внимание - активное использование JS в компонентах, например, при пагинации таблицы.  


Насчет JSF (без активного использования ajax) - не могу сказать, я видел сайты на jsf с правильными url-ами, но как, и какой ценой люди этого добивались - не знаю.


В своей практике я использовал связку SpringMVC+Velocity. Много ручной работы, но результат меня радовал (хотя все и не для широких масс делалось  smile  ).  URL можно контролировать. Попытался использовать https://woodstock.dev.java.net/index.html ( насколько я понимаю - канувший в лету ). Меня очень попросили больше так не делать, так как IE у пользователей просто умирал.

Автор: garbuz 26.12.2009, 15:38
Цитата(Vasay @  25.12.2009,  02:28 Найти цитируемый пост)
В качестве примера неудачного выбора фрэйморка могу привести веб магазин (на одном форуме я уже писал разработчику о недостатках его сайта, надеюсь он их быстро поправит, так что не уверен, что спустя некоторое время после написания данного поста по ссылке будет именно то, что я хочу показать):
http://e-carneol.com/web/portal/home 

Судя по урлу и слов "portlet" в результатах гугла, можно сказать, что магазин сделан на портале, точнее WebShpere Portal, если версия ниже 6.1, то там вообще все плохо с урлами, каждый раз урл генериться динамически, хотя есть возможность задать на страницу понятный статический урл.

Что касается остального, не знаю как у других фрэймворков, но с пом spring mvc и urlRewrite мне удалось добиться вполне примлимых урлов - site.com/category/java, site.com/user/vova, site.com/tag/sql 
Не знаю правда как с индексацией и сео - не выставлен наружу.

Я считаю, что этот вопрос в большинстве случаев зависит от прямоты рук разработчика.

Автор: Vasay 26.12.2009, 16:05
garbuz

Цитата

Судя по урлу и слов "portlet" в результатах гугла, можно сказать, что магазин сделан на портале, точнее WebShpere Portal, если версия ниже 6.1, то там вообще все плохо с урлами, каждый раз урл генериться динамически, хотя есть возможность задать на страницу понятный статический урл.


Там LifeRay. Но виной того что получилось - не liferay (он позволяет делать вполне приличные урлы), а jsf (насколько я понял), с помощью которого был создан портлет магазина.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)