Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Java EE vs Spring

Привет!

Я Senior .NET Engineer 10 лет опыта, ASP .NET/MVC, WCF, итп итд который заинтересовался джавой и решил сменить профиль. Почему, зачем неважно, важно что решил и все тут.

Почитал статьи за авторством Stanislav Lozenko «Пособие для будущего Java разработчика» — здорово написано и помогло выделить что почитать по Джаве чем сейчас и занимаюсь.

Узнал что в мире джава для веба в основном используют Java EE и Spring. Я пока не знаю ни того ни того но почитал в эти ваших интернетах общие сведения (читал о Java EE 7 и Spring 4.2). Теперь в голове появилась каша. В .NET проще — выбора почти и нет, а тут такое. Поскольку фреймворки большие то хотелось бы «не прогадать».

Правильно ли я понимаю что:

1. Spring по сути это стандарт де-факто в отличии от Java EE который формальный стандарт, но из-за того что он устарел, новые проекты делают на новом и динамично развивающемся Spring?

2. Вакансий по Spring в Европе, США, Украине больше чем по Java EE поэтому Spring перспективнее?

3. Java EE 7 пока почти не представлена на рынке, который больше ориентирован на Java EE 6 (о котором пишут что «гавно мамонта» и «неудобное, старое, ужасное»)? Реально ли 6-ка такая «боль» или «брешут собаки»?

4. Есть некая база фреймворков на которых основаны и ЕЕ и Spring, поэтому есть похожести? Это вот эти всякие JPA, JMS, JSF, EJB? Я так понимаю сначала с ними раздуплиться, а потом дальше копать?

5. Стоит ли проходить сертификации? Я так посмотрел на Java SE 8 Programmer I и II и задумался — и что правда люди их проходят? Там же совсем базовые вещи, которые ни о чем не говорят. В любом случае для меня сертификация это возможность учиться по какому-то плану, а не как попало. Бумажка тут как просто награда «ай маладец». Поэтому вопрос не столько «нужны ли бумажки работодателю», а больше «насколько подготовка к ним хорошо тебя прокачивает».

Ну и такой вопрос: знакомы ли кому такие случаи перехода с одной платформы на другую и насколько сильно терялись лычки/зп?

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

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Коментар порушує правила спільноти і видалений модераторами.

Дело в том, что никто не мешает изучать и то, и то, разумеется не полностью.
Spring — обязательно IoC и конфигурацию бинов.
JEE — JPA например, поскольку в одном проекте могут использовать Spring, интегрированный с JPA.

Spring действительно стандарт де-факто и альтернативы ему как платформы практически нет.

Автор, я сам не так давно начал проделывать путь от Senior Oracle Dev в мир джава :) Так что могу поделиться своими мыслями по этому поводу. Не претендую на правду последней инстанции, возможно более опытные коллеги меня поправят.
1) Думаю, всё-таки стоит начать с EE. А именно сервлеты. Реквест, респонс, веб сервер и все эти вещи. Т.к. все что касается web в java работает на сервлетах (Spring MVC в том числе) — их нужно знать хорошо. Думаю, на JSP можно забить. ну зарве что написать какой-то хелло-ворд.
2) Разобраться с JPA, JTA, JMS, JNDI. На первое время будет достаточно иметь представление что и зачем. В реализации глубоко можно не залазить.
3) Spring. Ну тут не паханное поле) Думаю, лучше всего это почитать основы и начать делать какое-то приложение на Spring MVC и в процессе подключать свякие фичи, разбираться постепенно.
4) Настоятельно рекоммендую посмотреть видео(там 2 части). Но это лучше делать, если уже имеете базовое представление о спринге:
www.youtube.com/watch?v=BmBr5diz8WA

Статистика по моему окружению показывает, что для специалиста по JEE переключиться на Spring не представляет каких-либо сложностей, но при этом обратного явления наблюдается гораздо меньше. Возлюбившие изначально Spring очень часто считают JEE «бесовским проявлением» и заявляют, что «не полезут на эту страсть». :)
Совпадение? ;)

2. Вакансий по Spring в Европе, США, Украине больше чем по Java EE поэтому Spring перспективнее?
почему-то в описании зарубежных вакансий (чаще всего Германия) в большинстве случаев присылают требования по Java EE. У нас наоборот
4. Есть некая база фреймворков на которых основаны и ЕЕ и Spring, поэтому есть похожести? Это вот эти всякие JPA, JMS, JSF, EJB? Я так понимаю сначала с ними раздуплиться, а потом дальше копать?
Я бы сказал, не фрейворков, а стандартов или API. Они являются частью Java EE. Можно выбирать фреймворк, который соответствует этим стандартам. Например, Hibernate соотв. JPA
Ну и такой вопрос: знакомы ли кому такие случаи перехода с одной платформы на другую и насколько сильно терялись лычки/зп?
такой переход не знаком. Думаю, за пол года можно быстро дойти до того же уровня. Языки похожи, принципы тоже.

Интересно было бы узнать мотивацию, если не секрет. Что там в мире .NET происходит?

А почему Java, а не Python, например? «Смена профиля» такая себе получается.

Сложно сказать. С питоном я игрался довольно много пару лет назад: Джанго, Джанго Рест Фреймворк, чуть-чуть фласк. Отлично подходит для MVP, но, судя по отзывам друзей-питонистов, в дальнейшем сложно его поддерживать из-за динамической типизации, плюс проблемы с GIL.

Все это решаемо, но вот как-то хочется завязаться на JVM. У вас офигенное комьюнити и поддержка вендоров (я о библиотеках, фреймворках, интеграциях).

Я бы на Clojure пошел (он «правильно» динамически-типизированный), поковырял, мне понравился, но у нас в стране с этим печалька — вакансий почти нет.

Я бы на Clojure пошел (он «правильно» динамически-типизированный), поковырял, мне понравился
поддерживаю)
но у нас в стране с этим печалька — вакансий почти нет.
а вот с вакансиями — может через некоторое время их будет больше. Да и дефицит вакансий может оказаться и плюсом — если таки повезет с вакансией, то деньгов по-идее будут больше платить, чем рядовому джависту.

З.Ы. а еще есть скала.

4. Есть некая база фреймворков на которых основаны и ЕЕ и Spring, поэтому есть похожести? Это вот эти всякие JPA, JMS, JSF, EJB? Я так понимаю сначала с ними раздуплиться, а потом дальше копать?
Spring и есть фреймвок. В отличии от EE — который являются стандартом (набором интефейсов) для многих технологий, и за ним тянется куча реализация, вот только пример для одного JMS ru.wikipedia.org/...wiki/Java_Message_Service
1. Spring по сути это стандарт де-факто в отличии от Java EE который формальный стандарт, но из-за того что он устарел, новые проекты делают на новом и динамично развивающемся Spring?
Нет, просто 2 конкурирующих направления.
2. Вакансий по Spring в Европе, США, Украине больше чем по Java EE поэтому Spring перспективнее?
В Европе и Штатах совсем не факт, в Украине да.
3. Java EE 7 пока почти не представлена на рынке, который больше ориентирован на Java EE 6 (о котором пишут что «гавно мамонта» и «неудобное, старое, ужасное»)?
Нет
Реально ли 6-ка такая «боль» или «брешут собаки»?
Брешут
4. Есть некая база фреймворков на которых основаны и ЕЕ и Spring, поэтому есть похожести? Это вот эти всякие JPA, JMS, JSF, EJB? Я так понимаю сначала с ними раздуплиться, а потом дальше копать?
Да, есть база и эта база часть спецификации ЕЕ, например сервлеты и ДжПА. JSF, EJB — как раз для спринга не надо.
5. Стоит ли проходить сертификации?
Если цель большой западный банк или типа того, то скорее всего да. В остальных случаях скорее нет.
Ну и такой вопрос: знакомы ли кому такие случаи перехода с одной платформы на другую и насколько сильно терялись лычки/зп?
Да, лычки не теряются (в большинстве случаев).

Спасибо. Еще такой вопрос в догонку, если это Java EE, то что лучше — 6 или 7 версия? То же самое касается языка — 7-я или 8-я? Что больше используется? По языку наверное несильно важно.

Еще такой вопрос в догонку, если это Java EE, то что лучше — 6 или 7 версия?
А если никуда не подглядывать, то сможете назвать разницу? :) Если серьездно то не принципиально. Важно понимать (именно понимать, не обязательно знать всю спеку на зубок) следующие спеки: JPA, JMS, JAX-RS, JAX-WS, CDI. Это обязательно, остальное зависит от проекта.
То же самое касается языка — 7-я или 8-я? Что больше используется?
В теории, все что меньше 8-ки уже устарело.
На практике, и 6 и 7 еще вполне можно встретить.
Если вы переходите с дотНета, то 8-ка не должна составить для вас труда.
Еще меня смущает вот этот момент: spring.io
просто 2 конкурирующих направления.
Вы всегда читаете самую правдивую информацию о продукте на сайте их конкурента?
Базовые спеки я перечислил выше, когда вы в них разберетесь, тогда сами сможете понять что вам ближе и больше подходит для вас.

Как джун (java) не могу давать советов senior’у (хоть и не java), но всё же порекомендую обратить внимание вот на этот материал: zeroturnaround.com/...hnologies-landscape-2016 =) Как бы главные тренды последних лет прослеживаются.

Спасибо! У меня (почти) никогда не было проблем с тем, что человек с меньшим количеством звезд на погонах, может знать что-то, о чем я не знаю :)

Підписатись на коментарі