Entonces, creo que eso es una mejora y podríamos llegar incluso a pegarlo directamente en línea, porque va a devolver su función. Pero siento que eso es un poco demasiado. Siento que eso es un paso más allá de lo que necesitamos hacer. Muy bien. Y para nuestra gran refactorización final, nuevamente, todo esto es simplemente una forma más agradable de escribir lo que habíamos escrito antes. Cambiemos estructuralmente esto ahora mismo, este código es muy imperativo. Es decir, es paso a paso, es como recorrer el árbol DOM en cada iteración, verificar un atributo, obtener ese atributo, registrar un escuchador. En términos de mantenibilidad, eso no siempre es lo más mantenible. Entonces, si piensas en qué código quiero mantener, si este es mi pequeño marco de trabajo, ¿cuál es el código que si necesitara agregar un nuevo atributo, como flame text, tendría que copiar todo esto, tal vez esto se volvería enorme? Y todo está dentro de este walker. Es como, ¿y si simplemente fuera a un mundo de fantasía y escribiera lo que quiero? Bueno, en lugar de llamarlo attributes, llamémoslo directive. ¿Qué pasa si digo directive? Y luego podría decir algo como flame click, y luego tomemos todo este callback aquí. De acuerdo. E incluso, como estos son todos parámetros individuales que se pasan. Preferiría convertir esto en un objeto de cosas que se pasan para que pueda elegir qué cosas quiero, como, oh, solo quiero el elemento. O solo quiero el on remove, o solo quiero la expresión. Sí, esto está diseñado por pensamiento ilusorio. Para mí, esta es una forma mucho mejor de hacerlo. Entonces registramos la directiva, declaramos las directivas de manera más declarativa al principio, y ahora dentro de este walker tenemos algún método como boot o algo así como boot element. Y luego esta función de directiva registra una directiva en una pila de directivas, y luego boot recorre todas esas directivas y las inicia. Así que escribamos eso, vamos a salir de nuestros utils ahora mismo. Y vamos a crear un nuevo archivo llamado directives.js. Esto es otra cosa que me gusta hacer. Lo llamo el principio de un solo archivo, cuando estás escribiendo funciones que pertenecen juntas, las colocas en un solo archivo. Entonces, cualquier cosa relacionada con las directivas va en un solo archivo. De esa manera siempre sabes dónde encontrarlo. Si estás acostumbrado a la programación orientada a objetos, como PHP o Python o Java o algo así, estás acostumbrado a escribir clases como esta. Bueno, realmente no uso clases en JavaScript. Más bien uso estos módulos, estos archivos, donde en lugar de métodos, tengo funciones.
Comments