Задать вопрос
salkat
@salkat
Бизнесмен. Создаём контакт-центры

Порекомендуйте, на чём сделать backend?

На чём сделать backend?

Приложение по структуре похоже на чат с комнатами, но пересылается не пользовательские фразы, а служебная информация.

Ожидаются запросы от клиентов, иногда в довольно большом количестве. Запросы могут быть относительно затратными по времени. В принципе, задержка с ответом сервера в 1-2 секунды проблемы не создаст. Но больше - не хотелось бы.

Варианты:
- PHP. Минус в том, что после каждого выполнения скрипт убивается, а хотелось бы некоторую инфу хранить от сессии к сессии. Например, авторизационные данные. Можно их хранить на сервере базы данных, но тогда каждый запуск скрипта означает ещё и обращение к серверу баз данных. Вроде есть какие-то методы для хранения статичных данных, но, я так понял, это своего рода танцы с бубном.
- node.js, Смущает его однопоточность. Есть немалый риск что новый запрос придёт до того, как закончится обработка старого. Как это отлаживать - хз.
- python. Минусы?
- perl. Минусы?
- может что-то ещё?

Производительность имеет значение

UPD: вопрос "на чём сделать", а не "к кому обратиться". Варианты "найти кого-то, кто сделает" не подходят
  • Вопрос задан
  • 1203 просмотра
Подписаться 1 Оценить 5 комментариев
Пригласить эксперта
Ответы на вопрос 7
Fragster
@Fragster
помогло? отметь решением!
Q2W
@Q2W
На каждом из указанных языков можно сделать быструю реализацию.
Судя по вот этому:
Минус в том, что после каждого выполнения скрипт убивается

Смущает его однопоточность.

вопрос больше стоит в плоскости опыта программирования, чем выбора конкретного языка.
Но даже без учёта этого обычно эффективней всего писать на том, на чём лучше всего умеет команда.
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Я не говорю, что надо делать на php, но все описанные его минусы не адекватные.
1 . Авторизационные данные в сессии, а сессия не обязательно в БД.
2. БД это не атрибут php. БД у Вас в любом случае будет и к ней будут запросы.
3. Есть сокеты и чаты на них делают чаще.

П.С.: По такому описанию (2 абзаца) давать совет по выбору инструмента не есть правильно. Но как правило сделать можно на каждой из приведенных технологий и стоит выбрать то что знаете.
Ответ написан
Комментировать
k12th
@k12th
console.log(`You're pulling my leg, right?`);
- node.js, Смущает его однопоточность. Есть немалый риск что новый запрос придёт до того, как закончится обработка старого. Как это отлаживать - хз.

Дык за это отвечает платформа. Новые запросы просто стоят в очереди (ну естественно если их не оборвет по таймауту клиент или reverse proxy).
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Python
software engineer
> хранить на сервере базы данных, но тогда каждый запуск скрипта означает ещё и обращение к серверу баз данных
можно использовать memcached
Ответ написан
@Levhav
Возьмусь за разработку проектов любой сложности.
Попробуйте связку PHP + CppComet в ней CppComet будет обслуживать конекты по вебсокетам, а php бекенд будет обслуживать обычные http запросы и выполнять бизнеслогику вашего приложения.

Вопрос с авторизацией решится просто так как в api CppComet предусмотрен механизм авторизации
Сам по себе CppComet является многопоточным сервером на C++, а апи вызовы можно делать от любого бекенда.
Ответ написан
Комментировать
ArsenBespalov
@ArsenBespalov
Сам себе разработчик
Слишком все поверхностно, самый правильный вариант — это найти грамотного руководителя проекта (с бооольшим опытом разработки) и он уже сможет определиться на чем писать ваш проект и команду разработчиков ему же поручить, чтобы и набирал и руководил, иначе говно получится.

А вам надо доверится этому человеку и тогда проект реально получится.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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