Uno de los consejos más importantes para la optimización de código, es no repetir el mismo.
Qué significa DRY: ¡no te repitas!
El acrónimo DRY significa "Don't repeat yourself", es uno de los principios del buen desarrollo de software que nos recomienda no repetir código fuente que ya hemos escrito.
Repetir código puede generar que, si el día de mañana debemos modificarlo en un lugar, también debamos modificarlo en los otros y si nos olvidamos de esto causará problemas en nuestra aplicación, además del esfuerzo que conlleva tener que realizar todas las modificaciones.
Si tenemos un mismo código fuente en un único punto de nuestra app, será mucho más fácil cambiarlo y también mejoraremos el rendimiento y el peso de los archivos.
Identificando puntos de mejora
A medida que tus habilidades y conocimiento en programación crezca, lograrás identificar con más claridad puntos donde estás repitiendo código y este pueda mejorarse.
Si por ejemplo tienes dos funciones que realizan la misma acción:
sumarNumeros(a, b){return a + b;}realizarSumar(a, b){return a + b;}
Debes eliminar una de ellas, dado que estamos repitiendo código innecesariamente y podemos reutilizar la función en todos los puntos de nuestro código que necesitemos.
Si te encuentras capturando elementos HTML en las funciones del código Javascript:
Puedes realizar esta captura del elemento una sola vez por fuera de las funciones y utilizarla siempre que necesites:
let botonFuego =document.getElementById('boton-fuego');functioniniciarJuego(){// ...}functionrealizarAtaque(){// ...}
La no repetición de código suele estar muy ligado al uso de funciones que poseen la lógica de tu aplicación. Pero también es un concepto que también tienes que aplicar al código CSS. ¿Cómo harías para no repetir clases CSS y poder reutilizarlas cuando las necesites?
Tipos de variables
Habrás observado que cuando declaramos una variable, utilizamos la palabra let por delante. La misma permite que el valor de esa variable cambie con el tiempo a medida que el usuario utiliza el software. Puedes modificar la variable siempre que lo necesites.
En ciertas ocasiones, modificar el valor de una variable puede generar problemas. Por ejemplo, evalúa el siguiente código:
let botonFuego =document.getElementById('boton-fuego');functioniniciarJuego(){// ...}functionrealizarAtaque(){// ...}
¿Qué ocurriría si la función iniciarJuego() altera el valor de la variable botonFuego, y posteriormente la función realizarAtaque() intenta utilizar la misma? Posiblemente, la aplicación se rompa y ocurriría algún comportamiento inesperado.
Para evitar que una variable cambie de valor, sabiendo previamente que nunca debe cambiar, puedes usar el tipo de variable const en lugar de let.
Las variables "Constantes" no podrán cambiar nunca su valor. Ocurrirá un error si lo intentas.
Con este simple cambio, tu aplicación ya es un poco más segura a evitar errores inesperados por cambios en los valores de las variables que no deberían cambiar. A medida que ganes en conocimiento y experiencia en programación, sabrás cuándo utilizar let o cuándo utilizar const.
Conclusión
No es necesario obsesionarse con no repetir código fuente. A veces es necesario o no puede evitarse. Siempre es recomendable hacer un esfuerzo de escribir código de la forma más escalable y limpia posible y no repetirlo es uno de los principales factores.
Evaluar la repetición de código y el uso correcto de los tipos de variables son dos conceptos que tienes que comenzar a asimilar para convertirte en ese gran desarrollador de software que sueñas.
Son principios que aplican para casi cualquier lenguaje de programación, no solo para Javascript.
Para evitar tener que esperar ir al navegador y ver los errores en consola, podemos descargar la extensión:
así poder ver los errores de esta manera:
espero les sirva!
esta chida esa extensión 👍
muy bueno
despues de un rato buscando el atajo del teclado para seleccionar las let y cambiarlas por const... eso se hace con CTRL+ALT+FLECHA HACIA ABAJO
Leonardo con ese atajo me gira la pantalla.
a mi funcionó Ctrl + D
jaja demasiado tarde para mi, no lei antes tu comentario
Resumen
Es buena práctica sacar las variables del tipo .getElementById de las funciones y colocarlas al inicio del js para ser usadas como variables globales. Así nos aseguramos de no estar repitiendo código. Es importante no definir más de una vez la misma variable y las funciones deben tener nombres distintos para evitar problemas.
Tipos de variables:
let = su valor puede variar, es decir cambia a lo largo del código
const = su valor será el mismo de inicio a fin
Que gran resumen compañero.
Muchas gracias yo ya me estaba rayando fuertemente
pro tip: cuando quieran seleccionar un palabra específica múltiples veces, pueden pararse sobre ella con el mouse y luego usar
ctrl +D
con esto empezarán a seleccionar las palabras que estén escritas exactamente igual, una por uno de ahí para abajo
Tengo Mac y cuando hago esto empieza a borrar, me puedes ayudar?
@valery Ramirez Yo igual uso Mac y en nuestro caso la combinación de teclas es CMD + D
La linea 5 del código no es una variable. Cuidado ahí.
Lo primero que vi cuando sacaba las variables jajaja
si , lo vi , pense que lo iba a eliminar .
Una de las frases que más paz mental me da es esa de que podemos llegar a diferentes soluciones y si funciona, ESTÁ BIEN HECHO.
god
Les dejo esta extension, esta super porque te permite editar tus tags apertura y cierre de HTML al mismo tiempo.
Ya la tenía, pero aun así es un alivio saber que esa extensión está ahí siempre que la necesitas.
Gracias
Creo que es una practica muy avanzada para alguien que va empezando en la programacion, porque retirar los getElementByID de su locazlizacion original puede afectar al momento de querer leer el codigo siendo nuevo en la programacion, yo por mi parte las deje como comentario.
Muy buena idea dejarlas como comentario :D
Sup, aunque también es importante darle nombres claros a las variables de id, así entendemos fácilmente cual es el valor de la variable con solo leer su nombre.
le agregue en el HTML la propiedad name con el valor boton a los 3 botones, entonces con el metodo getElementsByName()
me trae los 3 botones juntos en un array el cual recorro con un forEach y de esa manera les agrega uno por uno la propiedad disabled
Con tu idea se me ocurre poner los 3 botones en un section y luego display: none;
Creo que funcionaría y es más fácil, al menos para los que vamos empezando con JS
También pueden seleccionar toda la línea de código haciendo click en el número que la identifica a la izquierda.
Tambien se puede seleccionar la línea de código en donde esta posado el cursor con la combinación Ctrl+L.
Luego podemos moverla (intercambiar posición) hacia arriba o hacia abajo con la combinación ALT+Direccionales (⬆⬇).
Yo instale esta extensión, me parece graciosa y útil
Como se llama la extension?
Primera vez que para una constante no se dice "Como por ejemplo el número pi".... Muchas, muchas, muchas y más gracias por dar un ejemplo de que es un valor constate en el mundo real!!!😄
Variables:
Imagínate que te gusta el sushi de camarón 🍙 🍤y nomas compras ese.
const sushiDeCamaron
Como siempre compras ese sushi y no lo cambias, lo metes a esa variable const.
El asunto será cuando quieras pagar ese sushi de camarón y ver su precio. El precio no será el mismo este mes y dentro de 6 meses, el costo cambia.
Así que su precio será una variable let:
// lunes, 8 de agosto de 2022, precio de sushi de camarón:let sushiDeCamarón =129// lunes, 8 de marzo de 2023, precio de sushi de camarón:let sushiDeCamarón =179
Que caro esta el sushi !! jajaja Es joda
Que proyecto estas elaborando con tu sushi Ruben ??
Solo di un ejemplo, bro. jaja
Si sienten que se van a perder durante el transcurso de la clase hagan un respaldo .txt de su script JS original, cuando estén moviendo sus variables let comenten a function pertenecen, así podrán saber en donde se ubican en caso de que código se rompa.
Con alt + arriba o abajo, pueden mover una linea de código sin cortar y pegar :D
uuuhh gracias :)
Así es carnal pero esto es introduccion al programación eso que mencionas ya es un atajo con ,ayor conocimiento el profe Granda nunca se equivoca!
El código se puede mejorar
Despues de haber escrito el código y tenerlo funcional, se puede pasar a mejorarlo, hacerlo más corto y hacer que sea más agradable para el usuario. En lugar de tener una misma linea de código repetida múlples veces
<aside>
💡 Existe una opción para no tener lineas largas de código en **visual studio**
Solo hay que ir a view → word wrap y listo! también se puede usar `alt + z`
</aside>
Con esto podemos sacar variables locales que tienen el mismo nombre y se declaran múltiples veces y volverlas globales, esto evita repeticiones, además
Existen distintos tipos de variables
let es un tipo de variable que permite modificar el valor contenida en ella
const es un tipo de variable que guarda un valor que no queremos modificar en el futuro, una constante
Esta clase es oro puro
Tengo este problema y no se como resolver :(
![]
Cambiaste la linea donde se lee mokepon.js en HTML para que esta antes de cerrar el body?
Bryan tenia 2 horas leyendo codigo buscando el error, muchisimas gracias
Otro atajo que me sirvió muchísimo, espero que a ustedes igual
Para MAC Command
Para Windows Control
Command + D: Para seleccionar todos los similares uno por uno.
Command + Shift + L: Para seleccionar todos los similares al mismo tiempo.
me tira un error en la consola
Uncaught TypeError: Cannot read properties of null (reading 'style')
at mokepon.js:5:18
no se como solucionarlo, alguien que sepa me ayude se lo agradeceria mucho
Compártenos tu código para poder echarle un vistazo.
Muchas gracias, ya pude solucionarlo se me habia olvidado agregar el script al final del body