¿Cuáles son algunas dificultades en el uso de JavaScript para el desarrollo de backend?

Su facilidad de uso y facilidad de aprendizaje.

No tiene sentido, ¿verdad? ¿Por qué sería eso algo malo?

A menos que tenga ganas de reinventar la rueda, usará paquetes creados por otras personas.

Pero dado que cada persona conoce a JS, existe una tonelada métrica literal de código incorrecto, porque no hay control ni supervisión de calidad centralizados.

Por lo tanto, debe confiar en que las cosas se implementan bien o inspeccionarlo usted mismo.

Los dos son malos porque confías en extraños al azar sin supervisión, o tienes que ser realmente hábil para poder inspeccionar el código de otras personas y saber que puedes analizarlo para buscar códigos malos, códigos que deben ser optimizado, o simplemente es inseguro, o causa pérdidas de memoria.

Y luego debe verificar qué paquetes usan esos paquetes, y así sucesivamente, porque todos confían en el código de todos los demás.

Vea el desastre de npm del panel izquierdo para ver solo un ejemplo.

Gestión de paquetes que supuse? Herramientas de administración de paquetes Javascript como NPM

seguramente son menos maduros que las herramientas de Java como maven. Las herramientas de administración de paquetes de Javascript como NPM son relativamente difíciles de aprender (como cómo administrar paquetes externos / crear scripts en el paquete json), y NPM también tiene muchos problemas y defectos.

Estoy en desacuerdo con tres de sus premisas:

  • Los tipos débiles están bien tratados por TypeScript, que se integra bien con JavaScript.
  • El infierno de devolución de llamada no ocurre con los patrones modernos de JavaScript (ver Promesas y async / wait).
  • Cluster usará múltiples hilos, aunque no de forma preventiva. Ejecutar Node.js detrás de Nginx es generalmente una buena práctica.

En cuanto a desventajas:

  • La velocidad es mejor que la mayoría de los otros lenguajes de script (Ruby, Python, PHP), pero no tan rápido como Java, C # o Go (o C ++, pero ¿quién usa C ++ para la web?) (Nota: Java, C ++ y C # deben escribirse usando una arquitectura impulsada por eventos para vencer la velocidad de Node, y las personas generalmente no lo hacen, por lo que Node aún podría ser más rápido)
  • El uso de la memoria es mejor por conexión que un subproceso del sistema operativo, pero no tan bueno como un Go Goroutine.
  • Para escribir código sólido, necesita un entorno de compilación que ejecute un linter (e idealmente TypeScript) en su código que le impida usar, por ejemplo, == .
  • Si ignora la interfaz, hay cosas inesperadas que pueden suceder debido a las “características” del lenguaje heredado.
  • Las pérdidas de memoria son posibles, y los principiantes pueden no darse cuenta de esto. Sin embargo, esto es cierto para todos los lenguajes basados ​​en GC. GC no es mágico.
  • Muchas muestras le muestran poner contraseñas de API u otros secretos directamente en su código JavaScript. Si hace eso y los registra, está arriesgando la exposición si el repositorio alguna vez está expuesto, y todos sus desarrolladores tendrán acceso a las claves, lo que no es una buena higiene.

(Falta de) depuración.

More Interesting

¿Es el 8% y no hay salario justo para el único tipo de backend en una startup?

¿Por qué algunos desarrolladores de backend desprecian a los desarrolladores frontend?

¿Qué son los términos front-end, back-end, del lado del cliente y todos los demás términos relacionados en el desarrollo y administración web? ¿Qué quieren decir?

¿Qué es lo que necesito hacer para ingresar a las startups como desarrollador de back-end de Java? Mi principal problema es determinar dónde comenzar a encajar en estas startups.

¿Cuáles son los mejores recursos para crear un backend de iOS en AWS o Google App Engine?

Quiero hacer un cambio de carrera en desarrollo web especializado en el back-end. ¿Qué habilidades debería estar adquiriendo para hacerme más valioso?

¿Cuál es la mejor manera de conectar Java a mi backend Node.js?

Cómo desarrollar un proyecto de principio a fin

¿Cuánto desarrollo front-end puede ser realizado por no ingenieros o programadores?

¿Cuáles son las ventajas y desventajas de usar Javascript en el back-end?

¿Puedo construir un sitio web de red social atractivo y funcional usando solo ASP.NET, C # y SQL para back-end y HTML y CSS para front-end?

¿Qué idioma se usa para crear el back-end de un sitio web?

¿La gente ha comenzado a lamentar haber elegido Python como su principal lenguaje de fondo?

¿Cuáles son algunos lenguajes de programación que debo aprender para el desarrollo web tanto para front-end como para back-end?

Mi amigo dijo que las habilidades de front-end están cambiando demasiado rápido y pierden tiempo para aprender, él me sugiere que me concentre en el backend, ¿qué te parece?