Инструментарий / среда веб-разработки для начинающих на Java

Мне было поручено разработать интерактивный веб-сайт с использованием java и mysql: использовать сервлеты для извлечения и обработки данных, апплеты для специальной обработки данных на стороне клиента и для обработки запросов от клиента для различных представлений данных.

Что бы вы порекомендовали в качестве подходящего универсального инструментария / среды для веб-разработки с использованием java.

Мне нужно знать, что использовать в следующих случаях:

  • Сторона сервера (кот? /?)
  • CMS
  • Редактор / IDE
  • Общие инструменты / утилиты
  • Направленные (специальные) инструменты / утилиты
  • Инструменты / утилиты / методы тестирования и обеспечения качества
  • Справочные материалы (как в режиме онлайн, так и в автономном режиме)

Пожалуйста, оцените предлагаемые решения и предложите альтернативы / улучшения / поддержку.


Предлагаемый набор инструментов / среда для веб-разработки на Java

Автор cdb:

  • На стороне сервера:
    Tomcat6
  • CMS:
    Drupal (не требуется на предварительном этапе)
  • Редактор / IDE:
    NetBeans (подходит для новичков)
  • Общие инструменты:
    (Почти все есть в NetBeans ... сделайте это позже)
  • Направленный (специального назначения):
    (Почти все есть в NetBeans ... сделайте это позже)
  • Тестирование и контроль качества:
    JUnit и использование Firebug (сначала выполните ручное тестирование)
  • Справочные материалы:
    Серия HeadFirst по JSP, JavaScript и т. д.
    SCRIBD (онлайн)
    [edit]
  • Framework:
    Spring Web MVC 2.5 - (похоже, содержит большинство других фреймворков )

Варианты, извлеченные из ответов

На стороне сервера

  • Apache Tomcat - «Среда веб-сервера HTTP для запуска кода Java»
  • Jetty - «HTTP-сервер, HTTP-клиент и контейнер javax.servlet»
  • GlassFish - сервер приложений (на основе Tomcat + дополнительные функции)
  • JBoss - сервер приложений («Сервер приложений на основе J2EE, реализованный на 100% чистой Java»)

CMS

Редактор / IDE

Общие инструменты / утилиты

  • Maven - «… инструмент, который теперь можно использовать для создания и управления любым проектом на основе Java».
  • log5j также здесь [SourceForge] -" библиотека ведения журналов Java для версии 5 и выше "

Специальные инструменты / утилиты

  • CruiseControl - командный «инструмент и расширяемая структура для создания настраиваемого процесса непрерывной сборки»
  • Spring Framework (- дизайн)

Инструменты / утилиты / методы тестирования и контроля качества

  • Watij - «API Java, созданный для автоматизации веб-приложений»
  • HtmlUnit - «Он моделирует HTML-документы и предоставляет API, который позволяет вам вызывать страницы, заполнять формы, нажимать ссылки и т. д. "
  • Firebug - (Firefox) «редактировать, отлаживать и отслеживать CSS, HTML и JavaScript в реальном времени на любой веб-странице»
  • Hudson - «Создание / тестирование программных проектов [...] Мониторинг выполнения внешних заданий»
  • LiveHttpHeaders - просмотр и редактирование заголовков HTTP-запросов в реальном времени
  • JUnit - «структура для написания повторяемых тестов»

Справочные материалы (как онлайн, так и офлайн)

  • A List Apart - «Для людей, которые создают веб-сайты»
  • Java - TiJ

person Community    schedule 07.09.2009    source источник
comment
Некоторая путаница по поводу CMS. Вы имели в виду CVS? Drupal - это действительно CMS (система управления контентом), разработанная на PHP. В то время как SVN и Git - это 2 CVS (системы параллельных версий), использование которых имеет для меня больше смысла в контексте разработки на Java.   -  person Michael Ekoka    schedule 07.02.2010


Ответы (6)


  • На стороне сервера
    Tomcat6
  • CMS
    Drupal (не требуется на этапе прилима)
  • Редактор / IDE
    NetBeans (подходит для новичков)
  • Общие инструменты / утилиты
    (Почти все есть в NetBeans ... сделай это позже)
  • Специальные инструменты / утилиты
    (Почти все находится в NetBeans ... сделай это позже)
  • Инструменты / утилиты / методы тестирования и контроля качества
    JUNIT и используйте FireBug (сначала выполните ручное тестирование)
  • Справочные материалы (как онлайн, так и офлайн)
    Серия HeadFirst на JSP, JavaScript и т. Д.
    SCRIBD (онлайн)
person Community    schedule 08.09.2009
comment
Я ищу именно такой ответ - Спасибо! - person slashmais; 08.09.2009

Для веб-разработки я использую (и рекомендую) следующее:

  • JSP / Servlet API
  • Spring MVC
  • JQuery
  • XHTML и CSS
  • Фитнес

Что касается ресурсов, все эти технологии хорошо документированы на соответствующих сайтах, за исключением XHTML и CSS, для которых я бы предложил http://www.alistapart.com/.

Что касается редакторов, то у IntelliJ и (я считаю) Eclipse очень хорошие редакторы HTML, CSS, JSP и JavaScript.

Также используйте Firefox (как предложил Брайан) с плагином Web Developer и Firebug - оба они незаменимы.

person Nick Holt    schedule 07.09.2009

Tomcat и Jetty - это хорошо известные / поддерживаемые контейнеры сервлетов. Если вы создаете развертываемую версию для клиентов, вы можете протестировать обе версии, если вы не контролируете развертывание.

Для тестирования ознакомьтесь (вместе со своими обычными средами модульного тестирования JUnit / TestNG) Watij и / или HtmlUnit. Это позволит вам автоматизировать фактическое взаимодействие с веб-браузером и в конечном итоге избавит вас от горя. Обратной стороной является то, что вам придется потратить некоторое время на настройку тестов.

Что касается автоматизированных тестов, я думаю, вам нужна автоматизированная система сборки / непрерывной интеграции. В мире Java их предостаточно. Двумя общими являются CruiseControl и Хадсон.

Для многих из вышеперечисленных применяются стандартные инструменты Java / разработки, например. «стандартные» IDE (Netbeans / Eclipse / Intellij - за Intellij стоит платить, кстати). То же самое относится и к CMS, и на этом веб-сайте есть много ресурсов о плюсах и минусах SVN / Git / Mercurial и т. Д. Стоит проверить, интегрируется ли выбранная вами CMS с вашей IDE.

Я бы попробовал Firebug для упрощения разработки (в Firefox). Это значительно упрощает разработку интерфейса. LiveHttpHeaders упростит диагностику проблем, связанных с передачей HTTP.

person Brian Agnew    schedule 07.09.2009
comment
(Я понимаю, почему вы в 19 + k) - person slashmais; 07.09.2009
comment
Это больше связано с большим количеством свободного времени :-) - person Brian Agnew; 07.09.2009

CMS

  • Черепаха SVN

Редактор / IDE

  • затмение

Общие инструменты / утилиты

  • Maven (инструмент для сборки и развертывания)
  • Круиз-контроль
  • GWT / ext-GWT / ICEFaces - технология веб-компонентов
  • Spring - фреймворк для внедрения зависимостей
  • Гибернация - ORM
  • Комплект для разработки веб-сервисов Axis 2.0
  • Jboss

Направленные (специальные) инструменты / утилиты

  • log5j - для логирования

Инструменты / утилиты / методы тестирования и обеспечения качества

- Watij
- Firebug
- QTP for automated testing
- Junit Perf (Junit test cases for performance testing.)

Справочные материалы (как в режиме онлайн, так и в автономном режиме)

  • Документы Java по каждой из технологий
  • Гугл конечно :)
person Cshah    schedule 07.09.2009
comment
log5j выглядит многообещающе; (Tortoise SVN - это система контроля версий) Спасибо. - person slashmais; 08.09.2009

Попробуйте vcl.js - это все в одном (интерфейсном и внутреннем) средстве корпоративной веб-разработки,

  1. Библиотека визуальных компонентов - включает страницу, сетку, ввод, датчики, диаграммы и многое другое.
  2. Чистый JavaScript
  3. Одностраничное приложение
  4. .Net Backend
  5. Связывание данных
  6. Twitter bootstrap
  7. Простое выполнение запроса к базе данных
  8. Маршрутизация
  9. AMD - Загрузчик модулей

Думаю, идея в том, что вам не нужно изучать jquery, Sammyjs или какой-либо другой фреймворк.

person Community    schedule 24.10.2013

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


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

  • использовать язык статического типа (например, java)
  • используйте среду IDE, которая компилируется по мере ввода (например, Eclipse)
  • любой XML должен быть проверен через строгий xsd. Если в содержимом есть ссылки на другую информацию (например, Java-код), то ее следует проверить (например, Spring проверка для классов bean-компонентов).
  • для технологии просмотра, поскольку это зависит от моего java-кода, я должен иметь подтверждение, которое включает мой фактический java-код. Идея могла бы заключаться в том, чтобы закодировать мою точку зрения на Java. (как Wicket).
  • мои свойства должны быть в файлах свойств для перевода. Но использование строковых ключей в моем коде (или представлении) неприемлемо. Я бы запустил небольшой инструмент, который создает перечисления java из каждого файла свойств, и мой код будет ссылаться на перечисления.
  • ... и так далее

Другой пример. Предположим, я предпочитаю "Соглашение по конфигурации". То есть я согласен следовать строгим правилам в моем проекте, и мне гораздо меньше придется делать вручную (потому что значения по умолчанию подходят):

  • Maven - лучший инструмент для сборки. Это наложит много ограничений, но также предоставит многие готовые функции "сборки" ...
  • Для веб-приложения я не мог использовать Struts 1, потому что это огромные файлы конфигурации в struts-config.xml, в основном с кодом сантехники. Я бы определенно переключился на что-то вроде Spring MVC, у которого есть значения по умолчанию для сопоставления URL-адресов с контроллерами.
  • и так далее ...

Другой пример. Предположим, я настолько верю в разделение Модель-Представление-Контроллер для ясности и повторного использования, что я хочу немного его растянуть. Я мог бы использовать:

  • в представлении я бы четко разделил свою модель (чистый HTML, без форматирования, без сценария), мое представление (или форматирование, только внешний CSS) и мой контроллер (javascript, используя ненавязчивую политику javascript).
  • в веб-приложении я мог бы использовать Spring MVC для разделения этих слоев.
  • в бизнесе (этот пример немного надуманный :-)), я мог бы иметь богатую модель предметной области, широко использовать шаблон команд («контроллеры») и явно раскрывать свои бизнес-сервисы как интерфейс API («представление»).
person KLE    schedule 07.09.2009
comment
Их много, много ... - Действительно! именно поэтому я задаю вопрос: чтобы узнать, что на самом деле работает [лучший | лучший | наиболее часто используемый | фактический стандарт | ..] - person slashmais; 07.09.2009