¡Maneja los errores de JavaScript como un senior!

  Рет қаралды 62,820

midulive

midulive

Жыл бұрын

Con esta técnica vas a aprender cómo manejar correctamente errores en JavaScript. Crearás tus propios errores y evitarás que los problemas de tu infraestructura lleguen al cliente.
Con estas buenas prácticas vas a mejorar la mantenibilidad y escalabilidad de tu código.
▶ No te pierdas más directos en: / midudev

Пікірлер: 76
@diegosuntaxi4741
@diegosuntaxi4741 2 ай бұрын
Midu, cada que tengo una inquietud sobre cómo manejar los errores regreso a este video y no tienes idea como me aclara el camino. Gracias por ser tan genial y aportar tanto a mi vida!
@EdwinRodriguez-nz4tk
@EdwinRodriguez-nz4tk Жыл бұрын
Muchas gracias en serio por tu contenido midu, después de verlo he mejorado considerablemente en las practicas que aplico en mi trabajo y gracias a ti estoy tratando de buscar un trabajo como React dev. En serio, muchas muchas gracias!!!
@midulive
@midulive Жыл бұрын
Qué genial, Edwin!
@leenkimhahnemannaltamirano7643
@leenkimhahnemannaltamirano7643 Жыл бұрын
Miduu deberias hacer una sección de buenas prácticas, saludos
@Fer-us4ny
@Fer-us4ny Жыл бұрын
Muy buen video, muchos de los conceptos que mostraste es como se trabaja en C#, el manejo de errores, patron factory..
@IronSh4dow
@IronSh4dow Жыл бұрын
En verdad excelente, gracias por compartir 👍
@Runbex
@Runbex Жыл бұрын
Saludos!! Cada vez con vos aprendo un Mundo y mas horita que estoy asiendo mi primera app Web :D
@simonsp_
@simonsp_ Жыл бұрын
En nuestro caso utilizamos hapi/boom para el manejo de errores en node + expressjs para la mayoría de los casos, pero no sabría si esta forma de manejarlos sería una mejor opción 🤔a pesar que pinta muy bien. Saludos!
@mperezguendulain
@mperezguendulain Жыл бұрын
Gracias midu, de tí he aprendido a mejorar mucho mi código!. Algún libro que recomiendes para aprender este tipo de cosas?
@christopherps3547
@christopherps3547 Жыл бұрын
Gracias midu por el video, muy interesante, un saludo!
@manuelsaavedra4127
@manuelsaavedra4127 8 ай бұрын
Justo lo que necesitaba.
@martinflores9611
@martinflores9611 Жыл бұрын
no manches el video esta muy informativo gracias midu
@cesargabrielleanez4775
@cesargabrielleanez4775 Жыл бұрын
Casualidad hace unas horas estaba pensando de como se deberia resolver los errores, gracias midu por los conocimientos!
@toribio0hack
@toribio0hack Жыл бұрын
Estos videos son arte de programador
@edsonnickslazarocamasca1588
@edsonnickslazarocamasca1588 Жыл бұрын
Eso es muy cierto muchos servicios retornan toda la traza del error, una buena practica es tener un middleware que interpreta el error
@Fernando-ry5qt
@Fernando-ry5qt Жыл бұрын
Suele ser un buen recurso para manejar errores fugitivos, en mi opinión es mejor mantener el código de manejo de errores cerca al código susceptible a esos errores que tener que perseguir las trazas desde un middleware, pero lo que te funcione se vale haha
@leonardomartinez5938
@leonardomartinez5938 7 ай бұрын
Qué editor de código usaste en este video? me da un aire a visual studio code bastante minimalista.
@maghdielcampos1576
@maghdielcampos1576 11 ай бұрын
Creí que tenías 27 realmente jaja, buen video, saludos desde México.
@benjaminsepulveda1664
@benjaminsepulveda1664 Жыл бұрын
Muy buen video. También puedes crear un control de errores más robusto evitando los if else o switch implementando el patrón Either monad con alguna aproximación a pattern matching
@Fernando-ry5qt
@Fernando-ry5qt Жыл бұрын
Innecesariamente complejo sin justificación, lenguaje equivocado para esa aproximación
@franklinrodriguez5427
@franklinrodriguez5427 Жыл бұрын
No se si es mi opinión solamente, y espero que @midudev, lea este mensaje, pero este tema me parece super interesante e importante. Y me gustaria mucho que Midu hablara mas al respecto, en un video mas completo.
@rayoseldev819
@rayoseldev819 Жыл бұрын
min 7 Si despues del setTimeout llamas a validateUser ya dejas de hacer un try-catch n¿ Un return a una funcion que vuelva hacer el try-catch no seria mejor? es cómo suelo hacerlo.
@Fernando-ry5qt
@Fernando-ry5qt Жыл бұрын
Interesante aproximación, lo único que me podría resultar desagradable es lo complicado que se torna dar mantenimiento a las multiples clases en aplicaciones muy grandes, con la aproximación del factory te evitas algunos de esos problemas pero solo si lo usas en runtime para generar los errores dinámicamente on-demand. Pero pierdes el determinismo..... haha Quizá es mi aversión a las clases la que habla. Suelo usar factories de loggers en cada archivo que trazan los errores por archivo y método con un middleware a alto nivel para evitar propagarlos a cliente, me resulta simple y suele ser fácil de aplicar (solo usen el logger y ya), pero claro eso ya es un tema distinto....
@grogu4344
@grogu4344 Жыл бұрын
​ @midulive speaking of react, is it possible to handle this using only useErrorBoundary? thank u
@turomatulic
@turomatulic Жыл бұрын
como seguir controlando los stacks del error? muchas gracias!
@vicxaam90
@vicxaam90 Жыл бұрын
También es bueno agregarle la propiedad cause, para saber que fue lo que realmente causó el error. Saludos.
@midulive
@midulive Жыл бұрын
Totalmente. Creo que lo comentamos en el vídeo. O igual lo hicimos en el directo, pero lo corté en la edición.
@Fedoteh1991
@Fedoteh1991 Жыл бұрын
Hola Midu! Me quedé con la parte de prototypes, ¿dónde puedo aprender eso? Huele a algo muy a bajo nivel del lenguaje y me da curiosidad para realmente entender lo que pasa por detrás. Me sorprendió que las clases sean syntactic sugar!
@Fernando-ry5qt
@Fernando-ry5qt Жыл бұрын
Busca contenido sobre prototype inheritance en JS, en efecto es un tema de bajo nivel.
@yindrax
@yindrax Жыл бұрын
Justo lo que necesitaba, gracias master midu!, como se llama el ide en el que trabajas y te muestra la respuesta enseguida?. gracias.
@JuanHernandez93
@JuanHernandez93 4 ай бұрын
Run js
@luishernandez98
@luishernandez98 Жыл бұрын
Buena noche a todos, super el video! Tengo una duda fuera del video: Es bueno que a los desarrolladores se nos mida por horas de tiempo trabajadas? En mi opinión se nos debería medir como desarrolladores sobre el valor agregado que le damos a un cliente, más no al tiempo en que estamos detrás de una computadora Les comento: actualmente estoy en una empresa en donde los desarrolladores tenemos que registrar diariamente un tiempo determinado sobre las tareas o proyectos que tengamos asignados. Cada que llega un nuevo requerimiento se estima en horas cuanto puede durar ese requerimiento y eso se le asigna al requerimiento o tarea, el desarrollador tiene un tiempo determinado para sus labores y así se va el día a día, sin embargo hay tareas que son complejas para algunas personas. Para mi es facil ya que llevo 2 años en la empresa y lo que me asignan me toma poco tiempo en resolverlo porque ya sé donde buscar la info y demás, pero en su momento me tomó tiempo adaptarme y me tocaba estar muucho tiempo fuera de mi horario laboral resolviendo problemas del mismo desarrollo y son bastante tacaños por así decirse a la hora de brindar más tiempo. De igual forma eso hacía que me llenara de requerimientos y requerimientos sin finalizar ya que no tenía donde registrar mis horas trabajadas ya que tenía que investigar mucho, ahora mismo eso lo estan viviendo los desarrolladores nuevos que entran a la empresa y estoy pensando en proponer otro mecanismo o indicador que nos mida como desarrolladores
@MarcoLopezXD
@MarcoLopezXD Жыл бұрын
1. Estimar en función de quien va a tomar la tarea 2. Tener una tarea previa de análisis que baje la incertidumbre de la tarea compleja 3. Documentar tu conocimiento ante consultas frecuentes, dijiste que a vos hay cosas que te son más fáciles por saber dónde buscar, compartir esa sabiduría para que los más nuevos no pasen por lo mismo que te disgustaba cuando estabas en su posición. Fuera de eso, estoy de acuerdo en que se debería tomar el valor en base a objetivos y no a tiempos, pero eso es más un cambio cultural de la empresa, que es más difícil de moldear.
@anselmocuevas5119
@anselmocuevas5119 Жыл бұрын
Nombraste el this y termino el video. Lo cortaste antes de que se vaya la gente 😂😂😂
@midulive
@midulive Жыл бұрын
Jajajaja el this de la muerte
@jcostello782
@jcostello782 Жыл бұрын
cual es ese editor ?
@CarlosMartinez-yh2xt
@CarlosMartinez-yh2xt 7 ай бұрын
Hay forma de crear un handler generico para todas las peticiones a un microservicio construido con express? algo asi como un filter en spring cloud gateway?
@CarlosMartinez-yh2xt
@CarlosMartinez-yh2xt 7 ай бұрын
lo pregunto, para no tener que estar usando try{}catch(){} en cada funcion, si no mas bien tener una clase generica que captura todo error que suceda en la aplicacion
@mrgm148
@mrgm148 Жыл бұрын
Que editor es ese?
@nicopesmobile4599
@nicopesmobile4599 7 ай бұрын
que thema de visual es ese?
@oscareduardo9554
@oscareduardo9554 Жыл бұрын
Yo he visto mucho con la gente de Codely sobre utilizar Either para que el cliente que utiliza la función sepa que puede fallar y de qué formas, qué opinas acerca de eso? 🤔
@Fernando-ry5qt
@Fernando-ry5qt Жыл бұрын
overkill, basicamente es construir una maquina de estado finita determinista completa solo para el manejo de errores, prácticamente no ofrece valor alguno a una aplicación a MENOS que necesites que sea ridiculamente robusta, como.... un core bancario o algo similar. Y si buscas esa clase de estabilidad, JS es el lenguaje equivocado 1000%
@oscareduardo9554
@oscareduardo9554 Жыл бұрын
@@Fernando-ry5qt Bueno, tal vez en js sí puede que no tenga mucho sentido, pero utilizando Typescript como una forma de mostrar al cliente que utiliza la función que puede fallar, ahí siento que sí aporta, ya que si no, no te enteras de que algo puede fallar hasta que falla y además pienso de una forma más "elegante" que regresar una tupla de valor o error, similar a como lo hace Go
@Fernando-ry5qt
@Fernando-ry5qt Жыл бұрын
@@oscareduardo9554 Sigo pensando que el costo técnico de aplicar un patrón funcional difícilmente da buenos retornos de inversión. Es elegante, si, lo es, también correctamente aplicado puede ser muy eficiente y productivo. Pero intenta explicarle a un Jr que es un Monad sin que le explote la cabeza y luego vemos si consideras que es buena idea basar toda tu arquitectura de manejo de errores en ello. Si no trabajas con Jrs, más motivos para mudarte a otro lenguaje más apropiado para el propósito, la curva de aprendizaje es considerablemente más simple. Por otro lado, puedes argumentar si es filosóficamente correcto tratar un "error" como un posible retorno, que es básicamente lo que hace la FP, de ser así, no es mejor tratar los métodos como funciones de multiples retornos? volver a los callbacks estandar de Node quizá? o si ya estamos construyendo una maquina de estados, porqué no llevarlo a toda la app? Creo que todas estas preguntas son.... prácticamente una perdida de tiempo haha, difícilmente ofrecen un incremento notable de rendimiento o estabilidad que justifique la molestia, la metaprogramación de los peores enemigos de la productividad.
@leooliver2639
@leooliver2639 Жыл бұрын
En axios se pueden usar los interceptors
@midulive
@midulive Жыл бұрын
No tiene nada que ver una cosa con la otra. Podrías usar interceptors y seguir haciendo lo que usamos en el vídeo. :)
@OJPalenzuela
@OJPalenzuela Жыл бұрын
Hola Midu, hablando de el tema de los errores, como puedo generar archivos logs de los errores que se tengan en la página, me han pedido varias veces que los integre pero nunca he dado en como poder hacerlo
@fracadasdasdd-cl7to
@fracadasdasdd-cl7to Жыл бұрын
si utilizas node con filesystem puedes crear archivos
@fracadasdasdd-cl7to
@fracadasdasdd-cl7to Жыл бұрын
y ahi puedes mandar los errores en formate json y luego concatenarlos unos con otros
@jjmato
@jjmato 9 ай бұрын
Que cómodo es esto en java que puedes indicar que errores puede lanzar el método y el cliente sabe que necesita un capturarlo, a ver si llega algo así a TS
@code1866
@code1866 Жыл бұрын
❤🎉
@davemour
@davemour Жыл бұрын
Añadir sobre la modificación de prototype: con que coincidieran modificaciones del mismo prototipo en dos librerías diferentes en un proyecto sería muy fácil que hubiera un conflicto entre ambas.Yo solo lo recomendaría en un contexto de aprendizaje, para entender cómo funcionan los prototypes, pero nunca para una aplicación real. Con la extensión, al ser tipos creados en sus respectivas librerías, este problema no existiría.
@germanCaic2
@germanCaic2 Жыл бұрын
Como se llama ese tema?
@yonatanvigiliolavado-mn5pz
@yonatanvigiliolavado-mn5pz Жыл бұрын
Útil para node. Lo hacen nest
@n4h92
@n4h92 7 ай бұрын
@fernanj23
@fernanj23 7 ай бұрын
De los errores se aprende
@crism8868
@crism8868 2 ай бұрын
Yo tampoco entendí la diferencia entre extender un prototype y extender una clase 😅
@Marco11lion
@Marco11lion Жыл бұрын
Eres mi padre
@waltercordero2176
@waltercordero2176 Жыл бұрын
Interesatne, pero mi pregunta es ¿Cuál es la extensión que tienes debajo del código corriendo?, pareciera QuokaJS pero se ve que no lo es, gran video.
@oscareduardo9554
@oscareduardo9554 Жыл бұрын
No es un editor, es un playground, se llama runjs
@kevincifuentesKdc
@kevincifuentesKdc 2 ай бұрын
@@oscareduardo9554 Muchas gracias por la información, lei muchos comentarios hasta que porfin resolviste mi duda existencial jejjejejeje Gracias.
@raulcalvo4230
@raulcalvo4230 Жыл бұрын
En realidad es irrelevante usar clases específicas para los errores. El error lo debes manejar en el sitio donde ocurra. Para los casos en que necesites actualizar la UI es mejor usar eventos o si usas redes hacer un Dispatch.
@midulive
@midulive Жыл бұрын
Ojú, menudo comentario te has marcado.
@Fernando-ry5qt
@Fernando-ry5qt Жыл бұрын
No necesariamente, hay muchos errores que no son terminales y lo correcto es propagarlos para darles un manejo a mas alto nivel, por ejemplo, un DAO o cualquier conector, sin contexto, no puedes manejarlo. Cuidado con los absolutos.
@midulive
@midulive Жыл бұрын
@@Fernando-ry5qt bien dicho.
@kllup742
@kllup742 Жыл бұрын
27 años, ya toca escopeta
@jesusjuvinao8210
@jesusjuvinao8210 2 ай бұрын
Midu ahi estabas gordito xd
@fernandomoran3163
@fernandomoran3163 Жыл бұрын
No ombe.el problena es que asi se nos enseña en los tutoriales y en la documentacion de forma mal .😂😂😂
@Alex-ni6ed
@Alex-ni6ed 8 ай бұрын
De alguna manera siento resquemor al ver esa imagen de portada del video... es decir, porqué hacer eso?. Parece un tipo de menosprecio. literalmente. No es la primera vez que lo haces, lo dice alguien que nisiquiera es un junior AUN😂. Eventualmente llegaré a esa etapa y la atravesaré como muchos.... es muy probable que te importe mil ectareas de Ver.g4 mi comentario, pero si te importa quizás cambies un poco eso y quizás obtengas más seguidores... yo que se 🤷🏽‍♂️.
@midulive
@midulive 8 ай бұрын
¿Qué menosprecio le ves a la portada? 🤔 El vídeo va de cómo crear errores como un senior. Es normal que una persona con poca experiencia no sepa hacerlo y para eso es el vídeo, para explicarlo y enseñar.
@yovaxox
@yovaxox 7 ай бұрын
No seas grave bro. Agradece que está aportando valiosa información.
@whoknows3679
@whoknows3679 3 ай бұрын
Te respeto bro, pero en definitiva no eres SR developer
@1111111111Denis
@1111111111Denis Жыл бұрын
En lo particular no me gusta mandar validaciones tan sencillas a un handle de errores, eso si me parece de noobs jejej sin ofender, en mi caso prefiero crear un arreglo de errores y validar cada propiedad con un if(!user?.name) listErrors.push("Name required"), al final hago un conteo de los elementos de mi arreglo de errores, de esta forma puedo mostrarle al usuario si quiero los errores o que datos son requeridos, HACERLO SENCILLO ES LO COMPLEJO!! @midulive, si me equivoco me comentas.
@midulive
@midulive Жыл бұрын
Creo que no has entendido el vídeo, directamente. jajaja
@davemour
@davemour Жыл бұрын
Se llama ejemplo😅
Final muy inesperado 🥹
00:48
Juan De Dios Pantoja
Рет қаралды 15 МЛН
ТАМАЕВ vs ВЕНГАЛБИ. Самая Быстрая BMW M5 vs CLS 63
1:15:39
Асхаб Тамаев
Рет қаралды 4,5 МЛН
¡No uses const! Cómo NO dar una charla sobre JavaScript
6:30
How To Handle Errors in Node.js and TypeScript
37:23
Mark Maksi
Рет қаралды 4,7 М.
¡Deja de usar ternarias para hacer esto en JavaScript! ❌
18:26
Cómo Sobrevivir a la era de la IA como Programador
10:55
midulive
Рет қаралды 49 М.
LOS CHARLATANES DE JAVASCRIPT: una medida ridícula
8:48
midulive
Рет қаралды 91 М.
Try Catch Error Handling With TypeScript
8:53
ByteGrad
Рет қаралды 6 М.
Мечта Каждого Геймера
0:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 1,5 МЛН
Девушка и AirPods Max 😳
0:59
ОТЛИЧНИКИ
Рет қаралды 17 М.
Gizli Apple Watch Özelliği😱
0:14
Safak Novruz
Рет қаралды 2,3 МЛН