Ir al contenido principal

Destacado

C4 Model | Por una mejor comunicación

Introducción. Han pasado muchos años desde la introducción de UML en el ámbito del desarrollo de software, con la llegada de Agile , la forma de desarrollar software cambió drásticamente: algunos conceptos evolucionaron, aparecieron nuevos mientras que otros fueron abandonados. Hoy en día, UML es utilizado por contadas personas,  la propia industria ha dejado de lado aquellos elaborados diagramas,  recurriendo a diagramas genéricos o diagramas parciales, altamente variados entre sí, para representar y describir arquitecturas/diseños. Aquí es donde entra Simon Brown , quien identificó este problema de comunicación dentro de las organizaciones. Para solucionarlo, desarrolló el modelo C4 , un sistema de modelos, capaz de describir el software de manera clara y accesible, no solo para  los equipos de desarrollo y arquitectos sino para todo aquel interesado en comprender el funcionamiento y  estructura de un sistema . Modelo C4. El modelo C4 se basa en un c...

Javascript | Closures 0.1

 Los closures son uno de los conceptos fundamentales en javascript y entenderlos nos permitirá escribir código más flexible y eficiente.


¿Qué es un closure?

Un closure es una función que recuerda el scope léxico en el que fue definida, incluso cuando se ejecuta fuera de ese scope.

Suena sencillo, ¿verdad? ¡Vamos por partes!

¿Qué es el scope?

El scope o contexto define el alcance y visibilidad de las variables, funciones y otros recursos dentro de nuestro código.

Existen 3 tipos de scopes: el scope global, el scope de función y el scope de bloque.


Scope Global:

  • Las variables declaradas fuera de cualquier función o bloque tienen un scope global.
  • Son visibles desde cualquier parte del código.

Scope de Función:

  • Las variables declaradas dentro de una función solo son accesibles dentro de esa misma función.
  • No son visibles desde fuera de la función.

Scope de Bloque:

  • Las variables declaradas con let o const dentro de un bloque solo son visibles dentro de ese bloque.


Ahora que ya tenemos claro que es un scope, prosigamos con el scope léxico.

¿Que es el scope léxico?

El scope léxico (o estático) hace referencia al lugar en el código donde se declara una variable o función. Esto determina qué variables estarán disponibles en tiempo de ejecución.

Dicho de otra forma, una función "recuerda" el contexto donde fue creada, sin importar dónde se ejecute después.


Ejemplo de Closure:

  • La función anónima retornada, es un closure, que tiene acceso a la variable value definida dentro del scope de tick.
  • Cuando tick es invocada, devuelve una referencia a la función anónima
  • La variable ticker mantiene una referencia a la función anónima y al scope (scope léxico) en la cual fue creada, lo que le permite acceder a value y modificar su valor. 
  • Nota que incluso después de que tick ha terminado de ejecutarse, es posible modificar el valor de value invocando la función anónima dentro de ticker.

¿Para qué sirven los closures?

Los closures son herramientas poderosas que permiten:

  • Encapsular datos y evitar la modificación directa de variables.
  • Crear funciones privadas en JavaScript.
  • Mantener estados internos sin depender de variables globales.

Sin embargo, un mal uso de los closures puede generar problemas de memoria o agregar complejidad innecesaria

¡Úsalos sabiamente!


Conclusión.

Dominar los closures te permitirá escribir código más eficiente y modular. Como todo en programación, la clave está en practicar hasta que se vuelva natural.

Nada que un poco de práctica no pueda resolver...


C you space cowboy!

Comentarios

Entradas populares