LINUX.ORG.RU

Java EE, помощь в начале

 , , ,


2

2

Прошлая моя тема о выборе ЯП — Python или PHP как первый язык…, где результатом перечитанных 9 её страниц, выбор был остановлен на Ruby: многим потому, что о нём там практически никто не упоминал.

За 19 прошедших дней кропотливого входа в Ruby ~ по 7 часов на день, почувствовал неожиданный поток космической энергии: показалось, что овладеваю чем-то сакральным и теперь могу всё, например приступать к изучению Java и ряду других ЯП одновременно. Просто мне понравилось и хочется чего-нибудь ещё.

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

Итак. Твёрдо решено учить сразу 2 направления — Ruby и Java. У меня есть конкретная задача (о ней писал в прошлой теме), на основе этой задачи буду практиковать себя в вышеперечисленных языках, изучая их подход. Собственно говоря, создам два разных прототипа одной идеи.

Как я понял есть Java SE, ME и EE. Веб направление — это Java EE, что мне и нужно. Ведь так?

Какая литература более актуальна? Выбрал на Озон: Java 7 - The Complete Reference - 8th Edition, а также Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java (2013). Но у Герберта SE-версия, подходит ли она для начала?

Есть ещё такие слова: JSP, JBoss, Tomcat итд. Хотелось бы подробнее о них почитать, не в формате вики. Что посоветуете?

Заранее спасибо.



Последнее исправление: NiceForce (всего исправлений: 2)

По джаве читай Эккеля «философия java». По EE читай официальный туториал от оракла (5 издание, не 6) и/или Буди Курнявана.

vurdalak ★★★★★
()
Ответ на: комментарий от vurdalak

Не надо читать официальный туториал. Не ломайте человеку жизнь. Пусть лучше доку по Spring прочтет.

anonymous
()

thinking in java http://docs.oracle.com/javaee/6/firstcup/doc/ Head First Servlets and JSP: Passing the Sun Certified Web Component Developer Exam

Все читать исключительно на английском языке и обязательно в этом порядке. Первую книгу прочитать очень внимательно, остальные две можно проходить в темпе х2. Сразу скажу, что в 3 книге описывается старая спецификация сервлетов. Но сами принципы остались прежними.

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

anonymous
()
Ответ на: комментарий от anonymous

Спасибо за совет. На английском даже немного удобней — всегда сконцентрирован.

NiceForce
() автор топика
Ответ на: комментарий от f1xmAn

Да один хрен. Там будет ценной информации с гулькин нос, а все остальное время будет трындежь про то как поставить Netbeans и какие кнопки на визардах нажимать.

anonymous
()
Ответ на: комментарий от f1xmAn

Я начинал читать 6. А оказалось это не переиздание 5, а продолжение.

vurdalak ★★★★★
()
Ответ на: комментарий от vurdalak

Используешь идею, пропускаешь картинки. ;-)

f1xmAn ★★★★★
()
Ответ на: комментарий от windofchange

На мой взгляд обязательны: #(en) — http://www.ruby-doc.org/docs/ProgrammingRuby/ #(en/ru) — http://ruby.railstutorial.org/chapters/beginning

Смотрел мельком, оставлю на потом: #(en/ru) — The Ruby Programming Language #(en/ru) — Agile Web Development with Rails

На другие пока что не смотрел.

NiceForce
() автор топика
Ответ на: комментарий от vertexua

Еще не в моде

Я бы сказал что давным давно уже не и никогда там не будет из за своей вполне заслуженной «славы» over engineered bloatware. И какие бы няшные не делали последние спцификации - тень j2ee 1.4 и прочего говна так и будет висеть за плечами.

а спринг уже не в моде. Но в мейнстриме

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

Nagwal ★★★★
()

По яве бери сначала любую книжку по SE, Thinking in Java ту же. Потом разберись с основой всея явовского веба, т.е. сервлетами. И напоследок очень рекоммендую разобраться с maven-ом. После этого появится общее представление о том - куда и как двигаться дальше (а все остальные технологии/библиотеки прекрасно учаться по мануалам, отдельные книги нафиг не сдались).

Ну и уже для конкретного проекта я порекоммендовал бы связку spring + springmvc, но тут на вкус и цвет фломастеры разные.

Nagwal ★★★★
()
Ответ на: комментарий от Nagwal

Я обычно беру Jetty+Guice+JAX-RS, работает норм. Простенько и со вкусом.

Но Java EE 6, особенно с появлением Arquillian становится очень даже ничего. Приятно деплоить за 300мс war файл на 20 КБ, это вам не спринг ждать

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 3)
Ответ на: комментарий от vertexua

Я обычно беру Jetty+Guice+JAX-RS, работает норм. Простенько и со вкусом.

Что jetty, что tomcat - не вижу принципиальной разницы между последними версиями того и того, оба умеют как в варианте embedded, так и standalone. По скорости тоже особой разницы не замечал.

Guice - хорошая штука, если нужен только ioc. Spring же прекрасен своими батарейками, всякими jdbc/jmx/jms templates, transactions, security, возможностью подсовывать кроме конфига на аннотациях еще и разные xml-и для разных вариантов запуска итд.

Jax-rs - штука хорошая, но когда я с ним игрался - не было поддержки multipart в стандарте и не было нормальной интеграции с шаблонизаторами а-ля velocity-freemarker для ответов html-ем. Ну и непонятен смысл их использования в случае, если весь остальной проект и так на спринге завязан.

Но Java EE 6, особенно с появлением Arquillian становится очень даже ничего.

Ну оно постепенно улучшается. Вот опять-же arquillan появился. Но там до сих пор остается пачка нерешенных или решенных отвратительно проблем. Один security чего стоит. Да и про jca я молчу.

Приятно деплоить за 300мс war файл на 20 КБ, это вам не спринг ждать

Ну если голый варник с сервлетами, то поверю в 300мс. А если там куча ejb, да еще и кастомных тормозных PostConstruct-ов понаписали - то уже фигушки. Да и спринг тоже на голом конфиге стартует практически моментально.

Nagwal ★★★★
()
Ответ на: комментарий от Nagwal

Jax-rs - штука хорошая, но когда я с ним игрался ... не было нормальной интеграции с шаблонизаторами а-ля velocity-freemarker для ответов html-ем.

Мне кажется, вы не совсем поняли суть JAX-RS.

пачка нерешенных или решенных отвратительно проблем. Один security чего стоит. Да и про jca я молчу.

Что не так с security и JCA в Java EE 6?

да еще и кастомных тормозных PostConstruct-ов понаписали

В этом тоже виновата Java EE 6?

anonymous
()
Ответ на: комментарий от anonymous

Мне кажется, вы не совсем поняли суть JAX-RS.

Т.е. в representational state transfer сервисе я не могу ответить html-страницей на запрос?

Что не так с security и JCA в Java EE 6?

Давно не смотрел jca, а когда смотрел - там был ужас кромешный. А вот security нормальную стандартную так и не сделали. Нет нормального аналога спринговому intercept-url, нестандартные провайдеры пользовательских данных - с редкостным бубном подключаются, причем непереносимо между аппсерверами, как там программно в середине процесса обработки запроса повысить временно свои полномочия - тоже не нашел в свое время.

В этом тоже виновата Java EE 6?

Нет, не виновата. Просто это в куче проектов происходит, поэтому выдвигать в качестве аргумента о ее офигенности то, что она деплоит пустой варник меньше чем за секунду - не совсем корректно. В реальных приложениях все равно деплой будет скорее всего секунд 15-20 занимать, хоть на спринге, хоть на jee.

Nagwal ★★★★
()
Ответ на: комментарий от anonymous

Мне кажется, вы не совсем поняли суть JAX-RS.

Суть то в REST, но почему html страница - не REST ресурс? Тем более часто хочется не плодить зоопарков и написать приложение, например, только на Jersey. Там есть специальный тип ресурсов - Viewable, который позволяет форвардить на JSP и статику. Но в стандарте такого нету

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от Nagwal

Мне все же кажется, что когда в контейнере уже поднят connection pool, закешировано много ресурсов, а приложение, хоть и имеет большую бизнес логику, но не тащит библиотек в себе, будет запускаться быстрее. Ведь если подумать и не придираться к терминологии то, что вы наконфигурируете в спринге и есть контейнер. Не Tomcat/Jetty, называемые контейнерами официально, но особо ничего не предоставляющими, а именно Spring - контейнер по факту. Именно в нем поднимется JPA, пулы по 10 соединений, JMS и остальное. А в JavaEE контейнере это будет висеть постоянно, лишь приложение будет перезапускаться.

Да Security возможно не лучшее, слабые места остаются. Но я уже парочкой классов покрывал мои потребности в Security в Guice. Spring Security я бы просто не использовал в полном обьеме и для меня оно равнялось парочке моих классов на Guice AOP

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от vertexua

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

Будет. Но придется постоянно перезапускать аппсервер, чтобы скинуть все эти кэши, особенно hibernate/jpa ;) И тогда уже время запуска будет совсем не 200мс, а те самые секунд 10-20, что и у спринга.

Да Security возможно не лучшее, слабые места остаются. Но я уже парочкой классов покрывал мои потребности в Security в Guice. Spring Security я бы просто не использовал в полном обьеме и для меня оно равнялось парочке моих классов на Guice AOP

Ну вот парочка классов в Guice, потом кастомный фильтр для http-запросов, потом поддержка прозрачного доступа к пользовательской сессии/аутентификации из произвольного места кода - и в какой то момент жизни проекта начинаешь понимать, что проще было изначально взять решение, поддерживающее все это из коробки ;)

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

Nagwal ★★★★
()

Бля, ходят тут всякие. Ставишь глассфиш, тыришь идею, создаешь в ней хелловорлд spring mvc - все, теперь ты миддл со знанием жабаее и можешь претендовать на два килоевро в месяц. Не, я не шучу. Какие там книжки-читать, создал хелловорлд и пишешь себе методы.

vsn
()

Меня некоторые «спецы» навязчиво отговаривают учить Яву, мол не справлюсь с двумя языками, но я для себя решил: «Мы пойдем другим путём». (с)

Первое посвящения хелоувордом пройдено. Как среду IDE выбрал Эклипс — отговорите, если не правильно выбрал и куда смотреть.

NiceForce
() автор топика
Ответ на: комментарий от NiceForce

Тут такие вопросы задавать не стоит, ща набигут фанбои идеи.

Выбрать просто: поставь рядом идею и нетбис и поработай по недельке с каждой ИДЕ (правда идею придётся спиратить, надюсь ты без предрассудков).

ya-betmen ★★★★★
()
Ответ на: комментарий от NiceForce

Как среду IDE выбрал Эклипс — отговорите, если не правильно выбрал и куда смотреть.

Ну что, удачи не потеряться в зоопарке плагинов и их версий. NetBeans и то лучше для JavaEE.

iZEN ★★★★★
()

Какая литература более актуальна?

«Java 7. Библиотека профессионала, том 1. Основы», Кей С. Хорстманн, Гари Корнелл, 9-е издание, ~1000 стр., «ВИЛЬЯМС», 2013

«Java 7. Библиотека профессионала, том 2. Тонкости программирования», Кей С. Хорстманн, Гари Корнелл, 9-е издание, ~1200 стр., «ВИЛЬЯМС», 2013

Подробности о выпуске: http://shtonda.blogspot.ru/2012/07/core-java-horstmann-9th.html

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
19 апреля 2015 г.
Ответ на: комментарий от vsn


Ответ на комментарий:

Отпишитесь ему в топик.

А что сам ему в личку не напишешь таким же образом?

anonymous
()
Ответ на: комментарий от vsn

тыришь идею

можешь претендовать на два килоевро в месяц

FFFFUUUUUUUU!

Oxdeadbeef ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.