Фон
У меня есть личный проект, который я пытаюсь построить около 5 лет. По сути это онлайн-игра - веб-приложение. Это не "создатель денег", просто то, что я действительно хочу построить, поэтому найти финансирование для найма квалифицированной команды очень маловероятно.
На протяжении многих лет я построил два полнофункциональных прототипа, которые были успешными с точки зрения концепции/пользователя, но оба впечатляющих сбоя с архитектурной точки зрения; код был беспорядок, не мог поддерживаться или развиваться дальше, и его нужно было выбросить.
Потребовалось несколько лет, чтобы приобрести навыки, необходимые для создания клиента, который богат/с точки зрения состояния и довольно сложный. Я согласовал свою карьеру и учебу в этой области развития. Я, наконец, нахожусь в точке, где я могу создать прилично архивированный, сложный клиент, который может расти, и его не нужно выбрасывать через 6 месяцев. На этом фронте много работы, но, по крайней мере, я знаю, что могу это сделать, и делаю это достаточно хорошо. В фокусе есть еще одна история.
До сих пор я перестраивал back-end по крайней мере 11 раз с различными комбинациями PHP, SQL, Ruby, CouchDB, MongoDB, FriendlyORM, NodeJS и т.д. и т.д. Я, как правило, не очень далеко, прежде чем обнаруживаю огромные недостаток с моим подходом и начало: RPC to REST, реляционный к документированному. Я хорошо знаю, что преждевременная оптимизация - это корень всего зла, но приложение сильно зависит от быстро движущихся высокодинамичных данных. RESTful API-дизайн, масштабирование, окантовка, кеширование, аутентификация, репликация. У меня нет большого опыта в этом, и я не могу рассчитывать на то, что в ближайшее время будет достаточно прилично. Эти вещи требуют многолетнего изучения и опыта.
Имеет смысл найти специалиста в этой области, но без финансирования я чувствую, что мне нужно успешно развернуть другой прототип, чтобы привлечь нужного человека. Поэтому я должен просто построить его как можно лучше.
Вопрос
Предполагая, что, тем не менее, я построю его, внутренняя архитектура будет неправильной, и ее нужно будет перестроить, что лучший способ продолжить строительство "достаточно" для продолжения разработки клиентского приложения? Даже если это противно, есть ли способ "бросить" веб-сервис JSON? Ruby с Sinatra и MongoDB? Django? Есть ли какой-то встроенный webservice builder? Нет необходимости в веб-инфраструктуре полного стека, поскольку нет уровня представления - просто данные. Любые советы были бы с благодарностью.