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

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

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

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

  • сервер (кот?/?)
  • CMS
  • редактор / IDE
  • общие инструменты/коммунальные услуги
  • направленные (специального назначения) инструменты / утилиты
  • тестирование и QA инструменты/утилиты/техники
  • справочный материал (Как on- & off-line)

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


рекомендуемая Веб-разработка Java toolkit / environment

By cdb:

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

варианты дистиллированные из ответов

сервер

  • Apache Tomcat- "среда веб-сервера HTTP для запуска кода Java"
  • причал - "сервер HTTP, клиент HTTP и javax.контейнер сервлета"
  • GlassFish - сервер приложений (на основе Tomcat + больше особенности)
  • от JBoss - сервер приложений ("сервер приложений на основе J2EE реализован на 100% чистой Java")

CMS

редактор / IDE

общие инструменты/коммунальные услуги

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

направлено (специального назначения) инструменты/утилиты

  • CruiseControl - team based "инструмент и расширяемая платформа для создания пользовательского непрерывного процесса сборки"
  • Весенние Рамки (- design)

тестирование и QA инструменты/утилиты/техники

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

справочный материал (Как on- & off-line)

6 ответов


  • сервер
    Tomcat6
  • CMS
    Друпал (не обязательно в фазе prilim)
  • редактор / IDE
    NetBeans (хорошо для новичков)
  • общие инструменты/коммунальные услуги
    (Почти все в NetBeans... иди за ней позже)
  • сразу (специальное назначение) инструменты/утилиты
    (Почти все в NetBeans... иди за ней позже)
  • тестирование и QA инструменты/утилиты/техники
    JUNIT и использовать Палий (сначала выполните ручное тестирование)
  • справочный материал (Как on- & off-line)
    HeadFirst Series on JSP, JavaScript и т. д.
    SCRIBD (online)

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

  • JSP/Servlet API
  • Весна MVC
  • в jQuery
  • XHTML & CSS
  • FitNesse в

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

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

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


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

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

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

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

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


CMS

  • Черепаха SVN

редактор / IDE

  • затмение

общие инструменты/коммунальные услуги

  • Maven (инструмент сборки и развертывания)
  • Круиз-Контроль
  • GWT / ext-GWT / ICEFaces-технология веб-компонентов
  • Spring-dependency injection framework
  • Hibernate - ORM
  • Axis 2.0 Web service development kit
  • от JBoss

направленные (специального назначения) инструменты / утилиты

  • log5j-для ведения журнала

тестирование и QA инструменты/утилиты/техники

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

справочный материал (Как on- & off-line)

  • Java docs каждой из технологий
  • Google конечно:)

попробовать в VCL.js все в одном (передний конец и бэкэнд) инструмент веб-разработки предприятия,

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

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


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


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

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

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

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

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

  • в представлении я бы четко отделил свою модель (чистый Html, без форматирования, без скрипта), мое представление (или форматирование, только внешний css) и мой контроллер (javascript, используя непротиворечивую политику javascript).
  • в webapp я мог бы использовать Spring MVC для разделения этих слоев.
  • в бизнесе (этот пример немного ограничен : -)), я мог бы иметь богатую модель домена, широко использовать шаблон команды ("контроллеры") и экспонируйте явно мои бизнес-сервисы как API интерфейса ("вид").