Este documento resume algunas maneras en que se puede cometer errores al usar Node.js, incluyendo problemas pequeños, callback hell, y el event loop. Se discuten soluciones como usar promesas para evitar callback hell, cluster y child_process para evitar bloqueos del CPU, y herramientas de depuración como debug. El objetivo es ayudar a los desarrolladores a evitar problemas comunes al usar Node.js.
Cómo explotar EternalBlue en Windows Server 2012 R2Telefónica
Paper de Sheila A. Berta (@UnaPibaGeek) sobre cómo conseguir explotar con éxito EternalBlue en sistemas operativos Windows Server 2012 R2. Más información en el artículo http://www.elladodelmal.com/2017/07/como-explotar-eternalblue-en-windows.html
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
Más contenido relacionado
Similar a Things i wish someone told me about node js
Cómo explotar EternalBlue en Windows Server 2012 R2Telefónica
Paper de Sheila A. Berta (@UnaPibaGeek) sobre cómo conseguir explotar con éxito EternalBlue en sistemas operativos Windows Server 2012 R2. Más información en el artículo http://www.elladodelmal.com/2017/07/como-explotar-eternalblue-en-windows.html
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
8. Depurar con console.log
debug
Salida por consola activable
vía variable de entorno
Posibilidad de nombrar
cada fichero a trazar
winston o bunyan
Serializan objetos
Salida a donde quieras
Formato JSON
Bunyan tiene bunyan-cli
para procesar logs
13. ¿Brujeria?
● ¿Qué esperan de mí los módulos de promesas?
o callbacks(err, res), el error siempre primero
o return del resultado
o throw del error
● ¿Y ya está?
o Si, lo básico si.
14. ¿Y… cómo las uso?
1. Adaptar el
módulo que
quieras usar
2. Usarlo:
algo.then….
3. .catch, por si las
moscas
16. Javascript… sweet painful Javascript
● En Javascript, y especialmente en Node:
o Todo funciona en paralelo…
o Excepto tu código
● O dicho de otra forma:
o Un único hilo para el código JS ( V8 )
o Un manejador de eventos que distribuye el I/O
o libuv por debajo manejando I/O en paralelo
18. Problems
● setTimeout, setImmediate, setInterval
o únicamente tienes asegurado que se van a atender
después del tiempo especificado
● Hay callbacks, y luego señores callbacks
● Una operación intensiva de CPU bloquea el event loop
o Se encolan eventos pero no se atienden callbacks
20. Callbacks asíncronos de verdad
La primera función
no deja que otro
código js se ejecute.
La segunda si,
encola el callback
hasta que pueda ser
atendido
21. Dear CPU...
● Como hemos visto cualquier tipo de código
o Extenso
o Complejo
o Pesado
Que no cede el turno de ejecución puede
bloquear completamente otros eventos o
partes de nuestro código
23. Cluster
● Módulo core de node
● Permite levantar procesos clones ( fork )
o Un maestro, cuantos quieras esclavos
o El maestro recibe eventos de los otros
o Se pueden enviar mensajes entre ellos
o Comparten puertos pero no memoria
o No evita que las peticiones de uno queden en
espera si este se bloquea, pero el resto siguen
atendiendo
24. child_process
● Módulo core de node
● Permite levantar procesos cualquiera ( exec )
o El padre recibe ciertos eventos del hijo
o Se pueden enviar mensajes entre ellos
o No comparten nada
o Solventa el bloqueo de tu event loop si le envias al
child la computación pesada y esperas su respuesta
o Puede dar lugar a un número descontrolado de
childs o un child sobrecargado.
25. worker-farm
● Módulo de npm
● child_process automatizado, con esteroides
o Concepto thread pool
o Configurable: reintentos, tiempo de espera, número
de workers…
o Pierdes el paso de mensajes, pero no tienes que
implementar tu todo lo anterior
26. Espero que haya menos plomo en
vuestros pies ahora.
Gracias
Preguntas:
alferpal@gmail.com @alferpal