Midu, pensé que sabia usar diccionarios pero en poco tiempo pude aprender algo muy util gracias a ti. Está excelente la edición y la explicación, me encanta que veamos la Miduevolución de tu canal. Un abrazo gigante y sigue creando estas joyas de conocimiento. 💜
Hola midu, este video me callo como anillo al dedo justo estoy desarrollando una app en donde estaba utilizando "magic strings" y viene bien saber esto!
genial el video nuevo Midu, muy bien el editor nuevo. Lo único que le diría es que las transiciones las haga más lentas porque genera ansiedad. (mi opinion, claro que seguiré viendo tus vídeos!)
Lo de los simbolos un peligro por que si integras con app externas a tu backend por ejemplo. deberian tener el valor de ese simbol en caso de interfases que filtran por esos valores. Prefiero poner cadena de texto d euna y que muchas veses representa una paramatrezada en la BD ademas si uno ya dispone de un code-gen automaticamente se generan las const o enums con un simple script de BD
Que buen video como siempre muy agradable y lúdico, en la época que desarrollaba en Javascript usaba el Object.freeze como tu lo aconsejas, cuando comencé a usar Typescript usaba enum, de hecho tambien uso enum desde que comencé hace unos años a desarrollar en Dart. Saludos!
Y si a los miembros les asignas valores en potencias de 2 (1, 2, 4, 8, 16) puedes tener valores que sean la unión (suma) de varios de ellos. de tal forma que mediante un operador de OR a nivel de bits sepas si el valor es una combinatoria de valores de los miembros. Como en los enumerados de C# o Java.
Midu, eres tan bueno como Dev y maestro, que yo siendo solo un principiante, en el momento en que me he perdido, he podido regresar al tema sin problema.
2:41 Los 'Symbol', no es que se puedan usar "por meter los errores en un diccionario", como dice Midudev. Los 'Symbol', se pueden usar también en la primera definicion en forma de variables "sueltas" que explicaba al inicio. Y el autocompletado, lo tienes igualmente aunque no uses un objeto. De hecho, posiblemente sea mejor meter los errores en un fichero a parte para evitar dependencias circulares.
Buena edición, los sonidos no son necesarios a mi gusto, los de notificaciones, y a veces demasiados cambios de cámara pueden marear sobre todo si estamos analizando el código y de repente te dan una vuelta de 360 a otra cosa, pero en general bien, un 8 de 10 (mi opinión) Y gracias por los consejos Midu, ya había tenido problemas con esos y no había pensado en esta solución
Este efecto se conoce como "corte rápido" o "edición rápida". Este es un recurso muy utilizado en la producción de videos para redes sociales y plataformas como RUclips, donde la duración de la atención del espectador es limitada. La técnica consiste en alternar rápidamente entre diferentes tomas, ángulos o escenas, a menudo sincronizando la transición con la música o el ritmo de la edición, para crear un efecto visual impactante que mantiene la atención del espectador. Este efecto puede hacer que el video sea más dinámico y emocionante, lo que puede ayudar a aumentar su impacto y su capacidad para captar la atención del público.
Habia visto los Symbol cómo key, no como value, buen aporte hay que manejar igual esos valores que se generan en runtime con pinzas, pero es un buen caso de uso. Salu2
@midudev Que herramienta usas para ver las dos ventanas e ir ejecutando el js en una e ir viendo el resultado en la otra inmediatamente. Seria muy util para muchos. Abrazos crack!!!!
Muy buen vídeo, muy digerible y entendible, cabe mencionar que las recomendaciones que haces aplican no solo a JS si no también a otros lenguajes de programación. Algo gracioso que se me hizo por parte del vídeo es que agregaste el sonido de cuando te llegan mensajes en la app de Messages había pensando que ya me habían llegado un montón de nuevos mensajes jajaja, espero más contenido de este estilo es muy enriquecedor, excelente día!
hola midu como vas? , tengo una duda , ¿cual seria la entrada de la variable tipo ?, el cual se comparara con los objetos al usar, donde ya todo lo implementado se ha realizado. Veo que hay un dato que se compara (tipo) pero si este debe ser digitado y luego cambiado a mayúsculas para después hacer la comparación o también podría este dato buscarse en una base de datos para hacer la comparación o extraído de un atributo en el html (por ejemplo el disabled).
Muy buena informacion para javascript puro, para los que usamos TypeScript me parece mejor usar enums de strings, son inmutables y organizan de la misma forma
@midudev la verdad el contenido del video como siempre genial, sin embargo el formato, para explicaciones o videos de RUclips no me parece acertado el movimiento de foco al menos a mí me distrae mucho y no me deja centrarme en ver todo el código que explicas, los zoom para mi son útiles solo en los casos que el texto se ve muy pequeño de lo contrario prefiero un video plano sin tantos cambios de zoom ni de foco. Pero es solo mi apreciación, quizás para videos mas cortos de redes sociales como Instagram queda mucho mejor ese formato de edición.
Hola Midudev como estas espero que bien, te molesto para consultarte algo, todos los streams que haces en Twitch quedan grabados, te consulto porque me llamo la atension eso si es que quedan guardados para verlos.
puede existir una incompatibilidad con el export SI ESTAN IMPLEMENTANDO NODE.JS se aplica estos cambios module.exports.MESSAGE_TYPES = Object.freeze({ ERROR: Symbol(), WARNING: Symbol(), INFO: Symbol() }); module.exports.USER_STATUS = Object.freeze({ IS_LOGGED: 0, UNREGISTERED: -1 }); function imprimirMensaje(tipo) { if (tipo === module.exports.MESSAGE_TYPES.ERROR) { console.error('Se ha producido un error'); } if (tipo === module.exports.MESSAGE_TYPES.WARNING) { console.error('Esto es una advertencia'); } if (tipo === module.exports.MESSAGE_TYPES.INFO) { console.error('Esto es información'); } else { console.log('Mensaje no reconocido'); } } imprimirMensaje(module.exports.MESSAGE_TYPES.WARNING); SIN NODE.JS const MESSAGE_TYPES = Object.freeze({ ERROR: Symbol(), WARNING: Symbol(), INFO: Symbol() }); const USER_STATUS = Object.freeze({ IS_LOGGED: 0, UNREGISTERED: -1 }); function imprimirMensaje(tipo) { if (tipo === MESSAGE_TYPES.ERROR) { console.error('Se ha producido un error'); } if (tipo === MESSAGE_TYPES.WARNING) { console.error('Esto es una advertencia'); } if (tipo === MESSAGE_TYPES.INFO) { console.error('Esto es información'); } else { console.log('Mensaje no reconocido'); } } imprimirMensaje(MESSAGE_TYPES.WARNING);
Creo que lo mejor sería utilizar el paradigma de programación orientada a objetos, y que cada error sea una instancia de la clase del error que corresponda. Abusar de primitivos es un code smell y para eso están los value objects, con esto, te quitas de encima ese código spaghetti, que viola varios principios solid, principalmente srp y ocp. Con typescript, a veces se elige solucionarlo con enums, pero también tiene sus problemas, principalmente para escalar. Saludos
Coincido respecto a los sonidos de fondo. No están mal, pero me gustaría que mientras hablas se minimicen lo mayor posible ya que a veces le prestas un segundo de atención al sonido y te pierdes de lo que se está hablando. El resto genial, muchas gracias.
🔥 ¡SUSCRÍBETE a mi canal de RUclips!
👉 ruclips.net/user/midudev
Midu, pensé que sabia usar diccionarios pero en poco tiempo pude aprender algo muy util gracias a ti.
Está excelente la edición y la explicación, me encanta que veamos la Miduevolución de tu canal.
Un abrazo gigante y sigue creando estas joyas de conocimiento. 💜
Me encantan estos videos cortos que ensenan tanto
Woooaahh, la cantidad de conceptos tan valiosos en tan poco tiempo es fabuloso. Gracias Midu!
Me encanto. Video conciso y al grano, aprendi mucho gracias!
La música del Hollow Knight le da el toque. Gracias Midu por los tips!
xD Lo que espero que no lo desmoneticen por eso 🤣
Grande como siempre Midu!, el audio que utilizaste hace muy agradable el entorno para el usuario. 👌
Grande como siempre, Midu!! Voy a comenzar a implementarlo en mis proyectos! Gracias!
Genial, Axel! Qué bien que te haya ayudado!!!
Q grande la banda sonora de Hollow Kinght me hace sentir en casa
Gracias por estos videos Midu, me encanto la edición en todo aspecto, se pasaron muy ligeros los 6 minutos!
Muchas gracias, Valentin! 🤗
Grande, estos "trucos" son muy útiles, siempre se aprende cosas nuevas contigo,
Gracias, Javier! 🤗
Ojala ver mas de este tipo de edicion en proximos videos!! 💪💪
¡Seguro que sí!
Siempre con contenido excelente, gracias viejo.
Brutal... gracias!!
Excelente, me gusto mucho que gran aporte muchas gracias por compartir
Te admiro bro, algún día espero llegar a ese nivel.
Hola midu, este video me callo como anillo al dedo justo estoy desarrollando una app en donde estaba utilizando "magic strings" y viene bien saber esto!
Buenísimo, Julio!
genial el video nuevo Midu, muy bien el editor nuevo. Lo único que le diría es que las transiciones las haga más lentas porque genera ansiedad. (mi opinion, claro que seguiré viendo tus vídeos!)
Gracias por el feedback, amigo!!! :)
Cómo mola el tema synthwave.
Gran video gracias :D
buenísimo, muchas gracias
¡Top! ¡Cómo siempre, la edición a otro nivel! Bueno, esto de los "magic strings" ya me ha mordido, así que vamos a usar el método mencionado.
Gracias por el comentario, Juan!!! :)
Excelente este formato de vídeos!!! 🙌🏼
Gracias, Juan Pablo! 🤗
Muchas gracias por todo tu contenido, sos un ídolo. Saludos desde Uruguay
Gracias a ti, Lazaro!
Mira que llevo años y lo de los Symbol he tenido que buscarlo porque no lo había visto aplicado de esta manera. Grande Midu! 👏
Gracias, Andres! :)
Grande entre los grandes, muchas gracias Midu
Muchas gracias, te amo
Excelente Una buena practica usada ya desde los inicio de la programacion.. Enums o Const ya VB6 año 1995 se podia y debia hacer eso..
Lo de los simbolos un peligro por que si integras con app externas a tu backend por ejemplo. deberian tener el valor de ese simbol en caso de interfases que filtran por esos valores. Prefiero poner cadena de texto d euna y que muchas veses representa una paramatrezada en la BD ademas si uno ya dispone de un code-gen automaticamente se generan las const o enums con un simple script de BD
Que buen video como siempre muy agradable y lúdico, en la época que desarrollaba en Javascript usaba el Object.freeze como tu lo aconsejas, cuando comencé a usar Typescript usaba enum, de hecho tambien uso enum desde que comencé hace unos años a desarrollar en Dart. Saludos!
me encantan los videos tan cortos que explican algo tan bien
Muchas gracias! lo he aplicado a mis proyectos, pero tengo dudas sobre Symbol(), podrias profundizar? );
Según como lo explico, yo lo entendí como un UUID, pero debe ser diferente. Supongo.
Buenisima información!
excelente, gracias!
He tenido el problema de los magic strings y está súper bueno esta solución, thx
Gracias, Juan!
He aprendido bastante en este video!!!
Qué bien, muchas gracias!
Hasta que alguien explica los símbolos de una forma simple por fin logre entender el concepto.
Gracias por la información
Wow midu que buena edición y contenido, sigue así, eres un grande 🎉
Gracias!!!
Excelente vídeo. Me fue de mucha ayuda.
Gracias, José!
Como se puede aprender tanto en 6 minutos de video.... Increíble Midu, me encanta tu contenido 🔥
Y si a los miembros les asignas valores en potencias de 2 (1, 2, 4, 8, 16) puedes tener valores que sean la unión (suma) de varios de ellos. de tal forma que mediante un operador de OR a nivel de bits sepas si el valor es una combinatoria de valores de los miembros. Como en los enumerados de C# o Java.
editor de video y editor de code q locazoo miduuuuuu❤
😮 wow excelente información
Muy bueno !
Midu, eres tan bueno como Dev y maestro, que yo siendo solo un principiante, en el momento en que me he perdido, he podido regresar al tema sin problema.
Muchas gracias, Camilo! :)
tremendo boost de calidad visual midu. Felicidades!
Gracias, LaFede!!!
@@midudev LE! fede 😡😂
2:41 Los 'Symbol', no es que se puedan usar "por meter los errores en un diccionario", como dice Midudev. Los 'Symbol', se pueden usar también en la primera definicion en forma de variables "sueltas" que explicaba al inicio.
Y el autocompletado, lo tienes igualmente aunque no uses un objeto. De hecho, posiblemente sea mejor meter los errores en un fichero a parte para evitar dependencias circulares.
Apuntado el truco midudev, muchas gracias 🙂
Gracias a ti, Juan!
Dentro de symbol() tenemos que poner un icono o algo? Esa parte no me quedó en claro. Muchas gracias por ilustrarnos. Siempre todo muy valioso.
Gracias midu 👌👌👌🙌
Excelente, concepto útil para cualquier lenguaje no solo js
¡Cierto!
Totalmente!
Me encanta este formato de video ^_^
Buena edición, los sonidos no son necesarios a mi gusto, los de notificaciones, y a veces demasiados cambios de cámara pueden marear sobre todo si estamos analizando el código y de repente te dan una vuelta de 360 a otra cosa, pero en general bien, un 8 de 10 (mi opinión)
Y gracias por los consejos Midu, ya había tenido problemas con esos y no había pensado en esta solución
Gracias por el feedback, Julio!!! :) Lo tomaremos en cuenta!
Este efecto se conoce como "corte rápido" o "edición rápida". Este es un recurso muy utilizado en la producción de videos para redes sociales y plataformas como RUclips, donde la duración de la atención del espectador es limitada.
La técnica consiste en alternar rápidamente entre diferentes tomas, ángulos o escenas, a menudo sincronizando la transición con la música o el ritmo de la edición, para crear un efecto visual impactante que mantiene la atención del espectador. Este efecto puede hacer que el video sea más dinámico y emocionante, lo que puede ayudar a aumentar su impacto y su capacidad para captar la atención del público.
Habia visto los Symbol cómo key, no como value, buen aporte hay que manejar igual esos valores que se generan en runtime con pinzas, pero es un buen caso de uso. Salu2
Gracias!
genio, como siempre
Grande midu, siempre aprendiendo
Gracias, Elmer! 🤗
Oye midu, un 10 por la edición del vídeo, Lo hace mucho más entretenido. Felicitaciones al editor o editora!
Increible 😮😮
Me mató la música de Hollow Knight de fondo 😂. Excelente contenido estimado!
Muy interesante gracias por la explicacion. En este caso teniendo tanto else if no seria mejor utilizar un switch?
Muy bueno :)
Muchas gracias por el video, me ha enseñado algo que no sabía.
Una duda que extension es para que ponga el === como las tres lineas seguidas?
muy interesante
Excelent!
Tienes un editor profe? Me gusta la nueva edición
Gracias por otro gran video
Gracias a ti, Adrián!
Buaaaaaaaaaaaaaaa Me voló la cabeza lo de los símbolos 🤯🤯🤯🤯🤯
No conozco tan profundamente JS, pero en C# se soluciona con enumerators y creo que JS también los tiene
No los tiene
Buenisimo yo ya lo aplicaba pero no con el Object.freeze tremendo consejo gracias genio
Siempre se aprende algo nuevo!
Acaso escucho en el fondo Fungal Wastes, de Christopher Larkin?
Gracias por el video, Midu
Gracias
Ufff la música de fondo del sendero verde de Hollow Knight 👌🥰
Muy buena info n_n
Gracias crack!
esta genial el video, oye como se llama ese editor de codigo que utilizas?
Con TS se pueden usar enums para eso.
Me tienes intrigado. A ver que nos muestras hoy :)
Hola midu, para typescript ves bien usar los enum para solventar estos magic strings o los usarias para otro tipo de caso?
Sí, enums o diccionarios as const.
por lo que veo los Enums no existen en JS, buen aporte de maneras de realizar uno
@midudev Que herramienta usas para ver las dos ventanas e ir ejecutando el js en una e ir viendo el resultado en la otra inmediatamente. Seria muy util para muchos. Abrazos crack!!!!
Muy buen vídeo, muy digerible y entendible, cabe mencionar que las recomendaciones que haces aplican no solo a JS si no también a otros lenguajes de programación. Algo gracioso que se me hizo por parte del vídeo es que agregaste el sonido de cuando te llegan mensajes en la app de Messages había pensando que ya me habían llegado un montón de nuevos mensajes jajaja, espero más contenido de este estilo es muy enriquecedor, excelente día!
hola midu como vas? , tengo una duda , ¿cual seria la entrada de la variable tipo ?, el cual se comparara con los objetos al usar, donde ya todo lo implementado se ha realizado. Veo que hay un dato que se compara (tipo) pero si este debe ser digitado y luego cambiado a mayúsculas para después hacer la comparación o también podría este dato buscarse en una base de datos para hacer la comparación o extraído de un atributo en el html (por ejemplo el disabled).
Muy buena informacion para javascript puro, para los que usamos TypeScript me parece mejor usar enums de strings, son inmutables y organizan de la misma forma
Maravillosa la banda sonora de hollow knight, buen tip.
Gracias ❤, qué tema ocupas en VS?
Synthwave 84
Cuál es el tema que estás usando para tu vs code?, Y cómo es que se ve tan fluidoooo?.
Me encantó lo música de Hollow Knight de fondo
Synthwave 84
Miduuu no sabia que te gustaba HollowKnight!!
@midudev la verdad el contenido del video como siempre genial, sin embargo el formato, para explicaciones o videos de RUclips no me parece acertado el movimiento de foco al menos a mí me distrae mucho y no me deja centrarme en ver todo el código que explicas, los zoom para mi son útiles solo en los casos que el texto se ve muy pequeño de lo contrario prefiero un video plano sin tantos cambios de zoom ni de foco. Pero es solo mi apreciación, quizás para videos mas cortos de redes sociales como Instagram queda mucho mejor ese formato de edición.
Te agradezco mucho el feedback, lo tendremos en cuenta!!!! :)
En este uso en particular, no se podría cambiar por un Enum? En TS ya existe
Se puede usar Symbol() para las keys de react?
Hola, me gusta tu contenido, muy bueno, nose porque pero veo que el indicador de tu mouse tiene cierto desplazamiento suave, como le haces para eso?
Es un tema de cómo funciona cómo captura el vídeo.
muy buen video, que theme usas?
Synthwave 84
Hola Midudev como estas espero que bien, te molesto para consultarte algo, todos los streams que haces en Twitch quedan grabados, te consulto porque me llamo la atension eso si es que quedan guardados para verlos.
puede existir una incompatibilidad con el export
SI ESTAN IMPLEMENTANDO NODE.JS se aplica estos cambios
module.exports.MESSAGE_TYPES = Object.freeze({
ERROR: Symbol(),
WARNING: Symbol(),
INFO: Symbol()
});
module.exports.USER_STATUS = Object.freeze({
IS_LOGGED: 0,
UNREGISTERED: -1
});
function imprimirMensaje(tipo) {
if (tipo === module.exports.MESSAGE_TYPES.ERROR) {
console.error('Se ha producido un error');
}
if (tipo === module.exports.MESSAGE_TYPES.WARNING) {
console.error('Esto es una advertencia');
}
if (tipo === module.exports.MESSAGE_TYPES.INFO) {
console.error('Esto es información');
} else {
console.log('Mensaje no reconocido');
}
}
imprimirMensaje(module.exports.MESSAGE_TYPES.WARNING);
SIN NODE.JS
const MESSAGE_TYPES = Object.freeze({
ERROR: Symbol(),
WARNING: Symbol(),
INFO: Symbol()
});
const USER_STATUS = Object.freeze({
IS_LOGGED: 0,
UNREGISTERED: -1
});
function imprimirMensaje(tipo) {
if (tipo === MESSAGE_TYPES.ERROR) {
console.error('Se ha producido un error');
}
if (tipo === MESSAGE_TYPES.WARNING) {
console.error('Esto es una advertencia');
}
if (tipo === MESSAGE_TYPES.INFO) {
console.error('Esto es información');
} else {
console.log('Mensaje no reconocido');
}
}
imprimirMensaje(MESSAGE_TYPES.WARNING);
Tu tema de vscode es hermoso como se llama ?
Crack!
Creo que lo mejor sería utilizar el paradigma de programación orientada a objetos, y que cada error sea una instancia de la clase del error que corresponda. Abusar de primitivos es un code smell y para eso están los value objects, con esto, te quitas de encima ese código spaghetti, que viola varios principios solid, principalmente srp y ocp. Con typescript, a veces se elige solucionarlo con enums, pero también tiene sus problemas, principalmente para escalar. Saludos
Coincido respecto a los sonidos de fondo. No están mal, pero me gustaría que mientras hablas se minimicen lo mayor posible ya que a veces le prestas un segundo de atención al sonido y te pierdes de lo que se está hablando.
El resto genial, muchas gracias.
Hola! Cómo se llama la extensión que usas para que el ratón se te ponga como un + y salgan unas líneas para ver si están alineadas las cosas?
Y un diccionario vs un Enum que igual se lo usa para los Magic string.
¿Qué pasa con un Freeze?
Con typescript podrias usar un enum
Esto sería algo similar a los enum en otros lenguajes no?