Lo siento, todavía soy un novato en el desarrollo de software, pero aquí está mi opinión:
Use cualquier tecnología con la que su equipo esté más familiarizado
Creo que VueJS funciona bien con casi cualquier backend, suponiendo que esté usando AJAX en lugar de páginas generadas por el servidor.
- Soy un desarrollador de PHP con muchos años de experiencia, principalmente en Back End Development. Quiero aprender cosas nuevas, algo requerido en el mercado que paga bien. ¿Qué debo esperar?
- ¿Qué puede construir un desarrollador front-end y back-end en solo 2 semanas o un mes?
- Estoy aprendiendo desarrollo web. Quiero ser un desarrollador de back-end. ¿Tengo que ser un desarrollador front-end primero para entrar en el campo?
- ¿Puedo escribir un backend complejo usando R?
- ¿Cuál es un mejor marco para que un desarrollador web back-end aprenda, reaccione o sea angular?
Hay un marco de back-end para casi todos los idiomas, y creo que la mayoría de las veces puedes usar tu idioma favorito.
Si su equipo es principalmente desarrollador front-end, use Node.js.
Si su equipo ha trabajado principalmente con la JVM, entonces use Java + Tomcat
Si está más familiarizado con Python, considere Flask
Creo que todas estas son tecnologías de backend muy maduras y potentes, y han sido utilizadas comercialmente por muchas compañías (corríjanme si me equivoco).
Por supuesto, siempre hay casos especiales en los que un requisito significa que tienes que seguir con una pila de tecnología. Por ejemplo, si necesita manejar decenas de miles de solicitudes cada segundo con un solo servidor, entonces puede que tenga que usar C + FastCGI + berkelydb. Pero estos casos son extremadamente raros, y la mayoría de las veces puedes usar tu idioma favorito.
También depende de si te gusta la escritura estática / dinámica. Hay fuertes argumentos para ambos. Algunos dicen que los lenguajes estáticos son mejores porque el compilador puede detectar la mayoría de los errores, mientras que otros sostienen que las pruebas unitarias en lenguajes dinámicos pueden lograr lo mismo y deben hacerse de todos modos. Sinceramente, creo que depende de con qué se sientan más cómodos usted y su equipo.
Aquí están las tecnologías que he usado y mis experiencias con ellas:
Python + Frasco
Pros:
- Fácil de aprender
- Buenas funciones de depuración (por ejemplo, evaluar el código en la pila)
Contras:
- Lento en comparación con otros idiomas, pero si no está ejecutando un algoritmo complejo, debería estar bien. La mayoría de las operaciones de datos se pueden enviar al motor de la base de datos.
Java + Tomcat
Pros:
- Buen rendimiento (para la mayoría de los casos)
- Acceso a una gran cantidad de bibliotecas (consulte el repositorio de Maven)
- Gran IDE (IntelliJ IDEA, que es gratis)
- Buena depuración (puntos de interrupción, evaluación de expresiones, instantánea de subprocesos)
Contras:
- El código puede ser detallado
- El uso de memoria puede ser alto si no se optimiza correctamente
C + FastCGI
Pros:
- Rendimiento extremadamente rápido
- Uso de memoria extremadamente eficiente
Contras:
- Manejo de excepciones difícil, un solo error probablemente bloqueará todo el servidor (no solo devolverá 500) si no se maneja correctamente
- Puede haber problemas multiplataforma
- La gestión explícita de la memoria es difícil y tediosa
NodeJS : lo siento, no he usado esto todavía, pero creo que su rendimiento es bastante bueno y puede usar una gran cantidad de bibliotecas javascript.
Además, creo que debería escribir tantas pruebas como sea posible, la mayoría de los lenguajes tienen marcos de pruebas unitarias y de propiedad. Y creo que para el patrón de arquitectura / diseño, la “arquitectura de cebolla” es bastante buena
Esta es mi primera respuesta quora, todos los tipos de críticas son bienvenidas.