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.
- ¿Cuál es una buena manera de mostrar sus habilidades en Salesforce?
- ¿Cuál es uno de los mejores consejos de finanzas personales que has recibido?
- Como hacer mi teta sexy
- ¿Por qué siempre soy el perdedor en cualquier situación?
- ¿Debo probar que mi asesor está equivocado y seguir con mi especialización CS?
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
- Concurrencia – Esta es la fuerza primaria del nodo. Si no estás usando esto, usa otro sistema.
- 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.
- 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.
- 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.
- Depuración JS es naturalmente difícil de depurar. Indefinido volando por todos lados? Tiempo de devolución de llamadas? Buena suerte.
- Las pruebas ayudarán con esto. Escribir código comprobable es una habilidad real.
- 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.