¿Cuáles son las desventajas de depurar Node.js? ¿Vale la pena aprender Node.js si es difícil de depurar?

La depuración de Node.js puede ser bastante fácil, aunque es como cualquier otro entorno de codificación: si escribe un código terrible, puede ocultar todo tipo de errores, mientras que si escribe un código limpio, los errores serán fáciles de encontrar y corregir.

Si se refiere a la depuración “con un depurador”, sí, eso también es fácil. Inicie VS Code (funciona en todas las plataformas principales) y después de cinco minutos de configuración, puede colocar puntos de interrupción, inspeccionar variables y ejecutar comandos de consola directamente desde su editor.

Encuentro que un buen JavaScript linter encontrará y evitará muchos errores, y que TypeScript más un linter evitarán aún más. Una vez que está utilizando TypeScript, de hecho, las herramientas pasan de ser simplemente adecuadas a espectaculares. Suena muy recomendable para cualquier tarea no trivial.

Creo que esto realmente depende de tu código. Sé que cuando comencé con nodejs me encontré con un montón de problemas. Hasta el día de hoy, a veces todavía tengo problemas que son difíciles de resolver. Según mi experiencia, la mayoría de mis problemas que no son tan simples como he usado un nombre de función incorrecto o un simple error de ortografía son los siguientes:

Por referencia, este es un tema muy difícil de tratar y es por eso que tenemos bibliotecas tan buenas como Immutable.js. A veces edita la misma variable en 3 lugares diferentes, lo que hace que el objeto general cambie en diferentes momentos. Al final es fácil de evitar, solo use siempre objetos / matrices que sean inmutables o simplemente no edite un objeto en 3 lugares diferentes.

Olvidar todo es asíncrono en nodejs. Me levanté de php y esto para mí fue un problema al comenzar, pero después de ajustar mi forma de pensar y usar herramientas síncronas como promesas y generadores, ya no tengo este problema y realmente he comenzado a amar el hecho de que es asíncrono

De nuevo, en realidad todo se reduce a tu código. Incluso los ejemplos que di son sobre la forma en que estructuró. Esto es más o menos lo mismo para todos los idiomas. Realmente no creo que node sea diferente de ningún otro idioma a este respecto. A medida que te sientas más cómodo con él, entonces realmente debería convertirse en una segunda naturaleza.

Si ya conoce otro idioma del lado del servidor, y no necesita nada que Node.js pueda hacer y su idioma actual no pueda, sería una pérdida de tiempo. Pero si necesita algunas de las funciones en Node.js, sería importante aprenderlo.

(La depuración es fácil o difícil, dependiendo de cómo escriba el código y de lo bueno que sea en la depuración. [Y algún otro factor aleatorio. No he tenido problemas para depurar problemas bastante complejos en PHP bastante complejo, y yo ‘ he tenido algún código PHP que tardó horas en depurar un pequeño problema.])

No es difícil de depurar: puede usar herramientas de depuración estándar como la mayoría de los idiomas. Blink Developer Tools tenía un depurador agradable que puedes usar con diferentes entornos de programación. Además, dado que su modelo de concurrencia es tan simple, console.log puede llevarlo mucho antes de que necesite recurrir a una herramienta de depuración real.

JavaScript utiliza un lenguaje de tipo débil, por lo que el escritor de funciones puede estar lidiando con tipos de datos completamente inesperados en tiempo de ejecución. Esto puede dificultar el mantenimiento. Dado que el compilador no siempre (generalmente) conoce la estructura de clase que se está pasando a su función, es posible que no pueda proporcionar ninguna ayuda durante la escritura del código. Esto puede dificultar la escritura del código. (Tuve que lidiar con una biblioteca donde diferentes clases relacionadas tenían diferentes nombres para cosas que eran lógicamente iguales entre los dos. (Ancho, Ancho, _ ancho …) fue realmente doloroso escribir en esa API).

Sí, vale la pena aprenderlo. Puede depurar cualquier lenguaje de programación que no sea específico para Nodejs. La depuración viene bajo pros y contras, ya que nos permite revisar el código paso a paso.

A. ¿Quién dijo que nodeJs es difícil de depurar?

B. ¿Por qué es tan crítico, suficiente para decidir que no vale la pena aprender por eso?

Todo se reduce a cómo estructura su código …

He estado desarrollando durante más de 20 años y haciéndolo en Node durante aproximadamente 6 meses, no me resulta difícil depurarlo. Por otra parte, practico TDD y escribo el código que quiero leer más tarde.