Patrones_Python - SamuelGJ0320/Topi-Ing-Soft_Nomy GitHub Wiki
Problema
En el proyecto escogido se realizaban embeddings para encontrar los mejores restaurantes para mostrar en el template por medio de la similitud del coseno. Todo este proceso se realizaba únicamente en la vista de restaurante, lo que ocasionaba que el código fuera difícil de modificar y poco reutilizable, ya que si posteriormente se requiere que otra vista implemente también los embeddings se debe reescribir todo el código lo que no sigue los patrones DRY y ETC.
Solución
Para solucionar estos problemas se creó un nuevo archivo llamado Strategy por el nombre del patrón de diseño de python utilizado, este patrón permite definir algoritmos dentro de clases independientes, lo cual promueve la separación de responsabilidades que viene principalmente del SRP (Single Responsability Principle) y además mejora la reutilización del código cumpliendo con el principio DRY (Don't repeat yourself).
Luego de la creación del archivo se colocaron allí las funciones requeridas para el proceso de los embeddings el cual se realiza dentro de la clase llamada EmbeddingStrategy la cual posee la funcion de process() que retorna los mejores resultados luego del procesamiento.