Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TFG-72 Add reasons for the design #76

Merged
merged 14 commits into from
Jun 16, 2022
Merged

TFG-72 Add reasons for the design #76

merged 14 commits into from
Jun 16, 2022

Conversation

pablojjimenez
Copy link
Owner

@pablojjimenez pablojjimenez commented Jun 14, 2022

Avanza en la HU #42

Con esta entrega pretendo mejorar la explicación del modelado del sistema en la memoria y refactorizar un poco código repetido que había. closes #72

Implemento tmb un patrón de diseño para mejorar el proceso de creación de repositorios y dejar dejar atrás la complejidad de imports circulares y simplificar todo ese proceso. closes #78

@pablojjimenez pablojjimenez changed the title TFG ]72 closes TFG-72 closes #72 Jun 14, 2022
@pablojjimenez pablojjimenez changed the title TFG-72 closes #72 TFG-72 Add reasons for the design, closes #72 Jun 14, 2022
@pablojjimenez pablojjimenez changed the title TFG-72 Add reasons for the design, closes #72 TFG-72 Add reasons for the design Jun 14, 2022
Copy link

@JJ JJ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Los problemas que veo están más relacionados con la base de las decisiones, más que con el PR en sí, así que p'alante.

cie
AbstractRepository
clusterizar
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No sé si esa palabra existe...

clusterizar
satisfacibilidad
mockeadas
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... ni esta

situ
tipados
creacional
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... ni esta
Tienes que tener un poco de cuidado con la terminología. La terminología coloquial que se usa no tiene por qué ser correcta en el contexto de #14

"""

def factory_method(self):
return DiseaseRepository('data/diseases', CieRepoCreator().factory_method())
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

El prefijo debería estar en una constante.

Copy link
Owner Author

@pablojjimenez pablojjimenez Jun 16, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lo meto en la PR donde añado un sistema de configuración #77 y creo issue para registrarlo y no olvidarme

)
predictor = PredictorManager(c)
predictor.deaths_forecasting({'query': query}, group, summ, period)
predictor = PredictorManager(RazielRepoCreator().factory_method())
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No entiendo muy bien ahora lo que estás haciendo. ¿No se suponía que se iban a fusionar la info de todos los repositorios? ¿Lo que estás haciendo es escober sólo uno de ellos para devolver información?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A la hora de crear este objeto RazielRepoCreator crea y usa el resto de repositorios que necesita

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Entonces, ¿es un problema de denominación? ¿Raziel no es un repositorio?
De veras, tienes que explicar un poco mejor las decisiones en los mensajes de commit o en los issues. Si no, me pierdo.

obj = AgesGroupsRepoCreator().factory_method()
assert isinstance(obj, MockGedadRepository)

def test_creator_operation(self):
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No se usan literales en el código, se usan constantes con un nombre que indique qué son (y cómo cambiarlas en caso de refactorización). Por favor, respeta las buenas prácticas en los lenguajes y tecnologías que uses.

A la hora de empezar con la implementación de la solución, debemos comenzar teniendo en cuenta la arquitectura software que satisface requisitos del sistema de acuerdo con los usuarios. Es decir, con las historias de usuario que han expresado.

\section{Arquitectura software de la solución}
Para el diseño del software se ha utilizado el diseño dirigido por el dominio, DDD \textit{Domain Driven Design}. Este tipo de arquitectura introducida por Eric Evans \cite{ddd_book}: "Domain-Driven-Design - Tackling Complexity in the Hearth of Software, 2004" nos permite organizar el código de forma separada y organizada lo que nos permite poder realizar TDD correctamente ya que por tener las distintas capas separadas y débilmente acopladas unas de las otras. Gracias a este bien diseño es muy fácil hacer uso de la inversión de dependencias \footnote{https://jj.github.io/curso-tdd/temas/inversi\%C3\%B3n.html} para inyectar en los tests las clases mockeadas que necesitemos.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Creo que el rojo marca un error en LaTeX

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Creo que es por escribir : o tal vez por el " tras una cita... no se muy bien la verdad

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

igual las comillas, simplemente. En fin, ni caso.

@pablojjimenez pablojjimenez added this to the 1. Modelo de datos milestone Jun 16, 2022
@pablojjimenez pablojjimenez merged commit e4427cd into TFG-add-rest Jun 16, 2022
@pablojjimenez pablojjimenez deleted the TFG-72 branch June 16, 2022 11:17
pablojjimenez added a commit that referenced this pull request Jun 22, 2022
* TFG-72 Add reasons for the design (#76)

* TFG-72 Add reasons for the design of the software architecture and explain why the classes are organized in this way. closes #72

* TFG-72 add factory method pattern. close #78

* TFG-80 Add documentation (#83) 

* TFG-80 Add documentation. closes #80 

* TFG-80 Add docstring to abstract_repository.py

* TFG-85 closes #84 

* TFG-add-rest small improvement in memory

* TFG-74 Add http error codes (#81)

* TFG-74 Improve error handling closes #74

* TFG-74 closes #75 closes #73

* TFG-73 Add configuration and deletion of residues (#77)

* TFG-73 Add use of distributed configuration and justification to memory. closes #73

* TFG-73 Add repos data path to general config. closes #82
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants