Я хочу сделать приложение "Web 2.0" без непосредственного использования JavaScript - PullRequest
4 голосов
/ 12 октября 2009

Я профессиональный разработчик Java около 4 лет. Я фанат GWT. Я люблю Яву. Вот проблема: в свободное время я часто становлюсь жертвой многословия моих любимых инструментов для «тяжелой» разработки. Я также часто попадаю в ловушку одержимой разработки своего программного обеспечения. Я закончу с самой красивой незаконченной реализацией, когда-либо.

Итак, вот с чем я обычно работаю.

GWT - Я использую это для динамического интерфейса и веб-макета. Я люблю легкость повторного использования, и это научило меня ненавидеть javascript. Я действительно даже не могу заставить себя делать больше HTML / JS.

Hibernate - POJO в базу данных, легко-peasy. Что мне действительно нужно от этого, кроме сопоставления, так это то, что оно позволяет мне иметь приложение, которое работает с несколькими базами данных.

Весна - В основном безопасность. Я написал свои собственные биты LDAP для проекта.

XML - Я использовал dom4j и другие реализации, включая xstreamer. Я хотел бы использовать JiBX для транспорта XML. Проблема в том, что мне нужны XML-сообщения, которые соответствуют определенному стандарту , а не генерируются автоматически. Object-> XML-> Object также достаточно распространены, так что это может быть узким местом в производительности с большими сообщениями (250 КБ +).

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

Я изучал Grails, но это довольно быстро наталкивает меня на проблему с JavaScript (знаете, мне это не нравится). Я мог бы использовать GWT с Grails на заднем конце, но я возвращаюсь к проблеме проникновения в сорняки с GWT. Мне также пришло в голову, что может быть способ иметь теги Grails в GSP, которые состоят из виджетов GWT. Я не совсем уверен, что я чувствую по этому поводу.

Еще одна проблема, связанная с Grails, заключается в том, что логика проверки до отправки формы отделена от ограничений проверки после отправки. Я не вижу, как они могут быть объединены (пока), чтобы произвести "симпатичную" проверку интерфейса. Я старался изо всех сил запустить JSR-303-совместимый проект проверки для GWT, чтобы помочь решить некоторые из этих проблем для GWT, и мне очень понравились результаты. Это не закончено, но я все еще нахожу это полезным.

Итак, помогите мне найти лучший путь!

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

TL; DR - это TL; DR - я ненавижу JavaScript, помогите.

РЕДАКТИРОВАТЬ: Я знаю, что технически невозможно сделать разработку "Web 2.0" без JavaScript. Я просто пытаюсь не быть парнем, который должен это написать. (Получение инструмента, такого как GWT, чтобы сделать это для меня на языке, который мне нравится, например.)

Ответы [ 10 ]

14 голосов
/ 12 октября 2009

Просто изучите JavaScript.

Сопротивление бесполезно
... и вы будете ассимилированы.

PD: Я бывший враг JavaScript. Теперь это мой любимый язык.

2 голосов
/ 13 октября 2009

Вы, конечно, можете разработать весь проект Web 2.0 без написания кода Javascript с помощью GWT (у нас есть), но в конце концов вам все равно придется знать HTML / CSS и Javascript.

Это может звучать как глупое утверждение, но не раз вы считаете, что GWT не идеальная абстракция, и при этом она не предназначена для этого. Он не был написан на Java, так что вам больше никогда не приходилось кодировать в Javascript, вместо этого они сделали это, потому что Java имеет лучшие IDE, статически типизирован и значительно облегчает обслуживание.

Так что да, во что бы то ни стало, идите с GWT (и ознакомьтесь с новым OOPHM, потому что он УДИВИТЕЛЬНЫЙ), но не забывайте, что вам всегда нужно понимание базовых структур Интернета, если вы хотите разрабатывать для сети.

1 голос
/ 06 октября 2010

Взгляните на JRapid , платформу быстрой разработки для разработчиков Java. Он генерирует очень мощный пользовательский интерфейс с поддержкой Ajax без необходимости кодирования.

1 голос
/ 13 октября 2009

Был там, сделал это. Я был разработчиком GWT в течение 3 лет ... Я начал использовать его в v1.1! GWT - это фантастика, и она отлично работает для небольших приложений. Но разработка приходит к концу, когда вы получаете умеренный размер приложения, даже если вы делите свое приложение на подмодули.

Также довольно иронично, что инфраструктура пользовательского интерфейса имеет такие ограниченные инструменты для создания пользовательского интерфейса. :)

Лично я укусил пулю и выучил javascript. Это не так плохо, как я думал. Особенно с jQuery . :)

Очевидно, что нет идеальных рамок. Но тот факт, что GWT существует уже 3,5 года и все еще игнорируется в мире Java, должен вам кое-что сказать. Поскольку вы делаете это в свободное время, я бы порекомендовал изучить наиболее популярную среду: Struts . Вы увидите его ограничение, а также почему он так популярен. Конечно, вам понадобится jQuery для этих функций 2.0. :)

1 голос
/ 13 октября 2009

Не уверен, что вам это понравится, но слышали ли вы о Haxe ? Вам может не понравиться это, но его решение AIO (все в одном) (вроде).

1 голос
/ 13 октября 2009

Возможно, вы захотите взглянуть на некоторые библиотеки JSF с поддержкой AJAX. IceFaces и RichFaces являются твердыми.

1 голос
/ 12 октября 2009

Вы слышали о Эхо ?

Он не обеспечивает часть проблемы с базой данных, но хорошо работает с любой базой данных, с которой вы можете работать.

Echo - платформа для строительства веб-приложения, которые подходят возможности богатых клиентов. приложения разрабатываются с использованием компонентно-ориентированный и управляемый событиями API, избавляя от необходимости иметь дело с «страничный» характер браузеров. Для разработчика Echo работает так же, как инструментарий пользовательского интерфейса.

Последняя итерация, Echo3, функции способность писать приложения в * на стороне сервера Java или на стороне клиента JavaScript. Серверные приложения работать в любом контейнере сервлетов Java и не требует знаний разработчика HTML, HTTP или JavaScript.

0 голосов
/ 05 января 2014

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

Я использую только HTML (5) и CSS2 / CSS3, и у меня много успехов.

Я использую это 2 способа:

  • с использованием «пазл-техник». Напишите много маленьких и простых шаблонов (или плиток), чтобы создать большую страницу. Я использую только теги JSTL и Spring, с Rich / Prime / Ice-Faces я столкнулся с множеством проблем при рендеринге, построении страниц и контроллере потока, поэтому я их отбросил.

  • использование моей пользовательской библиотеки для анализа HTML-страниц. Я создаю шаблон с моей собственной грамматикой, помещаю внутрь парсера и пишу в выходной поток. Это лучший способ.

Если вы скажете мне предпочитаемый язык и контекст, я могу помочь вам выполнить JS-free.

0 голосов
/ 19 октября 2009

Я бы сказал, придерживайся GWT и просто выпей больше Koolaid. Это совершенно потрясающая модель разработки, которая, похоже, потеряна для тех, кто ее не пробовал.

Если вы хотите улучшить свой опыт работы с GWT, перейдите к самому высокому уровню (я работаю на транке, он достаточно стабилен) и используйте другие созданные Google проекты, такие как GIN, gwt-инкубатор и Guice. Особенно следите за речью Google I / O о лучшем опыте GWT Рэя Райана: http://www.youtube.com/watch?v=PDuhR18-EdM

Что касается части «рамки»: забудьте их. Просто используйте обычные сервлеты и позвольте GWT позаботиться о RPC для вас. Сервлеты - это боль, когда вам приходится иметь дело с JSP и вашими собственными вызовами AJAX, но когда они реализуют только логику асинхронного приложения, это совсем не так плохо. Guice Servlet делает все довольно просто. Вы по-прежнему можете использовать язык JVM для написания своих сервлетов, если хотите.

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

Большое раздражение, которое я вижу в ваших требованиях к XML ... надеюсь, это просто для интеграции со сторонней службой, а ваше клиент-серверное взаимодействие может быть просто GWT-RPC.

0 голосов
/ 12 октября 2009

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

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

Я уверен, что есть альтернативы, но если вам нужен внешний вид Web 2.0, вы в конечном итоге будете выполнять гораздо больше работы с небольшим вознаграждением. JavaScript является приемлемым и функциональным инструментом для работы.

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