¿Cuáles son las habilidades más importantes para Nodejs?

Conozca las partes buenas de JavaScript y conozca su sintaxis moderna (ES2015):

Node es un conjunto de bibliotecas en la parte superior del motor V8 que puede compilar JavaScript. Por lo tanto, no hace falta decir que las habilidades importantes para JavaScript en sí son un subconjunto de las habilidades importantes para Node. Deberías comenzar con el propio JavaScript.

¿Entiende funciones, ámbitos, enlaces, esta palabra clave, nueva palabra clave, cierres, clases, patrones de módulos, prototipos, devoluciones de llamada, promesas? ¿Conoces todas las cosas que puedes hacer en Números, Cadenas, Matrices, Conjuntos, Objetos, Mapas?

Comprenda la naturaleza no bloqueante de Node:

Las devoluciones de llamada y las promesas (y los patrones generadores / asíncronos) son especialmente importantes para Node, debe comprender cómo las operaciones asincrónicas son de primera clase en Node.

Puede comparar la naturaleza sin bloqueo de las líneas de código en un programa Node con la forma en que ordena un café Starbucks (en la tienda, no en el drive-thru)

  1. Haz tu pedido | Darle al nodo algunas instrucciones para ejecutar (una función)
  2. Personaliza tu pedido, sin crema batida, por ejemplo | Dele a la función algunos argumentos: ({whippedCream: false})
  3. Déle al trabajador de Starbucks su nombre con la orden | Devuelva la llamada a Node con su función: ({whippedCream: false}, callback)
  4. Hazte a un lado y el trabajador de Starbucks recibirá órdenes de personas que te siguieron en la fila | Node tomará instrucciones de las líneas después de la suya.
  5. Cuando su pedido esté listo, un trabajador de Starbucks lo llamará y le dará su pedido listo | Cuando se calcula su función y Node tiene un resultado listo para usted, llamará a su devolución de llamada con ese resultado: callback(result)

He escrito una publicación de blog sobre esto: Programación asincrónica como se ve en Starbucks

Aprenda el modelo de concurrencia de JavaScript y cómo se basa en un bucle de eventos :

Hay una pila, un montón y una cola. Puedes leer libros sobre este tema y aún no entenderlo por completo, pero te garantizo que lo harás si miras a este tipo.

Comprenda cómo un proceso de Nodo nunca duerme y saldrá cuando no quede nada por hacer:

Un proceso de Nodo puede estar inactivo pero nunca duerme, y realiza un seguimiento de todas las devoluciones de llamada pendientes, y si no queda nada para ejecutar, se cerrará.

Aprenda las variables globales que puede usar, como proceso y módulo.

Todos están definidos en una variable global (que generalmente se compara con la variable de ventana en los navegadores). En un Node REPL, escriba global. y presione la pestaña para ver todas las opciones. Algunos de ellos son JavaScript (como global.Array y global.Object), algunos son funciones de biblioteca de Nodo (como global.setTimeout o consola para imprimir en stdout / stderr), y algunos de ellos son objetos globales de Nodo que puede usar para ciertas tareas (como global.process.env para leer las variables de entorno)

Necesita comprender la mayor parte de lo que ve en esa lista.

Aprenda lo que puede hacer con las bibliotecas que vienen con Node y cómo se centran en la “creación de redes”:

Algunos de ellos se sentirán familiares como Timers, por ejemplo, porque también existen en el navegador y Node está simulando ese entorno, pero hay mucho más que aprender, como fs , path , readline , http , net , .. (Vea la lista de global. arriba).

Por ejemplo, puede leer / escribir archivos con “fs”, puede ejecutar un servidor web listo para la transmisión usando “http”, puede ejecutar un servidor tcp y programar sockets con “net”, … etc.

La biblioteca de eventos es especialmente importante porque la mayor parte de la arquitectura Node está dirigida por eventos.

Para aprender la API del nodo, todo lo que tiene que hacer es leer y comprender esta página web única.

Comprenda por qué Node se llama Node:

Construye bloques de construcción (nodos) simples de un solo proceso, que se pueden organizar con buenos protocolos de red para que se comuniquen entre sí y escalen para construir grandes programas distribuidos.

Lea e intente comprender algún código escrito para Node:

Elija un marco como Express e intente comprender parte de su código, haga preguntas específicas sobre las cosas que no conoce. Si puede encontrar un grupo para leer, sería mucho mejor. Ver ReadingCodeGood

Escriba una aplicación web en Node sin usar ningún marco:

Intente manejar tantos casos como sea posible, responda con un archivo HTML, analice cadenas de consulta, acepte la entrada de formularios, cree un punto final que responda con JSON, … etc.

Además, escriba un servidor de chat, publique un paquete npm e intente contribuir a un proyecto de código abierto basado en nodos.

Buena suerte.

Primero asegúrese de estar al menos algo familiarizado con el lenguaje javascript. El idioma tiene muchas idiosincrasias sutiles que lo hacen diferente de otros idiomas que puede haber utilizado. (por ejemplo, alcance de funciones vs alcance de bloques, funciones de primera clase, etc.). El libro estándar es JavaScript: The Good Parts: Douglas Crockford: 0636920517740: Amazon.com: Libros, pero hay algunos otros buenos disponibles gratuitamente en línea, como JavaScript Eloquent.

Quizás el concepto más importante para entender en el nodo en particular es la naturaleza asincrónica de nodejs. En la mayoría de los idiomas, la mayoría de las llamadas a funciones que utiliza son bloqueantes, lo que significa que deben regresar antes de que continúe la ejecución. Entonces, si llamas a cuatro funciones, como

una()

si()

do()

re()

esperaría un flujo de control lineal, es decir, la función a se ejecuta y devuelve, luego b, y así sucesivamente.

En el nodo, no hay garantía sobre el orden en que se ejecuta el (pseudo) código anterior. Esto se debe a que el nodo es asíncrono y, por lo tanto, las funciones de devolución de llamada son la forma en que se hace todo.

Para proyectos más grandes, como el uso de nodo como parte del backend de un sitio web, diría que es importante poder leer y comprender el código y la documentación escritos por otros desarrolladores, ya que probablemente usará muchos módulos de npm. Pero, esto probablemente sea cierto para cualquier lenguaje o pila de programación.

11 consejos para contratar un desarrollador de node.js

1. Sólidos conocimientos sobre JavaScript.

2. Completa comprensión de node.js y su marco.

3. Conocer la programación asincrónica.

4. Comprensión básica de las tecnologías front-end.

5. Conocimiento de la integración de múltiples fuentes de datos y bases de datos en un solo sistema.

6. Crear esquemas de bases de datos que representen y respalden procesos empresariales.

7. Comprensión de las herramientas de control de versiones de código, como Git.

8. Escribir código eficiente.

9. Conocimiento sobre la integración del desarrollo front-end con la lógica del lado del servidor.

10. Experiencia en la implementación de protección de datos.

11. Conocimiento sólido en los principios de diseño de una aplicación.

Para obtener más detalles sobre cómo contratar a un desarrollador de node.js, visítenos en el equipo rentable de diseño y desarrollo de productos en alta mar del equipo de nextbrain