Atributo | Valor |
---|---|
Tipo | Colaborativo |
Estrategia | Mob Programming |
Modo | Síncrono |
Dedicación | 12 horas |
Duración | 4 días |
- Nivelar habilidades para la programación con Javascript / Typescript
- Introducir el uso de Linters
- Introducir en el desarrollo basado en pruebas
- Introducir la dinámica de Mob Programming
- Introducir la cultura de trabajo colaborativo remoto
- Introducir el uso de git y github
- git clone
- git push
- git commit
- co-author commits
- Deberán trabajar en equipo de manera colaborativa y aplicando la dinámica de mob programming para desarrollar una página web de acuerdo a los requerimientos que en las siguientes secciones se indican.
- En la actividad de Github (commits) se deberá observar la participación de todos los participantes a
- En cada commit se deben registrar todos los participantes activos (co-author commits)
- En los commits se debe observar a rotación de los participantes, es decir, quien hace el commit no es siempre la misma persona
- Código fuente en este repositorio
- Solución orientada a objetos
- Archivo README.md actualizado
- El código debe incluir pruebas unitarias
- La puntuación obtenida por Codacy, CodeClimate o similar debe ser A o lo equivalente
- Se deben incluir los badges de los analizadores de código estáticos (codacy, codeclimate, etc.)
- La versión final de tu código deberá estar en la rama master
- Número de commits como primer autor
- Número de commits como co-author
- Frecuencia de los commits (# de commits realizados en días diferentes)
- Tamaño de los commits (líneas de código agregadas)
- Javascript ó Typescript
- ESLint
- Jest
- Codacy, CodeClimate, CodeCov
El siguiente es un flujo de trabajo sugerido, si el equipo lo decide pueden seguir otro pero el resultado debe ser el mismo:
- Día 1
- Trabajar en la solución (codificación del algoritmo)
- Día 2
- Agregar ESLINT
- Resolver problemas identificados por el linter
- Continuar codificando / re-factorizando el algoritmo
- Día 3
- Agregar pruebas unitarias utilizando Jest
- Continuar codificando / re-factorizando el algoritmo
- Día 4
- Agregar por lo menos 2 analizadores de código estáticos como CodeClimate, Codacy, CodeCov o similares
- Resolver los problemas identificados por los analizadores de código hasta obtener la calificación máxima
- Terminar la solución (codificación) del algoritmo
The Game of Life is not your typical computer game. It is a 'cellular automaton', and was invented by Cambridge mathematician John Conway.
This game became widely known when it was mentioned in an article published by Scientific American in 1970. It consists of a collection of cells which, based on a few mathematical rules, can live, die or multiply. Depending on the initial conditions, the cells form various patterns throughout the course of the game.
This Coding Challenge is about calculating the next generation of Conway’s game of life, given any starting position.
You start with a two dimensional grid of cells, where each cell is either alive or dead. In this version of the problem, the grid is finite, and no life can exist off the edges. When calculating the next generation of the grid, follow these rules:
- Any live cell with fewer than two live neighbours dies, as if caused by underpopulation.
- Any live cell with more than three live neighbours dies, as if by overcrowding.
- Any live cell with two or three live neighbours lives on to the next generation.
- Any dead cell with exactly three live neighbours becomes a live cell.
You should write a program that can accept an arbitrary grid of cells, and will output a similar grid showing the next generation.
The input starting position could be a text file that looks like this:
Generation 1:
4 8
........
....*...
...**...
........
And the output could look like this:
Generation 2:
4 8
........
...**...
...**...
........
- Javascript
- Programación orientada a objetos
- ESLINT
- Desarrollo basado en pruebas
- Analizadores de código estático