Какую архитектуру(mvc, hmvc...) выбрать для интернет магазина?

Встал вопрос на счет архитектуры.
Знаю что есть:
mvc - древний, для не больших проектов.
hmvc - более свежий вариант, для более нагруженных проектов.
Может что-то новенькое появилось и что лучше выбрать ?
Нагрузка предполагаемая около 100 000 посещений в день, максимум.
Минимальная 10 000 просмотров.

В связки будет:
nginx 1.7 (может по свежее версию)
php5.5, mysql5.5 (php 7? можно попробовать на.)
redis(для кэша, push, всяких оповещений)
Клиент написан на js.
Обмен данными асинхронный (ajax или websokets не знаю что лучше выбрать..)
да вроде бы не чего не упускаю.

REST или SOAP, склоняюсь больше к SOAP. т.к платежные системы начали переходить на SOAP и представляют любо SOAP или api.
  • Вопрос задан
  • 1125 просмотров
Пригласить эксперта
Ответы на вопрос 4
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Какую архитектуру(mvc, hmvc...) выбрать для интернет магазина?

CQRS + Event Sourcing.

REST или SOAP, склоняюсь больше к SOAP. т.к платежные системы начали переходить на SOAP

только REST (ну или RPC), SOAP это боль и унижение (если вы конечно не пишите и клиент и сервер на .NET)

php 7? можно попробовать на

А смысл? Потом проапдейтитесь.

Нагрузка предполагаемая около 100 000 посещений в день, максимум.

Ну это тип... мелочь. Пока забейте на производительность. Лучше потом этим заняться, вооружившись профайлером и нагрузочными тестами. И оптимизация эта будет включать введение дополнительных слоев кеширования и т.д.

Обмен данными асинхронный (ajax или websokets не знаю что лучше выбрать..)

Не знаю как правильно пишется, Июнь или Июль? Ирак или Иран?. websockets помогут если у вас очень интенсивный обмен данными между клиентом и сервером. В остальном long-poling попроще. Хотя я думаю вам push-уведомления вообще не нужны.

redis(для кэша, push, всяких оповещений)

Только для кэша и можно еще как шину данных и очередь использовать.

Клиент написан на js.

А можно на чем-то другом? (языки транслирующиеся в js не в счет).
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Вечная тема.
Дело в том, что я не фотограф и становиться им не собираюсь, но я программист и сисадмин и мне надо устроить выставку своих фотографий.
Подскажите алгоритм моих действий:
1. Я должен купить рамочки и гвоздики для развески фотографий.
2. Также я должен достать какой-то фотоаппарат, который позволяет делать красивые фотографии. Как называется такой фотоаппарат или его аналоги? Сложно ли им овладеть?
3. Я должен щелкать вышеозначенным фотоаппаратом пока не нащелкаю достаточно для выставки.
Всё ли правильно?
update. приобрел аппарат Олимпус за 200 рублей. Тема исчерпана...


Миллион вопросов, и ни одного по теме. Чувак искренне верит, что знание множества страшных слов хоть чем-то ему поможет.
Ответ написан
voidnugget
@voidnugget
Программист-прагматик
На самом деле всё равно на чём писать магазин, так как это банальный CRUD и AAA сервисы, на практике обычно даже до нормальной модели БД не доходит.

Браузерные SPA (одностраничные приложения) сулят проблемами с SEO, а нормально написать на react'е изоморфное приложение не каждый сможет, да и prerender.io с angular.js не всегда хорошо себя ведёт, хотя можно поиграться и рендерить angular.js в jsdom'e... в общем найти человека который в этом всём нормально разбирается сейчас очень сложно.

Для описанной архитектуры аля CQRS-ES нужны бюджеты от 3000$+, что, собственно точно не самая лучшая идея для среднестатистического магазина, либо нужен энтузиазм разработчиков на котором далеко не уедешь, и мотивировать одним лишь энтузиазмом очень сложно. Готовых решений в этом плане просто нет в природе, а проверить не пишут ли там пятиколёсные велосипеды не всегда представляется возможным.

Проще взять любой среднестатистический РНР фреймворк и не заморачивать себе одно место, покрыть нормально тестами (Codeception к примеру), прикрутить полнотекстовый поиск и отчёты, разобраться как правильно реализовать ААА, убедится что у вас нормализирована модель БД. В последнее время, я всё реже и реже вижу даже 3тью нормальную форму, про остальные 3 история умалчивает.

Если у вас есть нормальный бюджет, 8000-10000$ на разработку магазина - можно думать о всех, описанных выше, вещах, но вам нужно правильно организовать процесс разработки и контроль качества, разобраться в мотивации разработчиков, и только потом можно будет думать не тратятся ли эти деньги не понятно на что, потому что, на моём веку люди так миллионы у.дмурдских е.жей запускали в космос изобретая никому ненужное нечто, и среди таких контор есть даже IBM, Logitech, и TI.

В общем для начала стоит разобраться в более простых вещах, а потом пытаться строить андроидов, иначе нас всех ждёт Skynet им. Kokaas'a.

p.s. php для меня уже года 2 как мёртв, а в 7ом будет больше от Java чем от php.
Ответ написан
Ваш ответ на вопрос

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

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