В каком порядке разрабатывать и тестировать web-приложение?
Здравствуйте.
Пытаюсь разработать приложение, архитектурно похожее на соц. сеть - тоже пользователи, тоже постят контент. Денег оплатить полностью разработку нет, поэтому хочу попытаться самостоятельно разработать бэкенд, а как он будет готов, заказать разработку мобильных клиентов(сайт менее приоритетный). Стек технологий выбран следующий: NGINX, PHP, PostgreSQL. Собственно, вопросы:
1. Должен ли я как-то учитывать при разработке серверной части тот факт, что клиенты будут мобильными приложениями а не обычным сайтом или сервак он и в Африке сервак?
2. В данный момент спроектирована база данных и вынесена на отдельный сервер. Каким должен быть следующий шаг - тестирование базы(правильно ли перемещаются данные, какую нагрузку выдерживает и пр.) или писать бэкенд и уже через запросы к бэкенду(а от бэкенда к базе) тестировать? Или может вообще стоило начать с установки NGINX-а?)
3. Знаю, что в больших проектах без кеширования никак. Вопрос: стоит ли изначально закладывать в проект кеширование(на случай если продукт станет популярным и будет много данных) или оно легко приделывается по мере необходимости?
Заранее спасибо.
ИМХО
1 Да, это было бы логично. Как вариант вести параллельную разработку API для мобилок.
2 Тестировать надо проект в целом, и каждый отдельный. Так что тестировать БД можно, но можно\нужно начинать разрабокту бэкенда.
3 Кеширование - сразу. Потом будете "еще раз переписывать" для работы кеша.
Самое главное в подобных проектах ИМХО это безопасность. После определения стека технологий я бы начинал реализовывать управление пользователями и правами доступа так как это основа - скелет, если можно. Затем логика уже самого приложения и права доступа на просмотр уже между пользователями (Мои записи может видеть...кто?)