Encuentro que aprender node.js es difícil para mí. ¿Alguien me puede dar un consejo?

Usted no “aprende” node.js. Node.js es simplemente javascript con un montón de API que lo hacen adecuado para escribir un servidor (en realidad, puedes usarlo para otras cosas, pero la mayoría de la gente lo usa para servicios web).

Estas API proporcionan cosas como archivos / transmisión web, criptografía, acceso a archivos, etc. Aquellos que “aprende cuando es necesario”. La habilidad principal aquí es realmente aprender a leer la documentación. Esto viene con la experiencia: no puede sentarse y “aprender” (algo así como aprender a depurar).

Para el resto de la respuesta, voy a suponer que está intentando construir un servidor web. Y no soy un whacko como yo.

Ahora el segundo truco acerca de aprender node.js es que … usted no necesita Se ha hecho la mayor parte de lo que quieres hacer con un servidor web. Mi recomendación es recoger un pequeño proyecto web existente y jugar con él. Ejemplo: dreamerslab / express-todo-example. Ir a diseccionarlo y modificarlo, añadir algunas características.

Por ejemplo, si desea agregar varios métodos de inicio de sesión, puede usar passport.js. Los feeds en tiempo real se pueden hacer a través de primus. Hay casi todos los controladores de base de datos que se te ocurren. Y … si no está usando lodash / guión bajo, es probable que esté haciendo algo mal *.

No importa qué marco utilices, siempre y cuando lo domines. AKA completa un proyecto con él a tu propia satisfacción. Personalmente, uso Express / sequelize / angular, pero probablemente se suicidará una vez que toque la secuela debido a … documentación (el 20% de las funciones que necesita para leer las solicitudes de extracción para encontrar). Recomiendo algo simple como mongo / express / jquery primero. Después de que aprendas lo básico, es probable que deseches mongo / jquery para algo más pesado, pero es bueno para los proyectos iniciales y para desarrollar lo básico.

Las principales dificultades para aprender a escribir cosas de nodos son

  1. Concurrencia – Esta es la fuerza primaria del nodo. Si no estás usando esto, usa otro sistema.
    1. Callback el infierno. Este es el primer problema que tienes con el nodo. Use una biblioteca de promesas (recomiendo bluebird) o caolan / async para mitigar. Los generadores / async-await son el futuro, pero por ahora hay muy poco apoyo.
    2. Exactitud. Esto es en realidad … bastante profundo. Las cosas que suenan triviales como “cargar todo en orden” / “garantizar el acceso exclusivo a X” no son tan simples como suenan. El manejo de errores que requiere revertir en un sistema remoto es aún más divertido. Sugerencia: escribir un protocolo de sincronización de 2 vías es un infierno. No hay atajo para esto. Antes de colocar la palabra “distribuida” en prácticamente cualquier cosa, es muy probable que tenga un documento escrito en ella. La concurrencia del nodo es … solo un poco menos que los sistemas distribuidos.
  2. Arquitectura de software: el nodo es significativamente más sensible a esto debido a lo anterior. Esta es otra de las habilidades legendarias de “aprender por experiencia”. Construirás cosas, decidirás que quieres agregar una nueva característica, te darás cuenta de que es muy difícil hacerlo, luego tirar todo y volver a escribir. Si ve a alguien con un proyecto exitoso no trivial, recuerde que la persona probablemente falló 10 veces antes de tener éxito.
  3. Depuración JS es naturalmente difícil de depurar. Indefinido volando por todos lados? Tiempo de devolución de llamadas? Buena suerte.
    1. Las pruebas ayudarán con esto. Escribir código comprobable es una habilidad real.
    2. También asegúrese de no “escribir una vez y depurar en todas partes”. Asegúrese de que su código funcione en partes pequeñas. Rompa jQuery en localhost para enviar solicitudes a su servidor para probar las piezas pequeñas.

He mencionado muchos pequeños temas aquí. El truco para descubrirlos es simple. Uno a la vez. No seas demasiado ambicioso con los proyectos. La regla es, a lo sumo, 2 temas nuevos (es decir, si desea mantener React / Angular y alguna API nueva, no arruine nada más). Hacer todo de forma incremental.

—————————————–

* Mención especial para la programación de lodash / guiones bajos y funcional en general. Primero, no use ningún bucle para o mientras esté en su programa de nodos. No funciona con procesos concurrentes.

Ejemplo: Para cada archivo en Archivos, ábralo, luego haga X. Sí, buena suerte.

La forma correcta de hacer esto es _.map (Archivos, …) en cualquiera de las funciones a) con devolución de llamada o b) promesas y luego usar async.parallel / Promise.all respectivamente. Técnicamente, puede crear una nueva matriz, hacer un bucle en ella y luego async.parallel / Promise.todo eso, pero si lo hace varias veces, su código se verá como: $% ^ $ !.

La idea clave aquí es poder tratar “el código que voy a ejecutar” como objetos. _.map captura muy bien esa semántica.

Gracias por la A2A.

Creo que deberías enfocarte más en JavaScript antes de sumergirte en Node. Aprende primero las cosas del lado del cliente, aprende cómo funciona XHR, siéntete cómodo con el idioma. Nodo es JavaScript, y no es fácil, puedes comparar JS y Nodo como JS como curso de verano y Nodo un curso de un semestre completo, así que conoce tus armas.

También aprenda cómo funciona HTTP, estudie cómo funciona la API (después de todo, como dijo Eldric Liew, Node es solo una colección de API), esos conceptos son más fáciles de obtener y le ayudarán a comprender cómo funciona Node.

Como ha preguntado acerca de las referencias de libros, un buen libro que cubre lo más básico del uso de nodos es The Node Beginner Book: Manuel Kiessling: 9781471628443: Amazon.com: Books. Es un libro corto, honesto y brutalmente simple que realmente disfruté leyendo.

Y por favor no te rindas!

La mayoría de las veces, aprender algo nuevo siempre es difícil. Pero intente usar node.js para sus trabajos diarios, como leer un archivo, escriba una aplicación de lector de archivos simple que lea los archivos txt y los imprima en la consola. Sistema de archivos Node.js.

Tal vez en lugar de usar el bloc de notas CTRL + F, puede usar node.js ¿Cómo busco archivos y directorios?

Esos son los buenos puntos para comenzar y comprender los puntos sincronizados y asíncronos, así como los nodos.

Quería aprender NodeJS por mi cuenta y recorrí varios sitios web y videos. Para los principiantes, diría que es bastante difícil de entender, además de la documentación del sitio web de NodeJS.

Después de aprender lo básico, he creado una serie de tutoriales sobre lo que creo que me habría ayudado a comenzar con lo básico.

Tutorial de NodeJS para principiantes – 1 – Introducción

Avísame si te resulta útil 🙂

JS es raro, pero Node es pura pesadilla. No tiene reglas estrictas, lo que se traduce en una tonelada de reglas diferentes que a menudo son incompatibles. Los módulos complementarios a menudo se deprecian, cambian la sintaxis … la lista sigue y sigue.

Las cosas que son simples y consistentes en otros idiomas maduros son extrañas en los nodos, complicadas y no tienen sentido. Esto se debe a que utiliza una plataforma que depende de toneladas de módulos complementarios escritos por cada j * rk y su madre. Todos tienen su propia visión de cómo debería ser la programación, y usted necesita aprender todas sus diferentes formas. A veces, quedan vacantes y lanzan una nueva versión a toda prisa y su programa deja de funcionar repentinamente debido a la depreciación o algunos otros cambios extraños. Si fueras una corporación, ¿te atreverías a depender de tu importante proyecto en módulos tan inexplicables y semi-amateur?

Necesitas alguna tarea? No hay problema, hay un módulo para eso. Necesitas otro? No hay problemas, carga otro módulo. Terminas cargando una tonelada de módulos a menudo incompatibles para una sola tarea que sería fácil escribir en otro idioma mejor, pero necesitas 40 líneas de código que necesitarían 5 en otro idioma.

Depuración Será mejor que busques un trabajo mejor si quieres permanecer sano. Nodo es un intento extraño de obligarnos a usar js donde no está destinado a ser usado. Los resultados son adecuados. Node / js tiene menos del 0,3% de las aplicaciones / sitios web del mercado www compartidos y este número no aumenta con los años. A pesar de un montón de publicidad y relaciones públicas, el mercado sabe mejor.

Daría tareas de programación de Nodo a los prisioneros, se arrepentirían de su camino de vida.

Puedo relacionar. Personalmente, estoy llegando al nodo de Rails, y las diferencias son bastante grandes. Como diseñador, me encantó el hecho de que podría codificar fácilmente un MVP en Rails y no preocuparme por una gran variedad de cosas. Así que no es JavaScript per se lo que me molesta, es la forma de “nodo”.

Sin embargo, he estado haciendo solo nodos durante las últimas dos semanas más o menos, y lo encuentro creciendo en mí. Por un lado, aprendí más cosas sobre enrutamiento, autenticación y lo que impulsa una aplicación web bajo el capó: toda la “magia” que un marco como Rails inicialmente te esconde.

Te diría que sigas así y que construyas cosas. No hay nada mejor que el aprendizaje basado en proyectos, donde puedes tocar todos los aspectos de una aplicación web. Comience con lo básico, y vaya desde allí. Personalmente, viendo que ya tenía experiencia con JS, encontré que CodeSchool ofrecía algunas buenas ideas. Si usted es un principiante en este mundo, le aconsejaría a Treehouse, donde hacen el tipo de aprendizaje basado en proyectos que necesita, comenzando desde cero (su ruta de JavaScript es bastante buena).

Si no quiere gastar 30 $ al mes, solo las cosas de Google y StackOverflow, como la mayoría de nosotros lo hacemos, encontrará una solución para casi todo. Sin embargo, ayuda si sabes lo que estás buscando .

Entonces, pregúntese lo siguiente: ¿conozco HTML y CSS (+ DOM) lo suficientemente bien? Si lo hago, pasaré a JavaScript. Cuando haya comprendido los conceptos básicos de JavaScript, pasaré al nodo (nadie le dice que sea un profesional de JS desde el principio, pero necesitará los conceptos básicos: bucles, variables, funciones, devoluciones de llamada, si no No conozca ningún OOP que no sea un gran problema, pero póngale un alfiler: definitivamente necesitará ir en esa dirección en el futuro), etc. Si descubre que no conoce bien los aspectos fundamentales Basta, luego repásalos, hasta que te sientas cómodo.

Y así sucesivamente y así sucesivamente.

¡La mejor de las suertes!

Como ya ha dicho otro trabajo del encuestado en javascript primero.

Entonces será fácil para ti. hacer un pequeño “proyecto” en tiempo real que resuelva un pequeño problema. como el de url. no afiliado.

irt.org – Preguntas frecuentes sobre JavaScript

NodeJS por ejemplo

¿Has probado tutoriales desde pluralsight ( https://www.pluralsight.com/cour …), Udemy ( https://www.udemy.com/understand …), o Lynda.com ( http: //m.lynda)? com / Nodo-js-tren

El siguiente artículo puede darle algunos ejemplos de nodo js.

Lista de artículos del nodo JS

¿Está familiarizado con JavaScript? ¡Si no lo eres, por favor aprende y aprende bien!

¡También intente aprender construyendo, elija un proyecto y hágalo en el nodo!

También recuerda que todos aprendemos diferentes cosas a diferentes velocidades. Si vale la pena, lo es, ¡abróchate y sigue adelante!

¡Buena suerte!