Порекомендуйте стек технологий основанный на Java для вебприложения?

Порекомендуйте, пожалуйста, стек технологий для стартапа. Требования следующие:

1. Java. Все участники знакомы с этим языком, поэтому рассматривается только он.

2. Основная функциональность сайта — отображение информации из социальных сетей, поэтому необходим framework, который может упростить эту задачу.

3. Масштабируемость. Если сервис понравится, то надо будет его как-то расширять впоследствии.

4. Современный. Т.е. мы бы хотели работать с неустаревшими технологиями.

5. Расширяемость. Т.е. возможность замены некоторых компонентов.
  • Вопрос задан
  • 12255 просмотров
Пригласить эксперта
Ответы на вопрос 5
Spring Framework конечно. Если конечно не хочется ничего особо оригинального (или платного). Для интеграции с социальными сетями можно поискать и отдельные компоненты. Даже если они не интегрированы со Spring изначально — интегрировать в него можно что угодно.

Но вот веб-стек в Java, как бы это сказать помягче, излишне перегружен. Как насчёт не использовать его совсем? Наймите хорошего front-end — разработчика, пусть напишет вам полностью динамический UI (на jQuery UI например), а ваш back-end в таком случае будет всего лишь RESTful-сервисом. И современно, и модно, и с тяжеловесными технологиями типа JSF с их десятиэтажными абстракциями заморачиваться не придётся…
Ответ написан
mrstrictly
@mrstrictly
Из современных популярных фреймворков с очень низким (на мой взгляд) порогом вхождения я бы в первую очередь привел:
* Play! Framework playframework.com/
* Grails www.grails.org/
Но сам, лично, не имею опыта работы с ними, только изучал, получал представление, т.к. по работе имею дело с самописными решениями на базе Spring.
Ответ написан
MrMig
@MrMig
Добавлю свое мнение (имею опыт разработки как энтерпрайзов, так и стартапов):

Spring Framework.
  • Отлично подходит для крупных проектов, и проектов, которые необходимо будет длительно поддерживать.
  • Желательно иметь 1 хорошего специалиста по спрингу, иначе скушает много времени на построение правильного процесса (все же это энтерпрайз-технология).
  • Стандарт для энтерпрайза де-факто.


Grails.
  • Пишется на груви (джава с сахаром + динамика), что объективно приятнее
  • Отличное решение для прототипов и веб-CRUD систем.
  • Имеет набор стандартных практик и кучу плагинов


Play 1.2
Концептуально это такой же фреймворк, как и Grails.
Главное не путать его с Play 2 (scala-фреймворк, переработанная архитектура. На джаве писать можно, но не удобно)
  • Похож на греилс, но основноя язык — джава
  • Низкий порог входа
  • Использует стандартные джава-решения для связанных технологий (SQL ORM = Hibernate, к примеру)
  • Подходит для прототипов
  • Стейтлесс по умолчанию


Резюмируя — Спринг отлично подходит для средне-больших проектов, потенциально долгоживущих. Греилс и Плей — отлично подходит для прототипов и тестирования идей, а также для чистых веб-прослоек без страшной бизнес-логики.
Если вы хотите «попробовать идею в полевых условиях», я бы брал Play 1.2/Grails + AngularJS. Это позволит запилить прототип значительно быстрее, чем на том же Спринге.
Ответ написан
Комментировать
asm0dey
@asm0dey
GWT + spring4gwt + spring data jpa
Ответ написан
Комментировать
Snowindy
@Snowindy
В дополнение в авторам остальных ответов, хочу добавить одну интересную деталь про разработку веб-приложений и их архитектуру.

Некоторые веб-фреймверки так устроены, чтобы брать на себя многие функции по работе с БД (к примеру, Grails использует для этого очень удобный ORM «GORM»). Таким образом, выбрав подобный фреймворк и не имея с ним особого опыта, и посмотрев сетевые примеры приложений типа PetStore (т.е. карманные приложения для примера работы фреймворка), можно случайно наколбасить так, что произойдет лок функциональности внутри веб-приложении.
Пример: Случайно может получиться так, что вся логика асинхронного процессинга сообщений окажется внутри веб-приложения. Я видел такое. Веб-приложение запускалось 5 минут…

Сразу это учитывайте при выборе архитектуры, разделяйте функциональность по слоям.
К примеру,
1. бэкенд для всей логики, не касающейся веб-приложения на Spring
2. Фронт на Grails, только необходимое
3. Оба модуля могут смотреть на одну и ту же базу, так что можно использовать лучшее из обоих миров, к примеру Spring-Data-JPA для бэкенда и GORM для фронта.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект