-
Notifications
You must be signed in to change notification settings - Fork 0
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
Code review #13
Comments
en resumen: Puntos a pulir, pero buenos resultados. |
Hola @ZeroDragon, es buen feedback 👍 , hay algunas cosas que cambiaría Docker
También podrían ser diferentes docker y hacer los comandos de make correspondientes. github
testing
usar githooksPara resolver las incongruencias entre lo que se usa localmente y en el CI para no tener que andar corriendo los comandos de code style
python
extra
|
Una nota extra, realmente no he usado fastapi + allá de saber de él y algún contacto superficial, pero creo que era una buena oportunidad de agarrarlo (xq esta cool). |
Conclusiones
A nivel general me parece bien, se resolvió el problama, las instrucciones del
READMEno funcioan al 100% porque hay un problema en configuración deldocker-compose.yml, me gustó que se haya separado la lógica de negocio de la capa web pero se desaprovechó esta separación en los tests.Hubo un desarrollo incremental y conoce herramientas de desarrollo como formatters, linters, etc. pero no las aplica correctamente, sobretodo en el punto de configuración.
Punto por usar
dockerpero no hizo ua correcta separación y manda unDockerfilede desarrollo a producciónEn términos generales me parece un candidato con buenos conocimientos pero que falta pulirlos
Uso de GIT y CI
Pareciera que se tomó de una plantilla y no se ajustó apropiadamente, en la parte de instalación de dependencias se busca un archivo que no existe en la raí
Según la historia de git se ve un trabajo incremental, primero hizo un bootstrap del proyecto, luego hizo la solución al problema para luego agregarle un endpoint
Linters y demás herramientas de desarrollo
Se usa
blackpara formateo(según elMakefile) pero esto no se valida en el CI, las reglas de formateo se especifican solo en elMakefilede modo que si alguien no usa eso puede obtener resultados diferentes, se debería usar un archivo de configuraciónLas reglas a aplicar por
flake8(linter) se especifican solo en el CI y no en un archivo de configuración, lo cual no permite hacer una validación fuera del entorno de CIUso de python
Se separó la lógica de negocio en una clase pero se usó un
dataclass, los cuales no "deberían" tener lógica mas allá de la que compete a sus propios atributos ni tampoco mentener estado. Al usar undataclassse debió usar solo funciones, parece que en este punto primó el uso del framework(fastapi) que recomienda usardataclasspero para la validación de datos y no para la lógicaSe usa map en el procesamiento de la informacion pero no se justifica su uso, pareciera que se le quiso dar un "toque funcional" en lugar de ir con los "idioms" de python que sería en este caso usar listas por compresión
El nombrado de variables podría mejorar un poco, se están usando nombres que no dan suficiente contexto, por ejemplo
d,ju_ind, etc.Hay mensajes de logging a nivel de debug pero en ninguna parte se especifica el nivel de logging el iniciar la aplicación por lo que no se están mostrando
Se está usando un
middlewarepara soportarcorspero se deja muy abierto, considerando que la aplicación está desplegada debería tener una forma de parametrizar los hosts permitidosTesting
Se hicieron pruebas pero no se pone mucho contexto en ellas, además se hicieron directamente desde la capa web, la solución al problema está en una clase de python por lo que se podría haber hecho pruebas unitarias y luego de integración con la capa web.
Documentación
Se documentaron algunas funciones pero se puso solo una descripción corta en lugar de una explicación
Si existe documentación del API usando swagger pero esto es algo que genera automáticamente
fastapi, punto extra por agregar descripción en la raízEjecución
En el
docker-composese define que se require un archivobackend/.envpero en ninguna parte se especifica qué debe haber en ese archivo, lo cual no permite ejecutar la aplicaciónSe tiene un único archivo
Dockerfileel cual se usa para desarrollo(usando un flag--reload) y también para el despliegue(mediante Google Cloud Run)The text was updated successfully, but these errors were encountered: