Мой вопрос здесь заключается в поиске лучшей практики, общих советов и понимания, а не решения конкретной проблемы.
Я нахожусь на ранних стадиях планирования проекта Rails, который я считаю довольно большим. На своем самом простом уровне он предлагает пользователям CMS для куки-резаков. Поэтому пользователи регистрируются и выбирают субдомен и получают довольно простой веб-сайт с CMS.
Поэтому у всего приложения есть около 4 разных "сторон":
- Торговый сайт, продающий продукт конечным пользователям - www.myapp.com
- Центральная область администрирования, в которой сотрудники могут регистрироваться и управлять учетными записями и т.д. - www.myapp.com/superadmin
- Собственные веб-сайты пользователей - subdomain.myapp.com
- Административная область пользователей /CMS - subdomain.myapp.com/admin
Итак, действительно, что я ищу, это лучшая практика для структурирования приложения. т.е. все ли оно должно быть свернуто в одно огромное приложение или должно быть разделено на более чем 2 (или более) небольших приложения?
При развертывании в качестве одного приложения я могу видеть проблемы, связанные с маршрутизацией, так как веб-сайт продаж и веб-сайты пользователей будут нуждаться в корневом пути, плюс я не хочу, чтобы маршруты, которые я установил для веб-сайта продаж, были доступны через пользователей 'веб-сайтов. Можно ли что-либо сделать либо в Rails, либо на уровне Apache (mod rewrites?), Чтобы не смешивать маршруты?
Если вы делитесь на 2 или более приложений, как вы получаете приложения, использующие одну и ту же базу данных? Это даже хорошая идея? Есть ли какие-либо выгоды от разделения приложения (например, изолирование проблем в одной области приложения, а не сведение всего)?
Я понимаю, что это сообщение поднимает довольно много разных вопросов, но оценивайте любые советы и прозрение, которые вы можете мне дать.