Какой инструмет выбрать для бэкенда?

Хочу создать сайт для дизайнеров, в котором будет возможность выкладывать фото, писать комментарии, оценивать фотографии, авторизация пользователей и т.д. На фронте предпочитаю React. Что выбрать для бэка, чтобы сделать быстро, без идеи глобального масштабирования(личный проект), на небольшую нагрузку, ну и желательно как-то удобно с react'ом контактировать? Пожалуйста, опишите плюсы и минусы предлагаемого решения.

P.s. что угодно, кроме php
  • Вопрос задан
  • 988 просмотров
Решения вопроса 1
@dimuska139
Backend developer
Если ты предпочитаешь React и не хочешь PHP, я бы посоветовал тебе пилить API на Go (микрофреймворк Gin/Gonic) либо на Python (FastAPI, например). Чисто для API юзать огромных монстров типа Django избыточно. Но в то же время, как я понял, ты не хочешь прямо сильно заморачиваться, так что я посоветую тебе все же взять Django в такой связке:
  1. Django + django-rest-framework в качестве бэкенда
  2. React с тайпскриптом для фронтенда
  3. NextJS для рендеринга JS на сервере, чтобы с твоим сайтом "дружили" поисковые системы

Почему именно Django? Да, для API она, возможно, избыточна, но в ней все равно много штук, которые нужны и работают из коробки. Те же миграции, например, ORM-ка, sitemap, какая-никакая админка и т.п. Все встроено, особо настраивать не надо. Поскольку ты предпочитаешь на фронте React, тебе django-rest-framework для этого очень пригодится.
Минусы:
  1. Говорят, Django медленная. Ну, тут смотря с чем сравнивать. Питон весь сам по себе медленный. Да и все равно у нормальных проектов почти все отдается из кеша, так что разницы особой нет.
  2. Django в плане архитектуры не фонтан, "толстые модели" (модели, в которые впихивают логику на кучу строк кода) - такое себе.
  3. Если будут высокие нагрузки, то Django ORM тебе будет мешать. А если из Django убрать ORM, то смысла в ее использовании станет сильно меньше.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Попробуйте net core.

Из коробки умеет
* базы данных mssql mysql pgsql oracle
* Entity framework core
* oauth авторизацию, причем все уже написано, вам только переписать немного
* кучу пакетов для поддержки всего на свете
* возможность работать в линуксе и маке (и конечно в windows)
* отличная среда разработки, для большинства сценариев достаточно версии Community

Поддерживает реакт и целую кучу плюшек для клиентской сборки.
Ответ написан
deksden
@deksden
Enterpreneur
Особенно чего то никто Node не советует - а есть определенная логика: будет fullstack js.

Ну и express.js или любой фреймворк ноды для бэка. Пакетов в npm для всего - достаточно, тьюториалов в гугле - навалом, коммьюнити - огромное.
Ответ написан
Ваш ответ на вопрос

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

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