El principio AHA (Avoid Hasty Abstraction) significa Evite las abstracciones apresuradas. Evitar las abstracciones apresuradas (AHA) es un principio de desarrollo de software popularizado por Kent C. Dodds, con el cual se logra producir bases de códigos más fáciles de mantener.
Principio AHA
Abstraer un componente de software significa separar lo que hace de cómo lo hace. Esto podría lograrse creando un nuevo método o función (lo que hace) e importándolo o llamándolo donde lo necesite (cómo lo hace).
Evite las abstracciones apresuradas
El principio Avoid Hasty Abstraction (AHA) establece que para evitar la tentación de abstracciones apresuradas:
- Es preferible la duplicación a la abstracción incorrecta
- Optimizar primero para el cambio.
Podríamos pasar semanas optimizando un código para el rendimiento, o ideando la mejor API para una nueva abstracción, solo para descubrir al día siguiente que hicimos suposiciones incorrectas.
Al realizar una abstracción en tu código, haz una pausa por un segundo y considera si tu abstracción realmente hace que tu código sea más fácil de entender. Si no es así, ¿realmente lo necesitas? ¿Estás seguro de que no hay una mejor manera?
En igualdad de condiciones, la simplicidad supera a la abstracción.
¿Cómo evitar las abstracciones apresuradas (AHA)?
En lugar de crear apresuradamente abstracciones que no se aplicarán a todos los casos, escribe códigos duplicados hasta que te sientas bastante seguro de que conoces los casos de uso de ese código duplicado.
¿Qué partes del código son diferentes que serían buenos argumentos para la función?
Una vez que tengas algunos lugares donde se ejecuta ese código, los puntos en común te pedirán abstracción a gritos y estarás en el estado de ánimo adecuado para proporcionar esa abstracción.
En resumen, siéntete libre de usar abstracciones no con moderación, pero cuando sea necesario y no tengas miedo de duplicar tu código.
Por otra parte, el principio de nivel único de abstracción (SLAP) se relaciona con el principio Avoid Hasty Abstraction (AHA) debido a que dicta cómo debes organizar tu código (en particular, las funciones) para que siga siendo mantenible.
¿Por qué usarlo?
Evitar la abstracción apresurada es útil porque reduce todo a sus principios más básicos. Puede ayudar a encapsular la funcionalidad de un objeto porque identifica la información importante que debe hacerse visible y la no tan importante que puede ocultarse.
Crear una abstracción incorrecta a menudo puede ser una especie de enfermedad que daña tu código a largo plazo porque cambiar esa abstracción posterior es bastante difícil.
El principio AHA también ayuda con el principio DRY. El principio de abstracción basado en DRY establece que: «Todas las funciones importantes del programa deben implementarse en un lugar del código fuente».
Conclusión
Las funciones largas y complejas son difíciles de manejar. Son difíciles de entender y de probar. El principio AHA te ayuda a ser consciente de tus abstracciones sin dar reglas estrictas sobre cuándo está o no está bien abstraer algún código en una función o módulo.
¿Qué te pareció el principio AHA? Dejame tu comentario y no te olvides de compartirla 😄
Comentarios recientes