Підкажіть стек технологій для java web
Доброго дня!
Пишу вже деякий час на java, але використовував його лише для десктопних проектів. Не так давно появилось декілька проектів для web. Змінювати мову бажання не виникало, та і у web, java відіграє теж не останню роль. Тому через деякий час пошуків я зупинився на технологіях jpa jsf-2.0. Був варіант використання jsp, але як я зрозумів його не рекомендовано для використання, бо технологія застаріла.
Мені дуже цікаво, що ви використовуєте для java back-end, і чому.
47 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівНе так давно я открыл для себя Play framework.
Он использует сервер Netty, в котором живёт одно приложение. В одном сервере — одно приложение. И не нужно сложного (re)deployment process.
А также не нужно километровых конфигов, как в Spring MVC.
Что интересно, Servlet API там тоже не используется. Замысел — быть ближе к Web, HTTP и вот этому всему, без лишних слоёв абстракции.
Слушая видео-курс и читая книгу по Play, я услышал и прочитал примерно те же мысли, которые хотел выразить в отдельный пост здесь, но не решился. Монструозные конфиги приложений на базе Spring MVC + Hibernate, как оказалось, вызывали чувство морального утомления не только у меня.
А когда я однажды давно как-то погуглил «declarative transactions in Spring» и увидел это — стало страшно. :-)
Минус у Play framework — в том, что задолбаешься настраивать проект в своей IDE. А может быть и не задолбаешься. Как повезёт.
Это вообще проблема в мире Java: когда проект управляется Maven или sbt (как для всех проектов на Play), то в самом простом nice & clean случае всё просто работает, всё супер.
Как только появляются какие-нибудь не тривиальные настройки (плагины и модули Maven) — открывается огромное разнообразие проблем при импорте проектов в IDE. Что-то с чем-то не совместимо, что-то не поддерживается, что-то не видит IDE и т.д.
Много раз использовал Jetty embedded (запускаешь приложение как main, а внутри мейна стартуешь сервер) — очень удобно с точки зрения дебага и интеграции с плагинами в IDE, например. JAX-RS, дальше по желанию — Spring и Hibernate довольно популярный стек.
В целом, неважно, как ты это напишешь, главное — тесты пиши, чтобы потом рефакторить было легче. Да и перейти на другой стек будет не так страшно.
Дійсно цікавий варіант, щодо старту сервера із main.
IMHO, сейчас не лучшее время изучать Java для web.
Проекты на Java EE (что не синоним «Java + web», но по факту обычно оно) — это обычно унылый support & bug fixing старого г@внокода.
Новые чистенькие проекты на Java EE обычно оставляют для себя и делают сами, не раздавая такое добро на outsource.
Мне кажется, что вот как-то так.
Уточніть що ви маєте на увазі коли кажете
і колиПроекты на платформе Java EE.
Новые, недавно созданные, на последней версии Java EE, в которых каждый разработчик в (маленькой) команде хорошо знает проект.
Проекты, которые ещё не успели обрасти врождёнными и взаимосвязанными проблемами.
.
Хотя с общим посылом (Масква не резиновая) я согласен :)
может лучше начать с основ? java ee и все что связано с этим и можно найти на oracle -_-
потом можно будет отталкиваться в любое из направлений.
Можно было бы предположить что автор уже это знает, но если явно не сказано, то лишним не будет.
пс: когда освоишь java ee более-менее вопроса что дальше возникать не должно.
Завжди намагаюсь знаходити рішення самостійно, але люблю перевіряти. От і у даному випадку отримав багато інформації котра мені була потрібна, у короткий термін і нікого не перевантаживши.
Іду ще в oracle спитаю що думає про це. ))
Если речь о http серверах, то jersey + любой контейнер (java http server, jetty, grizzly, etc). Простой наглядный пример — github.com/doom369/finance.
Всем, кто рекомендует тебе спринг, без понимания задачи, которую тебе предстоит решать, можешь сразу плевать в лицо, а тем, кто советует jsf, можешь сразу бить по лицу =). В большинстве случаев обе технологии будет лишним оверхедом.
FE — vanilla js
Окреме дякую за приклад, вони завжди дуже доречні, інколи краще тисячі слів. ))
У літературі неодноразово натикався на те що jsp визнана застарілою технологією, і не рекомендована для використання.
jsf 2.0 пропонують як альтернативу.
Пытаются выкопать то, что должно лежать в земле
Есть. Thymeleaf.
А такой вопрос, Thymeleaf используется сейчас?(всмысле в продакшене) И помимо него есть что-то еще?
И все-таки
Или?
Вам интересно собрать статистику, выбрать под конкретный проект технологию или “выучить” что-то с чем можно найти работу?
Если вариант № 3, то тут СпрингМВЦ и вперед.
Если № 2, то дайте описание проекта.
Якщо коротко то варіант № 3. Реалізувати проект використавши технології, котрі не будуть лише одноразово використані та матимуть вагу при змінні роботи.
— если спринг projects.spring.io/spring-boot
— если не спринг www.dropwizard.io
вот еще такое встречал
jhipster.github.io/tech_stack.html
jhipster.github.io/screenshots.html
update:
хех, не зрозумів спочатку :) і написав все що згодилось
а spring тут вже порадили.
если не понравится Spring то на Play Framework можно еще взглянуть
На Play без Scala нефиг и смотреть.
Да, создаётся неповторимое ощущение костылинга :)
Для старту, як на мене, і Play 2.4 + Java буде не погано, в порівнянні з Spring Boot.
Можешь на GWT поглазеть
не стоит
Смотря что пилить. Для энтерпрайза очень даже норм. Для блога, магазина и тому подобных вещей — да, лучше морду на js
GWT гребанное зло, хотя бы тем что это java -> javascript. Зачем такое делать если сейчас можно писать front/back end на JS? Или бэк — REST, а фронт — что-угодно?
Имхо, корова которая просто не поперла из-за своей архитектуры, да ее используют как и все что было есть и будет в джаве, но оправдано ли, врятли...
1. «.. компилировать ущербный язык Java»
2. использовать как аргумент топик за 2010 год с форума линукса? ну ок.
Дело в том что таких «топиков» море относительно GWT.
По поводу 2. Джун спорит о целесообразности использования кривого и тупого GWT в мире полном намного лучшими пряниками? Что серьезно?0.о
P.S. Альтернатив для веба уйма: Spring, Wicket, REST, EJB, JSF.
Вы уже второй человек, который пытается тыкать в лицо мне моей должностью, вместо того чтобы аргументировать почему GWT «кривой и тупой».
1. Первую ссылку которая попалась по «недостатки GWT» я уже кинул, джуны в люксофте обладают навыками гугления?
2. Вы же ведете себя как «в интернете кто-то неправ», почему бы не тыкнуть в лицо должностью? Если вы начинаете оправдывать GWT и рекомендовать его для изучения другому человеку (тем более что в мире джавы есть много других технологий которые работают намного лучше чем GWT и писать код и делать отладку на них НАМНОГО удобней)
Все темы датированы2009-2012, а фреймворк не стоит на месте и большинства описанных проблем уже давно нет — это раз.
Я лишь сказал что GWT уместен для некоторых задач, а в ответ лишь «гвт — говно. Почему? потому что! и ваще ты джун и ничо не знаешь».
А судя по инфе с линкедина, то вы, Владислав, два месяца назад были аналогичным джуном, что делает ваши комментарии вдвойне веселее.
На этом, мне кажется, диалог исчерпан :D
Я лишь сказал что «не стоит» смотреть в сторону GWT человеку который хочет посмотреть на джава в веб, а в ответ лишь «тыкаешь должностью, gwt крутой, давай пруфы!!!»
И опять таки советовать повторюсь, советовать GWT когда есть масса технологий продуктивней, это бред чистой воды.
P.S. О какой ужас, вы уличили меня в том что я получил «тайтл» совсем недавно... Да, два месяца назад у меня еще небыло «тайтла», но работу я исполнял до самого факта промоушна.
Поповоду ссылки
1) Я думаю это плюс
2) Легко интегрируется resty-gwt.github.io
3) Отладку можно легко выполнять через обычный Dev Tools, можно через дебагер IDE
4) В GWT встроенна поддержка интернационализации
зачем писать джава код и транслировать, если можно писать на js сразу?0.о
И зачем это советовать человеку начинающему смотреть в сторону веба, если есть рест и ангулар/бэкбон?
-
GWT для оленей до мокроты в постели боящихся веба
прикопайте там же где выкопали
RAP и Vaadin тудаже
JSF в топку как уже сказали
Так, це я вже зрозумів.
А що скажете про такий варіант?
“Сервер сайд — чистый REST на джаве.
Фронт — на Angular”
На форумі попереднику виловив, про котрий вже згадував раніше.
хороший выбор
да это правильный вариант
java для сервисов а приложение JS
в jsf взагалі не лізь
кошерний варіант — Spring MVC + якась жабосприктова приблуда, типу angularjs
Дякую за вектор! ))
І справді дана тема не одноразово вже піднімалась на форумі, ось одна із тем для прикладу, де багато чого вже розжовано: dou.ua/forums/topic/9673
Шкода тільки часу витраченого, і куди я тільки дивився раніше. ((