¿Cómo debo seleccionar una pila de tecnología para mi inicio?

Creo que hay 5 cosas que debes considerar.
Ya he escrito sobre esto en mi blog, así que lo resumiré aquí:

1. Prefiere lo que ya sabes

Moverse rápido es más importante que usar lo último y lo mejor. Por lo tanto, prefiera usar entornos que ya conoce y con experiencia en lugar de tener que pasar por una curva de aprendizaje para hacer las cosas.

2. Considere el espacio del problema

A veces, el espacio en el que se encuentra su producto dicta la pila.
Algunas pilas de tecnología son específicamente fuertes en ciertas áreas (debido a limitaciones técnicas, o simplemente a una comunidad fuerte), lo que las convierte en los entornos preferidos en esas áreas.
Por ejemplo: probablemente necesitará NodeJS si necesita escribir código isomorfo que se ejecute tanto en el servidor como en el navegador, Python es especialmente una cadena cuando se trata de computación científica, para la computación distribuida probablemente tenga que ir con Spark \ Hadoop ( lo que significa elegir Scala \ Python) …

3. Potencial de reclutamiento

Elegir un idioma exótico \ plataforma (¿Erlang?) Podría adaptarse a su espacio problemático y ayudarlo a moverse rápido al principio. Pero, ¿puedes escalar tu equipo con esa tecnología? ¿O le resultará difícil encontrar y / o capacitar a los desarrolladores para que trabajen en su sistema?

4. comunidad

Desea elegir una tecnología que tenga una comunidad activa. Los errores se corrigen, las funciones se agregan y cuando estás atascado encuentras ayuda …

5. Tiempo para tu primer hito

Enfrentarlo. No eres Google \ Facebook. Tomará mucho tiempo y suerte llegar a tal escala. Así que olvídate de construir una solución de “escala web” poco realista y descubre hitos realistas y cuál es la mejor manera de lograrlos rápidamente.
Incluso Facebook comenzó como una aplicación PHP: S

Descargo de responsabilidad: trabajo en Hasura.

Hola,

Como otros han señalado, sería aconsejable apuntar a un conjunto mínimo de características que puede construir y lanzar rápidamente, obtener comentarios de los usuarios sobre el producto y luego agregar más funciones a su plataforma. El enfoque debe estar en ir al mercado rápidamente y debe usar herramientas que lo ayuden a hacerlo de manera confiable. Es mejor no construir todo el backend desde cero si no está familiarizado con el desarrollo web.

Hay varios buenos proveedores de BaaS que pueden ayudarlo a comenzar rápidamente con un MVP. Sin embargo, antes de tomar cualquier decisión que esté establecida en piedra, le recomendaría que consulte esta publicación de blog: Razones para no usar Firebase sobre cómo no hacer elecciones tecnológicas.

Nuestro trabajo en Hasura Engineering ha sido fundamentalmente para proporcionar un BaaS que es completo para la mayoría de las aplicaciones de producción. Nuestro objetivo es proporcionar el soporte SQL más cercano a las API JSON. También proporcionamos algunas características de PaaS que le permiten implementar su aplicación rápidamente y le dan control total sobre su infraestructura.

Echa un vistazo a Hasura con esta introducción rápida: Parse + Heroku en tu propia infraestructura.

PD: Lea nuestra comparación con Firebase aquí: https://compare.beta.hasura.io

Espero que esto ayude.

Para el inicio, seguiría los criterios:

  1. Posibles reclutamientos, ¿cómo puede encontrar fácilmente grandes desarrolladores para ese idioma?
  2. Mayor velocidad y bucle de retroalimentación rápida en desarrollo
  3. Lenguaje que forma parte del gran ecosistema que ofrece millones de bibliotecas de código abierto
  4. Lenguaje que tiene excelentes herramientas / IDE

Aquí puedo recomendar algunos ejemplos, cuando elegir un Node.js es una mejor opción para backend que PHP y viceversa cuando se trata del desarrollo de aplicaciones móviles.

Debe considerar seriamente a PHP si su aplicación tiene un módulo CMS, un sistema de gestión de pagos (comercio electrónico) o si se espera que procese una gran cantidad de datos y use bases de datos relacionales.

Node.js es la mejor opción cuando se trata de desarrollar servicios web, sockets, módulos de chat, aplicaciones que usan transmisión de datos en tiempo real, por ejemplo, música y transmisión de movimiento, seguimiento de posición.

¿Quieres saber otras diferencias importantes entre estos dos lenguajes de programación? Compruébalos aquí.

Al seleccionar una tecnología para su inicio, piense en cómo puede ayudarlo a lograr sus objetivos a largo plazo en lugar de ser agradable jugar con ella por un tiempo.

Aquí, he enumerado algunas de las cosas que debe considerar:

No vayas por las palabras de moda

Elegir una tecnología popular en este momento puede ser tentador, pero para una startup sería más sabio optar por la tecnología probada que ha existido por un tiempo y demostró su valor.

Probar la tecnología más moderna es bueno si tiene un proyecto paralelo que puede sacrificar únicamente con ese fin, para que pueda aprender cosas nuevas y ver lo que es bueno para usted, pero también lo que no lo es.

Poner en juego tu startup eligiendo una nueva tecnología solo porque ha sido ampliamente discutido recientemente, puede no ser una buena idea.

Tu habilidad para encontrar desarrolladores familiarizados con ella

Al decidir una pila tecnológica determinada, tenga en cuenta que eventualmente su startup crecerá y tendrá que contratar más desarrolladores, idealmente familiarizados con la tecnología que utiliza.

Una vez más, si opta por la tecnología que es nueva y no es utilizada por un grupo más amplio de desarrolladores, puede resultarle difícil contratar a una persona adecuada para unirse a su equipo.

Soporte de proveedores a largo plazo

Para su seguridad de inicio, debe elegir una pila tecnológica que tenga un soporte de proveedor a largo plazo.

Por supuesto, no puede decir si la tecnología que parece legítima ahora no se cerrará repentinamente, ¿recuerda el caso Parse? Fue comprado por Facebook y después de un año cerraron, a pesar de que muchos desarrolladores lo estaban usando.

Si desea ahorrarse el regateo de las migraciones costosas, verifique si la tecnología que está a punto de usar tiene un soporte de proveedor comprobado a largo plazo.

Considere la comunidad a su alrededor.

Si tiene un problema, puede que no haya una solución mejor que pedir ayuda a otros desarrolladores, así es como funciona StackOverflow.

Pero si utiliza una pila tecnológica con la que no están familiarizados muchos desarrolladores, la posibilidad de obtener las respuestas a sus preguntas se reduce.

¿Se ajusta a tus necesidades?

Al final, piense en sus objetivos comerciales, metas a largo plazo, las necesidades de su audiencia, etc.

¿La pila tecnológica que está a punto de elegir ayuda para lograr estos objetivos y satisfacer sus necesidades?

Responder estas preguntas le facilitará la elección de una pila tecnológica para su inicio.

¡Espero eso ayude!

Respondo preguntas sobre desarrollo web y móvil, gestión de proyectos y gestión de una empresa. Sígueme para obtener más respuestas.

Estaba mirando un código que escribí para una startup hace varios años. Hombre, ese era un código feo.

Pero funcionó.

Ese inicio fue adquirido, lo que significa que fue un éxito y, por implicación, significa que el código fue exitoso, aunque fue feo.

El punto es que la optimización del código es una discusión para un día posterior. En este momento solo tiene que levantarse, ponerse en marcha y responder a lo que sus clientes le enseñan.

Si usted mismo es un desarrollador LAMP infierno sobre ruedas, entonces vaya con eso. Si la pila MEAN es lo tuyo, pero significa utilizarla. Su capacidad de respuesta es el aspecto más destacado de la elección de tecnologías.

Elija lo que le guste para trabajar, ¡realmente no importa!

Al final, el 90% se mete en la papelera (lo siento).

Lo único importante es: obtener su MVP en el camino para demostrar su concepto. Tienes que resolver problemas reales y no perder el tiempo eligiendo la pila correcta. Si por casualidad su idea funciona, su pila inicial podría ser reemplazada de vez en cuando.

Buena suerte construyendo ..

Para ser honesto, solo hay una respuesta única:
Elija la pila con la que sea más productivo.

Lo más importante es que no desea sobre-diseñar y comenzar a construir hacia su primer MVP (producto mínimo viable).
He experimentado la misma situación hace un tiempo. Escribí una publicación de blog sobre esto que puede leer aquí.

Si solo tiene conocimiento del desarrollo móvil, es posible que desee diferir la construcción del back-end al menos hasta después de validar su MVP y tal vez utilizar un back-end móvil como servicio por ahora.

More Interesting

¿Qué debería preferir para el backend del desarrollo web: Python o Node.js?

Me encanta codificar y me siento cómodo con la lógica tanto de front-end como de back-end, pero soy un asco en CSS y diseño. ¿Qué debo hacer para mejorar mis habilidades de CSS?

En la creación de una aplicación web, desarrollo front-end o back-end, ¿qué es lo primero?

Sé HTML / CSS y JavaScript y C ++. Quiero aprender un idioma del servidor. ¿Qué debo aprender y tiene futuro: Java, Python (preferir), Nodejs o PHP?

¿Dónde puede un desarrollador de backend aprender diseño web práctico?

¿Cuáles son algunos problemas de integración entre el front-end y el back-end de las aplicaciones web?

¿Cuál es la diferencia entre desarrollo web y diseño web? ¿Qué es el desarrollo front-end y back-end?

Cómo integrar la pasarela de pago para el sitio web de mi proyecto

¿Qué pasos debo seguir para convertirme en desarrollador web de backend?

¿Qué tipos de aplicaciones de back-end se pueden escribir con Go?

¿Cómo se construyen los sistemas backend de aplicaciones populares como pinterest? ¿Se construyen con enchufes o hay algo más?

¿Qué debo aprender para el desarrollo web (front-end y back-end) en 2017?

¿Es común que los desarrolladores frontend no puedan ganar el mismo nivel de respeto que los desarrolladores back-end porque frontend es más fácil?

¿Cuándo debería considerar el uso de varios idiomas en un sistema de fondo?

¿Cuál es la forma más eficaz y accesible de transferir datos desde el back-end al front-end?