Задать вопрос
@aresouji

Какие технологии использовать для реализации сервиса предоставляющего API?

Доброго времени суток.
Стоит задача реализовать сервис - деловую платформу, включающую в себя:
  • Своеобразную доску объявлений
  • Систему блогов
  • Форум
  • Новостной ресурс
  • Другой незначительный функционал

Так же в перспективе планируется ввести систему коммуникации между пользователями, пока сходимся на real-time чате.
Так как работать все это должно на разных платформах: web, apple, android, win phone, было принято решение разработать main сервер общающийся с клиентом по rest (отдавать будем json)
Собственно дошло дело до инструментов, тут выбираем между асинхронной nodejs (говорят, что нода в API хорошо себя чувствует) и обычным php. Примерная аудитория 100-500 тысяч пользователей (не смейтесь с такого разброса, не знаем как все это пукнет) + дальнейший рост, возможно и больше миллиона, все будет зависить от активности ЦА и работе маркетинг отдела. В качестве базы берем postgresql. Что думаете по этому поводу?

Мы и сами понимаем, что инструмент необходимо выбрать тот, с которым имеешь опыт работы, но сервером заниматься будем не мы и студию подрядчика будем выбирать исходя из интересов проекта.

Всем спасибо!
  • Вопрос задан
  • 824 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
Wolfnsex
@Wolfnsex Куратор тега Веб-разработка
Если не хочешь быть первым - не вставай в очередь!
А что Вы ожидаете услышать? В АПИ много кто чувствует себя хорошо, и нода и ПХП и даже С++. Наговнокодить можно на чём угодно, заставить проект работать очень быстро - можно и на ПХП. К тому же, большая часть нагрузки, как мне видится - ляжет на БД, а её проектирование и настройка, особенно это относится к Postgres - это целая наука. Я пока не очень представляю, как NodeJS будет держать такое кол-во пользователей (скорее всего от того, что я не очень хорошо знаком с NodeJS), но случаев когда она с треском падала - в истории достаточно.

Что думаете по этому поводу?
Я думаю, что Вы предоставили слишком мало входных данных и конкретики. Так как, например, даже горячо любимый мной Postgres - в ряде случаев, далеко не лучший выбор. А посоветовать пихать "Базу N" везде, где только можно и нельзя, не понимая всей сути проекта, могут только те, кто с другой базой не работал, и считает, что единственная технология с которой он знаком - лучшая из всех возможных. Посему, в виду скудности входных параметров, ответ на Ваш вопрос будет, либо таким же размазанным как мой, либо чем-то из серии "Юзайте NodeJS+MySQL, мой блог с посещаемостью 30 чел./месяц, вот уже 4-ый год как стабильно работает в такой связке! И ещё на WindowsServer всё это установить не забудьте! Лучшее сочетание из возможных."
Ответ написан
Rou1997
@Rou1997
тут выбираем между асинхронной nodejs (говорят, что нода в API хорошо себя чувствует) и обычным php.

А что из этого вам лучше знакомо?
Ваша основная цель - реализовать проект, а если будете использовать незнакомое то будет еще и цель изучить незнакомое. Тем самым, вы будете тратить гораздо больше энергии и времени.

Тоже самое на вопросы вроде "готовый фреймворк vs самописный фреймворк vs китайский код без фреймворка" - самописный фреймворк это самый заманчивый вариант на будущее, но он же и самый энергоемкий.

Если проект слишком энергоемкий, то будете тратить много времени, а если вас не будет это устраивать и будете торопиться, то случится нервное истощение, затем нервный срыв, "выгорание", можно в итоге не только все потерять, но даже попасть к психиатру.

Так же в перспективе планируется ввести систему коммуникации между пользователями, пока сходимся на real-time чате.

Насчет real-time, есть один момент: с WebSocket лучше работать на Node.js.
А если у вас клиентом служит браузер, то вам желателен WebSocket, потому что иного доступа к сокетам в современных браузерах нет (Flash считаем устаревшим), а сами сокеты желательны для real-time.
Но это не самый важный момент.
Ответ написан
@malbaron
Любой, что лучше знаешь.
PHP, Go, Ruby, NodeJS, Python, Net, C/C++,Perl - да что угодно.
Все варианты реализация имеют право на жизнь.

В качестве базы берем postgresql


Если проект очень перспективен, то:
Я бы выбрал Mongo+Postgres+Tarantool.
Разные описанные вами виды данных удобнее хранить и быстрее обрабатывать в разных СУБД.
Будет и быстрее и ресурсов будет меньше жрать.

Но думается, исходя из того, что вы задаете вопрос - а на чем писать - квалификации исполнителей недостаточно для определения какие данные куда положить.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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