---
tags: learn
disqus: hackmd
---
HackMD Lista de conocimientos adquiridos
===
**[Kelvin arias](/c/https://github.com/KelvinArias)**
Este archivo es una lista de cosas aprendidas preguntadas o encontradas durante la revisón realizada en el pedido [Feature create draft in project list](/s/https://github.com/Equip-Collaboration/equip_api/pull/956)
Preguntas
---
- Web
- ¿Si se modifica una función que tiene tests pero no cubre todos los casos se debe cubrir con tests solo la parte modificada o toda la función?
- Respuesta:
solo lo que tu modificaste.
- Nota:
Los tests de coverage se deben realizar a las lineas de codigo que realizas en el pedido.
- ¿Cuando se cubren las lineas de codigo antiguas que quedaron sin coverage?
- Repuesta:
Si tienes tiempo puedes cubrir las que puedas o hacer una prioridad compartida con tu jefatura para cubrirlas en un futuro pedido.
- ¿En que casos puedo crear esto para evitar hacer un helper?

- Respuesta:
si son puros || o && no tienes que crear helper
- ¿Cuando usar una función ya definida o crear la tuya?
- Respuesta:
Cuando una función necesite de más parametros y la funcionalidad de la misma debe ser modificada con más condicionales aumentando asi la complejidad de la función se debe crear una nueva
- Nota:
Esta pregunta y respuesta no es literal, pero es una abreviación a la original
- ¿Debería ser "notSync"?

- Respuesta:
Sí eso debería ser notSync
- ¿Que diferencia genera con respecto a 'notLegit'?
- Respuesta:
Ninguna
- ¿Cual es el incentivo de usar uno u otro?
- Respuesta:
tener errores más claros
- Nota:
Actualmente no hay una diferencia cuantitativa entre usar 'notSync' y 'notLegit' pero se recomienda respetar su uso porque tendra cambios futuros en los que se necesita que estos campos esten correctamente usados.
- API
- ¿Por qué no usar switch en este caso?

- Respuesta:
Se tendria que llamar una función y estos casos es más facil manejarlo de esta manera.
- Nota:
Sigo pensando que se devio usar un switch
- ¿Cuando aplicar esto?

- Respuesta:
Tienes que ver el uso que tenga la función y siempre tratar de reutilizarlas para manejar los errores de manera más organizada.
- Nota:
En este caso las funciones se usaban para verificar el request
- ¿Esta bien dejar parametros sin usar aca o en otros archivos de las acciones de API?

- Respuesta:
Sí, eso ayuda al desarrollador que no sepa que trae la función por defecto
- ¿Por qué se agrega un deleteAt a los request y no se borran de la base de datos?
- Respuesta:
Debido a como funciona el CRON borrar los request de la base de datos podría acarrear errores.
- ¿Como y cuando usar este codigo?

- Respuesta:
Cuando necesites tener varios promise all con condicionales.
- Nota se debe declarar primero las variables arriba y sirve para llamar los hijos de un request, en este caso en la lista de elementos de un proyecto
Aprendizaje
---
- Se puede usar un $apply para concatenar un array con varios objetos:

- Siempre que una función sea muy compleja de editar es mejor hacer una más pequeña y especifica para el caso que se desea cubrir
- Nunca dejar una función redux con solo un payload los parametros que se recibe

- Nota:
Este caso los parametros son descriptivos pero no tiene jsdocs
- Respetar el 'notSync' y 'noLegit' en los mensajes de error en la api
- Se pueden agregar funciones en "libs/Lib3S/index.js" siempre que se usen en varias acciones
- Se debe reutilizar las acciones para detectar errores en la api siempre que se pueda
- Siempre tratar de dejar los componentes hijos en la web lo más sencillos posible y trasladar la logica y el manejo de eventos de esos componentes al componente padre
- Usar Promise.all siempre que los querys no necesiten de otro para ser ejecutados
- Hacer variables largas y discriptivas es mejor que comentarlas
- Estructurar correctamente el changelog y pedir el tiempo que sea necesario para dejarlo lo más fiel a los cambios realizados
- Usar Boolean cuando tenga una constante que se use como condicional y reconocer cuando deba crear una función helper
Collaboration
---
- [Claudio](/s/https://github.com/cmatus)
- [Jhonatan](/s/https://github.com/jhonatanmarin1)
- [Anibal](/s/https://github.com/AnibalCerda)
###### tags: `Learn` `Revision`