Nodejs + Express vs Django: Выбор наиболее подходящего бэкенд-компонента для заданных требований
Я пытаюсь построить архитектуру программного обеспечения для своей веб-разработки. Основные требования к сайту следующие:
- визуализировать данные в реальном времени
- проводить анализ машинного обучения
- отправлять информацию о визуализации по электронной почте или SMS
Концепция такого веб-приложения состоит из базы данных, бэкенда и компонента фронтенда. Я уже выбрал базу данных временных рядов.
Несмотря на мои исследования, я не могу определить, какой компонент бэкенда лучше всего соответствует требованиям: Nodejs + Expressjs или Django. Мои знания программирования на Javascript и Python находятся на одном уровне.
Почему узел:
- его модель однопоточного цикла событий для веб-приложений реального времени
- тот же язык программирования для выбора javascript-фреймворка на frontend-стороне (но python для анализа машинного обучения)
- большая гибкость, чем у Django, благодаря паттерну MTV .
- (обычно) меньшее время выполнения, чем python-код
Почему Django:
- Django Channels для веб-приложений реального времени
- язык python в бэкенде, фронтенде и для анализа данных
- более быстрый процесс разработки благодаря простоте языка
- более безопасный благодаря встроенным средствам безопасности
Вопрос: Есть ли другие технические аргументы, почему я должен рассмотреть возможность выбора Nodejs или Django или аргументы за то, чтобы не выбирать один из них?
- Ну, Django также очень гибкий и мощный в том смысле, что вам нужно писать меньше шаблонного кода и дает вам много решений из коробки, таких как панель администратора, аутентификация и многое другое... .
- Да, nodejs действительно быстрее по сравнению с django, но скажите мне, насколько быстрее? Это действительно имеет значение?
- Django также имеет концепцию, такую как celery, которая используется для фоновых задач, таких как отправка почты. Возможная альтернатива потоковой обработке в nodejs. .
- В nodejs у вас есть вебсокеты, а в django - каналы .
- Вы можете делать машинное обучение в обоих, nodejs также имеет поддержку tenserflow и многие другие библиотеки.
Заключение: По моему мнению, вам следует выбрать Django, laravel или Rails или что-то более зрелое, чем они, Причина в том, что веб-фреймворки nodejs довольно молоды на рынке, в то время как django существует уже более 20 лет, я думаю, и то же самое для laravel и т.д.. Express - это много кодового кода, а что касается nestjs, то он также довольно молод.
Надеюсь, мое предложение поможет вам. Лично я тоже начинал с nodejs, а теперь перешел на Django. Я не говорю, что nodejs плох, он потрясающий, но время имеет значение, если вы хотите разрабатывать материал быстро, то nodejs не лучшее решение.