Важные рамки/инструменты для изучения

Heyja,

часто используемый ответ на вопрос "Что особенного в Java?" "Инструменты и рамки". Я думаю, это правильно. Я ошеломлен, когда вижу все инструменты и рамки, которые значительно упрощают вашу жизнь как разработчика.

Мои навыки Java не идеальны, но хороши в среднем, и я все еще работаю над этим. Например, я начал изучать Ant, и я не хочу его пропустить. Это потрясающе. То же самое с Hibernate. Теперь я спрашиваю себя, что я должен узнать дальше. Я хочу получить опыт для себя и особенно моего резюме. К сожалению, их так много. И все говорят об этом, как Spring, Struts, JavaServer Faces, Maven,...

Что широко используется в реальном мире? Какие инструменты помимо Ant или Subversion/CVS важны? Какие рамки необходимы, чтобы научиться быть принятыми как "настоящий Java-программист" и получить интересные задания?; -)

Ответ 1

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

  • MVC: Struts, Spring MVC.
  • Доступ к данным: Hibernate, iBatis, JPA.
  • IOC: Spring (huuuuge для интеграции больших систем. Если вы можете, изучите принципы АОП, на которых основан Spring)
  • Сервер приложений: Tomcat, JBoss.
  • Тестирование: JUnit
  • Презентация: JSF, JSP.

Кроме того, не пренебрегайте не-Java-технологиями, которые вам нужно знать:

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

Если бы мне пришлось выбрать одну вещь из этого списка, я бы пошел на Spring. Если вы выберете два, я возьму Spring и JQuery.

Ответ 2

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

Ответ 3

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

Ответ 4

Maven стоит изучить, но я бы предложил Spring. Spring значительно упростит вашу жизнь кодирования.

Ответ 5

Проект Apache Commons предоставляет множество полезных инструментов, которые сохраняют изобретательность колеса.

Ответ 6

+1 для Spring.

Struts 1.x - не последняя реклама, но, вероятно, стоит знать, поскольку с ней были написаны строки кода. Если вы работаете в консалтинговом бизнесе, вы столкнетесь с ним в тот или иной день.

Кроме того, если вы улучшаете свои навыки Java, я определенно рекомендую Джошуа Блоху книгу "Эффективная Java, второе издание".

Ответ 7

Два предложения, несколько не относящиеся к теме:

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

  • ИМХО, способность быстро находить ответы, учиться и понимать гораздо больше, чем конкретные знания. Сегодня это Java и Spring, завтра это Ruby on Rails. Какая разница.

Ответ 8

Eclipse является обязательным. Это не только отличная среда разработки, но и хорошо интегрируется с другими инструментами (SVN, Ant...).

Ответ 9

Я настоятельно рекомендую инструмент Найти ошибки. Это статический инструмент анализа кода, который сообщает о вероятных ошибках в вашем коде. Плагин для Eclipse является фантастическим и является одной из основных причин, по которым я не использую другую среду IDE.