Стандарты и инструменты разработки Java (по сравнению с C #) - PullRequest
3 голосов
/ 22 июля 2009

У меня нет никаких знаний о платформе Java, и мне интересно, какие инструменты (и методологии) можно было бы использовать для разработки поддерживаемого кода, написанного на Java.

Я знаю, что можно использовать:

  1. Agile методология в любой среде
  2. jUnit / jMock для кода модульного тестирования (аналогично NUnit / Moq в мире .net)
  3. Checkstyle для стандартов кодирования - это похоже на StyleCop или FxCop или оба?
  4. Полагаю, вы также можете писать многоуровневые приложения на Java (например, сборки для разных уровней в .net)
  5. Существуют ли какие-либо автоматизированные инструменты тестирования OSS / Licensed, о которых стоит упомянуть
  6. Существуют ли генераторы кода, которые очень популярны в мире Java

Существуют ли другие популярные инструменты / методы, которые могут использовать разработчики / команды Java, к которым у меня нет доступа в мире .net? Вы бы предложили другие инструменты и подходы в мире Java?

Ответы [ 5 ]

4 голосов
/ 22 июля 2009

В Java много фреймворков. Например, вам не нужно использовать JUnit, вы можете использовать TestNG с практически такой же поддержкой инструментов. Также есть несколько насмешливых фреймворков.

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

У вас есть Eclipse в качестве IDE, если вы хотите бесплатно, а также NetBeans и за деньги есть IntelliJ IDEA среди других. Затем есть несколько IDE от крупных поставщиков, предназначенных для поддержки своих конкретных серверов приложений.

С точки зрения построения "сборок" (jars, wars и ear в мире java), в интегрированных средах разработки есть несколько встроенных инструментов для проектов с одним человеком, и есть Ant или Maven для полноценного инструмента сборки.

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

Что касается генераторов кода, то в целом мир Java пытается отойти от них в пользу аннотаций, но на ум приходит название xdoclet. В построении GUI, конечно, есть куча генераторов кода, предназначенных исключительно для построения GUI.

Это действительно едва царапает поверхность. Например, серверы приложений (JBoss, Oracle (теперь они владеют двумя с покупкой Sun) и IBM, среди прочих) являются важной точкой принятия решений во многих Java-проектах (это зависит от того, какой проект).

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

Самое замечательное в Java - это то, что есть так много вариантов. Недостаток Java в том, что существует так много вариантов ...

1 голос
/ 22 июля 2009

Лучший инструмент для разработки на Java - замечательные программисты на Java.

Если вам удастся нанять несколько действительно хороших, остальные позаботятся о себе:)

1 голос
/ 22 июля 2009

Вы можете использовать Hudson вместе с ant или maven в качестве сервера непрерывной интеграции. Тестирование вашего кода в определенное время и после каждой регистрации. Вы можете объединить Hudson с JUnit, Emma, ​​FindBugs, Pmd и checkstyle, чтобы измерить качество кода в вашем хранилище. Если вы делаете это, я рекомендую установить игру с непрерывной интеграцией , которая дает вашему разработчику высокий балл за исправление тестов и предупреждений, а также отрицательные моменты за их нарушение.

1 голос
/ 22 июля 2009

Ответ на # 2: Инструменты покрытия кода, такие как EMMA , часто используются для оценки степени текущих тестов. Ответ # 5: Findbugs и PMD - чрезвычайно популярные инструменты статического анализа.

0 голосов
/ 22 июля 2009

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

Тем не менее, я все еще настаиваю на основах: контроль исходного кода, переходы для каждого изменения с регулярными проверками в основной ветви, автоматическая сборка и тестирование, множество тестового кода, базовый статический анализ, отслеживание ошибок и скоро. Это на стороне инструмента. Что касается кодирования, регулярные проверки дизайна и кода, многоуровневая архитектура, слабая связь и т. Д. Большая часть этого зависит от языка. Так что то, что у вас работает в C #, должно переводиться на Java.

Для Java я нашел JUnit очень хорошим для тестового кода, а Checkstyle - для поддержки стиля кодирования.

...