Antecedentes¿Cómo construyo algo cuando sé que me equivocaré?
tengo un proyecto personal que he estado tratando de construir durante unos 5 años. En esencia, es un juego en línea: una aplicación web. No es un "generador de dinero", simplemente es algo que realmente quiero construir, por lo que es muy poco probable encontrar el financiamiento para contratar un equipo calificado.
He creado dos prototipos totalmente funcionales a lo largo de los años, ambos exitosos desde una perspectiva de prueba de concepto/usuario, pero ambos fallas espectaculares desde una perspectiva arquitectónica; el código era un desastre, no se podía mantener ni desarrollar, y tuvo que descartarse.
Tomó un buen par de años para adquirir las habilidades necesarias para construir el cliente, que es rico/con estado y bastante complejo. Alineé mi carrera y estudios hacia este lado de la brecha del desarrollo. Finalmente, estoy en un punto en el que puedo construir un cliente sofisticado y de arquitectura digna que pueda crecer y no necesite ser expulsado 6 meses después. Hay mucho trabajo por hacer en ese frente, pero al menos sé que puedo hacerlo y hacerlo razonablemente bien. El back-end es otra historia.
Hasta ahora he reconstruido el back-end al menos 11 veces con varias combinaciones de PHP, SQL, Ruby, CouchDB, MongoDB, FriendlyORM, NodeJS, etc. No suelo llegar muy lejos antes de descubrir alguna gran error con mi enfoque y comienzo de nuevo: RPC a REST, relacional a documento impulsado. Soy consciente de que la optimización prematura es la raíz de todo mal, pero la aplicación es muy dependiente de los datos dinámicos y de rápido movimiento. Diseño RESTful API, escalado, fragmentación, almacenamiento en caché, autenticación, replicación: no tengo mucha experiencia con esto, y no puedo esperar ser remotamente decente en el corto plazo. Estas cosas requieren años de estudio y experiencia.
Tiene más sentido encontrar un experto en este campo, pero sin financiación, siento que necesito implementar con éxito otro prototipo para atraer a la persona adecuada. Entonces, tendré que construirlo lo mejor que pueda.
La pregunta
Suponiendo que sin embargo yo construyo, la arquitectura de fondo va a estar mal y tendrá que ser reconstruido, ¿cuál es la mejor manera de proceder con la construcción de "lo suficiente" para continuar desarrollo de la aplicación cliente? Incluso si es desagradable, ¿hay alguna manera de "juntar" un servicio web JSON? Ruby con Sinatra y MongoDB? Django? ¿Hay algún desarrollador de servicios web fuera de la caja? No es necesario un marco web de pila completa ya que no hay capa de presentación, solo datos. Cualquier consejo sería muy apreciado.
@ Franky-D: _ "Soy consciente de que la optimización es la raíz de todo mal" _. ¿Por qué? –
¿Quizás quiso decir la optimización * premature *? – FrustratedWithFormsDesigner
@ Franky-D Es la optimización ** prematura ** que es la raíz de todo mal - vea http://c2.com/cgi/wiki?PrematureOptimization –