Closed bassimat closed 1 year ago
Tarea a realizar en forma conjunta con @bassimat
Es un módulo con 3 clases dentro del ejecutable querier
1- En el método Repo.search() se obtienen los resultados que es importante registrar y, como desde fuera estos datos no son visibles se podrían retornar como un reporte.
2- Cada subclase de Repo tendrá un formato y nombre para esos datos, por lo tanto, será su responsabilidad recabar la información genérica para crear el reporte. De esta forma se baja el acoplamiento.
3- El resultado de la búsqueda se carga en un objeto Search
que centraliza los resultados en forma de reportes.
4- Al finalizar la búsqueda este objeto creará un registro en el historial con toda la información recabada.
5- La gestión de todos los registros de búsquedas será responsabilidad de otra clase llamada historial (History
) que implementará los casos de uso: Crear, recuperar, eliminar, comparar
Una posible implementación para seguir las bases de bajo acoplamiento se muestra en historic.wsd:
@JCMiguel dejé algo de material para que chequees y luego conversemos.
De todas las características/features que listé, podríamos implementar alguna parte, al menos al principio, y luego extenderlo. Lo digo por una cuestión de prioridades. Cuando lo conversemos consideramos entre esas y otras que se te ocurras y delimitamos el alcance.
@bassimat No termino de entender cuál es tu propuesta de implementación. Te dejo expresadas algunas inquietudes basadas en el diagrama que compartiste en uno de tus comentarios.
Voy respondiendo a los ítems así llegamos con las ideas más claras para cuando lo conversemos:
Report
viene a ser más una estructura para agrupar esos datos que una clase con funcionalidad específica. Es más, en el caso de que su funcionalidad termine siendo nula podría repensarse como un diccionario y ya. En cuanto a Search, su función principal es generar el registro de la búsqueda que se guardará en el historial, y esta tendría los parámetros de búsqueda o cadena y el reporte general, que sería la recolección de los reportes particulares. En fin, tendría todos los datos de la búsqueda que se guarden en el historial. La clase History
tiene el CRUD de lo registros y además un main para poder ejecutarse independientemente del querier.Nada de esto está puesto con 🗝️, por supuesto. Así que podemos moldearlo para que quede mejor. Luego lo seguimos conversando!
Como se menciona aquí arriba, con el PR Integración de historial y clases Querier e Indexer mergeado, se cierra este issue
Sería interesante que en la etapa de análisis, cuando el investigador está descubriendo el área de dominio y probando la combinación de términos que mejor encamine su búsqueda, esta aplicación lo asista permitiendo comparar los resultados obtenidos.
Ejemplo de un ítem del historial:
Otro issue podría ser la obtención de un reporte del historial que se pueda ordenar por sus campos