крупномасштабное проектное решение Java - PullRequest
1 голос
/ 14 декабря 2010

Я бы хотел начать проект с нуля. Я разработчик Java в течение многих лет. Некоторое время назад я даже написал свой собственный фреймворк MVC для развлечения. Сейчас я работаю в компании, использующей внутреннюю структуру, что, на мой взгляд, является полной потерей времени и денег. Я уважаю идею объединения с различными квалифицированными людьми для крупномасштабного проекта. Разделение проекта очень важно; Ребята из графики, разработчики интерфейсов, архитектуры программного обеспечения, разработчики программного обеспечения, эксперты по базам данных и т. Д. Я не могу рисковать, используя язык сценариев, такой как php.

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

  • Весна
  • MyFaces
  • гобелен
  • Google Web Toolkit
  • кокон
  • Скорость

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

Что касается бизнес-уровня, я уверен в EJB и JPA. Я даже рассматриваю веб-сервис для фасада этого слоя для целей взаимодействия для будущих расширений. Тем не менее, я понятия не имею о защите этого слоя (он может быть применен на уровне веб-службы), что все еще является проблемой для меня. Для сервера приложений я рассматриваю GlassFish.

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

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

Я буду очень рад услышать ваши отзывы и опыт для более широкой картины.

отредактировано: Нет окончательного ответа, я знаю это. Я просто принимаю совет. Любой ответ приветствуется.

Ответы [ 6 ]

3 голосов
/ 14 декабря 2010

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

Я просто порекомендую свой стек.

Мойстек - это Stripes для внешнего интерфейса, а Glassfish / Java EE 5 на заднем.

Stripes - это простое действие (или MVC, что бы ни плавало на вашей лодке), которое имеет небольшое, но мощное и громкое сообщество.,Он имеет тесную интеграцию с JPA (через плагин), очень хорошую и актуальную печатную книгу по этой теме, а также отличную справочную документацию.Его основная технология рендеринга - это JSP с тегами JSP и EL.

. Это не компонентная структура, такая как JSF / MyFaces, поэтому ее реализация проще и жизненный цикл проще.Он очень хорошо работает с Ajax.

Ключевым фактором для Stripes, поскольку он основан на цикле HTTP-запросов, является то, что он выполняет большую часть работы над гранжем, но при этом очень легок.Это легко подобрать и понять.Создание базового приложения Stripes состоит из нескольких строк в файле web.xml и двух jar-файлов (одна из которых - log4j).Если вы умеете мыслить по HTTP, то вам подойдет Stripes.

С другой стороны, я бы просто использовал EJB и GlassFish.Java EE 6 и GFv3 уже давно вышли из строя.Он предлагает множество новых функций по сравнению с Java EE 5, а GlassFish предлагает практически любую технологию веб-сервисов, которую вы хотели бы использовать.Java EE 6 и Spring практически одинаковы для каждой точки, и поскольку вы рассматривали GF, вы также можете использовать EJB, поскольку он есть и встроен в коробку.Если бы вы использовали Tomcat, то Spring мог бы быть хорошим выбором.

И это все.Это все, что вам нужно (я не знаю, для чего вы хотели Velocity, вы можете добавить это тривиально, если хотите, но я бы не стал использовать это для страниц, лично, современный JSP намного лучше ИМХО).

Glassfish будетЗащищайте свои веб-сервисы, вы можете использовать безопасность Java EE со своими веб-приложениями, вы можете делиться логикой между внутренними EJB-компонентами, вашим веб-приложением и веб-сервисами.Все это работает "из коробки" с 15-минутной конфигурацией для запуска Stripes.

Я использую NetBeans, но все остальные IDE также работают.NetBeans хорош тем, что он интегрирован с Glassfish.Еще одна вещь для настройки.Загрузите его, запустите и все заработает.

Есть плагин Stripes для NetBeans, который я не использую.Я не вижу необходимости.После того как вы добавите несколько строк в файл web.xml, вырезанный и вставленный с веб-сайта, вы больше никогда не увидите полосы.Оттуда это все простые аннотации.

Если вам не нужна острая потребность во всей сложности и сложности обучения компонентной инфраструктуры, она не становится лучше, чем Stripes, и GF с Java EE 6в коробке есть все, что вам нужно.

Итак, в итоге: Stripes distro с www.stripesframework.org, NetBeans - с netbeans.org и stripersist - с stripes-stuff.sourceforge.net.Это надежная основа, которая пойдет туда, куда вы захотите.

Зайдите в IRC на Stripes на freenode по адресу #stripes, и мы ответим на любой ваш вопрос (или попали в список рассылки).

1 голос
/ 14 декабря 2010

Практически никто не может ответить на этот вопрос для вас.С точки зрения технологии внешнего интерфейса, одна из платформ будет работать для вас, а другие - нет.Все зависит от того, какой из них имеет смысл для вас.Я предлагаю попробовать их все и выбрать те, которые вам наиболее удобны.

С учетом сказанного у меня есть несколько предложений.Во-первых, не ограничивайте себя использованием Java.Если бы это был я, я бы использовал Ruby on Rails, работающий на jRuby, в качестве интерфейса, так как это самая быстрая среда для разработки веб-приложений, которую я использовал.Запустив его на jRuby, он позволяет вам подключиться к Java и позволить java и ее библиотекам выполнять всю тяжелую работу на серверной части.Я бы держался подальше от веб-сервисов и реализовывал вещи, используя ReST.

С точки зрения IDE, определенно используйте IntelliJ IDEA.Может потребоваться немного времени, чтобы привыкнуть, но это, безусловно, самая быстрая IDE на рынке.Тем не менее, и Eclipse, и Netbeans также очень хороши для Java и чуть дешевле.

Еще раз, ответ: "это зависит".

1 голос
/ 14 декабря 2010

Ну, во-первых, ваш вопрос не очень хороший.У каждой технологии есть свои светлые и темные стороны.Чтобы выбрать какую-то конкретную технологию - вам нужен опыт во всех из них, чтобы оценить, какие проблемы могут возникнуть с вашим проектом.Учитывая ваше определение: fast implementation for ajax, customer/administrator security, themes, templates, internationalization, caching static pages, clustering and a support of ejb - 90% платформ поддерживают все это либо напрямую, либо с использованием некоторых плагинов.

Более того, различные технологии лучше оптимизированы для различных нужд.У вас не может быть супер-фреймворка «все в одном», который безупречен и делает все возможное наилучшим образом.Учитывая, что инфраструктура легко масштабируется и быстро (например, Spring и / или Portlets) затруднит настройку для некоторых небольших задач.

Поэтому единственное, что я могу порекомендовать, - это Google "Сравнение Java Web Framework"и надеюсь на лучшее.

Что касается IDE, я вижу только 2 варианта: IntelliJ Idea и Eclipse.Опять же, нет явного победителя, поэтому снова Google является единственным источником информации, который вы можете получить.

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

0 голосов
/ 10 января 2011

«Я даже написал свое собственное фреймворк mvc некоторое время назад для забавы» - в конце концов, может случиться так, что вы пожалеете, что не остались с ним. На самом деле технология, которая лучше, чем в настоящее время «известная», скорее всего, будет известна чуть позже, а не сейчас. Половина вашего списка уже «известна» как устаревшая.

0 голосов
/ 14 декабря 2010

Учитывая, как выглядят другие ответы, я бы сказал, что самым большим оставшимся фактором является кривая обучения для вас и вашей команды. Учитывая ваше описание разделения ролей, ваша основная задача должна заключаться в выборе всеобъемлющей структуры, такой как Spring. Оттуда ваши парни из базы данных могут выбирать все, что они хотят для сохранения данных (hibernate, jdbc и т. Д.), А ваши парни из gui могут выбирать все, что хотят для своего интерфейса (tapestry, jsf и т.

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

Что касается IDE, то это личное предпочтение. Два из упомянутых в других постах (Eclipse и IntelliJ) - это те, о которых я больше всего слышал, Eclipse - моя стандартная IDE за последние 4 или 5 лет. Я не знаком с IntelliJ, но знаю, что в Eclipse есть плагины для поддержки Spring, Hibernate, а также множество других сред и решений ORM. Он также имеет плагины для поддержки других языков, таких как Ruby и PHP.

0 голосов
/ 14 декабря 2010

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

Вы не найдете идеального соответствия, если только вам не придет такое же мнение, как десятки людей, работающих над конкретнымрамки, предполагая, что все эти умы были в полном согласии.Единственное «идеальное» соответствие - это то, которое вы пишете сами, и даже тогда вы обнаружите, что оно не идеально, поскольку вы ограничены во времени и усилиях по разработке фреймворка;в конце концов, у вас действительно есть программа для написания, а время разработки фреймворка конкурирует со временем разработки программы.

Что касается IDE, то есть различия во вкусе и стиле.Я склонен тяготеть между старыми соперниками Netbeans и Eclipse, и моей следующей IDE для игры будет IntelliJ Idea.Следует помнить, что большинство людей обязуются использовать одну IDE, а затем клеветать на остальных, поэтому вы не сможете получить хорошее сравнение.IDE занимают слишком много времени, чтобы действительно научиться тому, чтобы человек давал честное и непредвзятое мнение.Хороший кандидат IDE "X" будет худшим в одних глазах и лучшим в других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...