Среда разработки Java EE 5 - PullRequest
       53

Среда разработки Java EE 5

1 голос
/ 16 декабря 2009

У меня есть клиент, у которого уже есть несколько приложений в производстве, и поэтому он уже принял некоторые решения о том, какой будет производственная среда для этого следующего проекта:

  • Sun iPlanet 6.1 SP7 (с / apache)
  • JDK 1.6
  • Oracle Weblogic 10 MP3
  • Oracle 10g
  • 1024-битный SSL

У них также есть некоторые корпоративные стандарты для веб-приложений:

  • Tomcat
  • Struts
  • Совместимость с Safari, Firefox, IE6, IE7

Мне также сказали, что этому приложению, скорее всего, не понадобится полная среда Java EE 5 (возможно, только веб-контейнер), но ему нужно будет взаимодействовать с ним, размещенным в отдельном экземпляре weblogic, через клиентские EJB и т. Д. выполнять различные вызовы веб-службы для других корпоративных служб.

Мне было поручено принять решение о том, как будут выглядеть наши среды разработки и тестирования для этой новой команды (небольшой, возможно, 2 или 3 человека, включая меня, но может вырасти в ближайшие месяцы). Я хочу создать такой, чтобы люди могли использовать любимую среду IDE и иметь хороший опыт разработки на локальном хосте, но при этом иметь плавный путь к развертыванию в тестовой среде, а затем снова к производственной среде. Я думаю, что на локальных рабочих станциях http в порядке, но сервер тестирования интеграции должен выглядеть точно так же, как рабочий сервер, и весь трафик должен быть https, чтобы быть уверенным, что мы получаем точное представление о том, какой продукт будет.

Знание того, что локальные рабочие станции разработчиков будут сильно различаться и могут работать под управлением Mac OS X 10.6 (Snow Leopard) или Windows 7 на своих локальных рабочих станциях, но необходимо также определить общий тестовый сервер: какой технологический стек даст нам хороший плавный путь от локальной разработки, тестирования и производства?

EDIT: Извините, когда я говорю технологический стек, я имею в виду, например, Ant + JBoss + Tomcat + Oracle XE против Maven + Geronimo + Derby. В основном это список конкретных реализаций спецификаций, которые нам нужно будет установить на каждую машину разработки и тестовый сервер, что дает нам гибкую среду разработки и плавный переход к тестовой и производственной средам.

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

Ответы [ 3 ]

4 голосов
/ 16 декабря 2009

Я бы пошел на:

  1. Хадсон для ночных сборок (или для каждой регистрации)
  2. Mercurial или Subversion для контроля исходного кода (отлично работает как на Windows, так и на Mac)
  3. Весна, Весна, Весна . Да, я серьезно, Spring решает гораздо больше проблем, чем просто внедрение зависимостей; как безопасность, пакетная обработка, обработка транзакций, системная интеграция.
  4. EclipseLink для ORM. Многие продвинутые функции (которых нет в Hibernate) часто спасли меня (например, приличная поддержка хранимых процедур).
  5. Легкий контейнер типа Jetty, Tomcat или Resin . Вы собираетесь совершить командный акт, если будете использовать тяжелые медленные вещи, такие как Geronimo или JBoss .
  6. DeltaWalker для инструмента слияния / различий (снова работает на всех платформах).
  7. Если вы собираетесь использовать расширенные функции базы данных, выберите OracleXE SQLDeveloper ). Оба хороших инструмента. Если нет, то что-то светлое, например H2 или Derby - хорошо.
  8. JUnit (или TestNG) и Mockito для юнит-тестирования / моделирования.
  9. Пожалуйста, не используйте Struts . Серьезно, по крайней мере, идти с Struts2 или предпочтительно что-то вроде JSF2, Stripes или GWT .
  10. Приличный багтрекер, например, JTrac, RedMine или FogBugz
  11. Selenium для интеграционных испытаний
  12. Сонар для качества кода

Если вы собираетесь использовать разные IDE, то Maven может быть хорошей идеей, поскольку позволяет конфигурировать каждую IDE из pom.xml (прекрасно работает в IntelliJ / NetBeans). Но лучший совет, который я могу вам дать - это.

  • Иди с тем, что ты уже знаешь и имеешь опыт. Вы не переходите от Struts к JSF2 в одночасье.
  • Получить лучшие инструменты, которые вы можете получить, серьезно бесплатные вещи не всегда путь (хотя это часто бывает).

Счастливого взлома

1 голос
/ 16 декабря 2009

Не совсем понятно, о чем именно вы спрашиваете, когда говорите «технологический стек», вы имеете в виду серверы, библиотеки, инструменты сборки? Во всяком случае, вот некоторые легкомысленные рекомендации:

  • Hudson для непрерывной интеграции
  • Избегайте мавена, если он вам действительно не нужен. Он завлекает вас как сирену обещанием декларативных зависимостей и соглашения о конфигурации, но практика сильно отличается от теории
  • Используйте Spring везде, где это возможно, в предпочтении стандартных API Java SE / Java EE. В дополнение к более простым API это также облегчает тестируемость и функции AOP, которые намного проще, чем работа с AspectJ напрямую. Конечно, он также обеспечивает внедрение зависимостей, которое поддерживает слабую связь
  • Hibernate для ORM, или если ваши требования к устойчивости очень просты, Spring-JDBC может быть достаточно
0 голосов
/ 16 декабря 2009

Тестовая среда должна точно повторять производство. Также проведите тестирование производительности в тестовой среде. Если проблема с оборудованием и количество серверов в кластере должно быть ограничено, тогда создайте меньшее количество серверов в тесте, но выполните репликацию того же env, что и на prod, т.е. iplanet (apache ) + weblogic + oracle db и так далее.

Что касается локальной среды, вы можете использовать Tomcat (так как вам нужен только веб-контейнер), а для клиента ejb вы можете связать jar и сделать удаленные вызовы (если вы делаете удаленные вызовы какого-либо удаленного приложения) .Если вы делаете локальные звонки через локальные ejbs, вам придется использовать weblogic при разработке на локальной машине.

Попробуйте использовать ту же IDE (хотя это, в основном, вопрос выбора разработчиков). Что касается ОС, то это не имеет значения, поскольку, если вы используете совместимую IDE, вы будете собирать код только из этого.

Также убедитесь, что IDE тесно связана либо с tomcat (если вы его используете), либо с weblogic, чтобы запускать код в режиме отладки.

Одна очень важная вещь: сначала определитесь со структурой кода, а затем подтвердите это в системе контроля версий, чтобы из любой идеи пользователь регистрировал / проверял в одной и той же структуре. Таким образом, эта же структура является общей для всех разработчиков. Разветвите код в cvs или контроль версий в каждом выпуске, а затем извлеките его из head. Также очень важно использовать один файл сборки и поддерживать установочный документ для сборки среды на локальном компьютере. Что касается использования Framework, выберите тот, который вам наиболее удобен при кодировании и обслуживании. Таким образом, вы уменьшите количество ошибок в коде. В настоящее время большинство людей используют комбинацию Spring / Hibernate, но это зависит от того, подходит ли она вашему проекту. Надеюсь, это поможет.

...