Este repositorio tiene como finalidad proporcionar un ambiente para la evaluación de candidatos a posiciones técnicas en Azulo. Cada una de las diferentes ramas del repositorio representan una evaluación específica. El representante de Azulo compartirá con el candidato la rama específica en la cual se encuentra la evaluación relevante para el puesto al cual está aplicando. Por favor seguir las instrucciones al pie de la letra. La comprensión de lectura y la atención al detalle serán parte de la evaluación.
- Cada candidato debe duplicar (fork) este repositorio en su cuenta personal de GitHub.
- Una vez la duplicación se haya completado, el candidato debe dar derechos de lectura al repositorio duplicado al funcionario de Azulo encargado de evaluarlo, de forma que pueda ver su avance.
- Debido a que al candidato se le dan varios días para realizar las pruebas, el candidato se compromete a enviar al servidor de GitHub (push) el avance realizado al final de cada día. Si el candidato falla en enviar el avance al servidor en alguno de los días de la evaluación, esto se reflejará negativamente en su evaluación.
- Todo el código y los archivos de configuración creados por el candidato durante la evaluación deben estar debidamente documentados. Si el archivo creado no tiene soporte para comentarios internos al documento, como es el caso de un archivo JSON, el candidato debe brevemente explicar su funcionalidad en un archivo README.md que se encuentre en la misma carpeta del archivo. El candidato debe describir brevemente el propósito de cada archivo, incluso si los archivos fueron creados por herramientas de terceros, para demostrar que el candidato tiene una idea clara del propósito del archivo y porqué lo está incluyendo en el repositorio.
- El candidato no debe agregar al repositorio (commit) ni subir al servidor (push) ningún archivo que sea generado automáticamente durante los procesos de construcción y compilación o archivos que sean generados por procesos automáticos, a menos que la herramienta explicitamente lo solicite. Esto con el propósito de evitar cambios innecesarios provocados por los procesos de construcción y compilación. Un buen indicador de que esto se ha logrado con exito es agregar los archivos al repositorio (commit) y asegurarse de que el repositorio está limpio y sin cambios y luego compilar y construir la aplicación y luego revisar el estado del repositorio (git status). Si existen cambios provocados por el proceso de compilación y construcción, entonces archivos generados por este proceso fueron incluidos en el repositorio de forma errónea y deben ser eliminados.
- El conocimiento de Git como sistema de control de código es parte importante de la evaluación, por lo tanto se debe prestar cuidado a la correcta utilización del archivo .gitignore, incluyendo comentarios sobre la razón por la cual ciertos archivos fueron incluidos. Adicionalmente es necesario cuidar la creación de ramas y agregar comentarios descriptivos y adecuados cada vez que se agregan cambios al repositorio (commit).
- Es importante que los comentarios tanto al agregar cambios al repositorio (commit) como los comentarios incluidos en los archivos sean adecuados y provean información valiosa. No deben incluirse comentarios con descripciones vacías o carentes de significado real. Comentarios como "haciendo cambios en el archivo ejemplo01.js" son obvios y no son valiosos. Es necesario que los comentarios describan la intención del desarrollador y no simplemente una mera descripción de las acciones realizadas. Por ejemplo, en lugar de "haciendo cambios en el archivo ejemplo01.js" deben incluirse comentarios como "Corrigiendo un defecto en la funcionalidad de la clase Ejemplo, que erróneamente actualizaba el archivo de salida aún cuando no se habían detectado cambios en el archivo de entrada." En lugar de un comentario que diga "Borrando el archivo ejemplo02.ts" se debe incluir un comentario como "Se determinó que la clase Ejemplo02 ya no es usada por la aplicación y su funcionalidad está desactualizada y es peligrosa para la integridad del sistema, por lo que se procede a eliminarla de la aplicación"