Какой язык/фреймворк выбрать для разработки бэкэнда для SPA приложения?

Добрый день!
Начал разрабатывать SPA веб-приложение (назначение: CRM/рабочее место), на фронтенде планирую использовать VueJS + TypeScript.
Бэкэнд должен являться REST сервером, в дальнейшем возможен переход на Web Socket подключение. Не могу определиться с выбором языка (технологии) на базе которого его разрабатывать.
На данный момент рассматриваю NodeJS или Java.

В NodeJS привлекает его простота, единый язык с фронтендом. К минусам - отсутствие жесткой типизации и структур ООП (частично решается ES6 и/или TypeScript), производительность (пишут что ниже чем в Java, если не использовать биндинги к C/C++ библиотекам).

В Java привлекает привычное ООП, строгая типизация. Но на данный момент пока не ясно как реализовывать REST/WS сервер в плане многопоточности. Нужно ли самому реализовывать многопоточность и управлять потоками и распределять нагрузку? Реализована ли многопоточность под капотом в REST и подобных фреймворках так, что мне не нужно будет об этом заботиться? Или вообще здесь можно и нужно использовать асинхронный подход как в NodeJS?

Хотелось бы услышать за и против относительно nodejs и java для решения данной задачи, а также хорошие практики.
  • Вопрос задан
  • 987 просмотров
Пригласить эксперта
Ответы на вопрос 6
tsepen
@tsepen
Frontend developer
Если на фронте Typescript, имеет смысл на беке использовать тоже самое, это удобно и надежно. Удобно работать с сокетами, производительность хорошая, ресурсов потребляет меньше чем java, разрабатывать быстрее, можно использовать серверный рендеринг для vue, в общем выбор очевиден.
Ответ написан
1) Java - серьезно? Ты потратишь недели две, чтобы тупо разобраться в том, как поднять хеллоу-ворд на условном Spring. Еще столько же, чтобы настроить мавин, подключить БД и создать первую пачку классов. Все это будет сопровождаться анальной болью и сомнениями в том, а не тупой ли ты часом, и зачем тебе это все надо.

P.s. Java - это самая кровавая технология, что есть. За неё платят хорошие деньги именно за то, что там можно все настроить, и ты будешь все настраивать.

2) Хочешь что-то простое и удобное, возьми

  • Django + Django Rest/ (если могешь в питон)

  • Symfony(само поднятие и всякие автоваринги не очень то просто, но рест пишется приятно)/

  • .net Core (там на удивление рест-приложения поднимаются очень просто).
Ответ написан
mtix
@mtix
Front-end developer
Задавался тоже вопросом производительности java, nodejs. Хороший, раскрытый ответ нашел здесь.
Ответ написан
MDiMaI666
@MDiMaI666
Талантливый программист
посмотри тут если надо готовое решение vue + laravel + websoket на ноде
https://github.com/iluminar/goodwork/blob/master/r...
там еще куча полезных кусков. я поднимал но так и не воспользовался. мне не понравилось.
а еще у меня есть решение, которое мы с вами можем обсудить. если интересно
напишите на почту mdimai666@mail.ru
Ответ написан
@alikenski
Fullstack Web Developer
Это зависит от проекта. Для такого проекта я бы использовал NodeJS(Express) и в дальнейшем подключить socket.io
Ответ написан
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Ваш ответ на вопрос

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

Похожие вопросы