Curso de desarrollo 谩gil - 5陋 edici贸n
June 16, 2021 路 View on GitHub
脥ndice
- Introducci贸n
- Planificaci贸n del curso
- Hitos
- Posibles ideas para proyectos
- Lugar
- T铆tulo
- Inscripci贸n
- Proyectos realizados
- Instrucciones de uso
Introducci贸n
En este curso trataremos de aprender las t茅cnicas necesarias para trabajar en un entorno 谩gil de desarrollo, para aplicaciones nativas en la nube o cualquier otra cosa. Ser谩 un curso conceptual, pero tambi茅n pr谩ctico donde aprenderemos a desarrollar diferentes t茅cnicas en cualquier lenguaje de programaci贸n y diferentes microframeworks. La idea principal es que este curso sirva de introducci贸n a la asignatura de infraestructura virtual o cualquier otra asignatura de inform谩tica avanzada.
Cada sesi贸n durar谩 unos 20-30 minutos; el resto del trabajo se hace de forma as铆ncrona interaccionando a trav茅s de un grupo de Telegram. Durante el curso se ir谩 elaborando un proyecto en equipo de dos o tres personas. Se tendr谩n que alcanzar hitos del proyecto que se haya elegido que se evaluar谩n autom谩ticamente usando tests. Cuando se completen todas las sesiones y objetivos generar茅 un badge para el repo donde se haya cumplido todo (y dependiendo del nivel en el que se haya alcanzado, se har谩 tambi茅n una recomendaci贸n en LinkedIn o donde se solicite).
Planificaci贸n del curso
La tercera edici贸n ha quedado grabada en esta lista de reproducci贸n. El planteamiento general del curso est谩 en esta presentaci贸n.
La cuarta edici贸n del curso, ya completa, est谩 en esta lista de reproducci贸n.
Tendremos estas sesiones:
-
Introducci贸n
- Qu茅 vamos a hacer en el resto del curso, c贸mo nos vamos a organizar
- Grupos de Telegram, bots en los grupos.
- Presentaci贸n.
-
Git y GitHub/GitLab. Uso b谩sico y avanzado de sistemas de control de fuentes y de sitios web para desarrollo colaborativo.
- Conceptos b谩sicos: pull, pull request, push, clone.
- Releases y tagging.
- Material.
- Presentaci贸n.
-
Dise帽o de una aplicaci贸n
- Design thinking.
- Personas o personajes.
- Material.
- Presentaci贸n
-
Resolviendo problemas usando la inform谩tica.
- Tem谩tica: hay vida m谩s all谩 de cliente-servidor.
- Material.
- Presentaci贸n.
- Servicios avanzados en inform谩tica.
- Configuraci贸n distribuida.
- Logs.
- Almacenamiento de datos.
- Material.
- Presentaci贸n.
- Desarrollo 谩gil
- C贸mo organizar un proyecto: canvas, 茅picas.
- Desarrollo por capas y todo lo que necesitamos para empezar.
- Historias de usuario, user journeys y todo eso.
- Material.
- Presentaci贸n.
-
Dise帽ando la aplicaci贸n
- Historias de usuario
- Uso de issues/hitos en el desarrollo basado en test.
- Dise帽o dirigido por el dominio
- Material.
- Presentaci贸n.
-
Refinando el dise帽o y organizando el desarrollo
- Algunos principios de dise帽o
- Material.
- Presentaci贸n
-
El arte de la buena revisi贸n de c贸digo.
- Aspectos t茅cnicos y emocionales de las revisiones de c贸digo
- Material.
- Presentaci贸n
-
Comienzo de la implementaci贸n "defensiva".
- Documentaci贸n de las historias de usuario y traslado a issues.
- Comienzo del dise帽o, en general, de las clases.
- Dise帽o de excepciones.
- Material.
- Presentaci贸n.
- Task runners y c贸mo usarlos.
- Diferentes tipos de task runners y por qu茅 son 煤tiles para todo.
- Material.
- Presentaci贸n.
- Preparando tu aplicaci贸n para testear: separation of concerns, dise帽o.
- C贸mo asegurarnos desde el dise帽o de que se cumplen las historias de usuario.
- Material.
- Presentaci贸n.
- Objetos de test
- Organizaci贸n de los tests.
- Fases de tests.
- Aserciones
- Material.
- Presentaci贸n.
- Ejecuci贸n de tests
- Hooks de git y c贸mo usarlos para testear todo el tiempo.
- Marcos de pruebas
- Material.
- Presentaci贸n.
- Qu茅 es la integraci贸n continua y c贸mo usarla para ejecutar los tests autom谩ticamente.
- Diferentes sistemas de integraci贸n continua: Travis, GitHub Actions...
- Acelerando con Dockerfiles.
- Material.
- Presentaci贸n.
- Inversi贸n de dependencias.
- Mocks.
- Material.
- Presentaci贸n.
- Tests de cobertura y por qu茅 son importantes.
- 脷ltimo en la cuarta edici贸n
- Material.
- Presentaci贸n.
- Tests funcionales/de integraci贸n/end to end
- C贸mo testear microservicios y sistemas basados en tareas.
- BDD y algunos frameworks.
- Material.
- Tests adicionales
- Tests de prestaciones.
- Tests de front-end.
- Tests de regresi贸n.
- Material.
Hitos
Las entregas se organizan en hitos, que corresponden (en general) a una sesi贸n. Este es el esquema de lo que hay que hacer en cada hito con enlaces
| Hito | Sesi贸n(es) | Descripci贸n y enlace |
|---|---|---|
| 0 | 2 | Crear repo con componentes |
| 1 | 3 | Idea de problema a resolver |
| 2 | 4 | Gama de aplicaciones |
| 3 | 5 | Servicios |
| 4 | 6 | Desarrollo 谩gil |
| 5 | 7 | Historias de usuario |
| 6 | 8 | Hitos |
| 7 | 9 | Revisiones |
| 8 | 10 | Programando |
| 9 | 11 | Gestor de tareas |
| 10 | 12 | Linter |
| 11 | 13 | Tests y aserciones |
| 12 | 14 | Marcos de test |
| 13 | 15 | Integraci贸n continua |
| 14 | 16 | Inyecci贸n de dependencias |
| 15 | 17 | Tests de cobertura |
Esta informaci贸n te la da el bot kke, a帽adido al grupo de Telegram
del curso, o con una conversaci贸n directa con 茅l.
Posibles ideas para proyectos, problemas para resolver
La inform谩tica consiste en resolver problemas del usuario mediante un ordenador. Estos son algunos de los problemas con los que se podr铆a tratar.
- DEIIT-bot, resuelve problemas de b煤squeda en apuntes.
- Conversaciones, trata de buscar patrones en conversaciones en canales de Telegram.
- Notas, comunicar las notas a estudiantes..
- Rastreador medios sociales, encontrar patrones en medios sociales.
- Porra, resuelve el problema de organizar porras entre amigos..
- Medioambiental, visualizar datos medioambientales.
- Programador de actividades, programaci贸n de actividades accesibles.
- Tr谩fico, an谩lisis de los mensajes de tr谩fico de Granada.
- Datos econ贸micos, an谩lisis de datos econ贸micos macro o por localidad.
Se puede usar esta plantilla para los proyectos.
Lugar
Se har谩 en la plataforma de Spain AI. El enlace se proporcionar谩 en el grupo de Telegram en el que est谩n los inscritos.
"T铆tulo" o acreditaci贸n de haber realizado el curso.
Spain AI proporcionar谩 un t铆tulo en PDF al final del curso.
Inscripci贸n
Inscr铆bete en EventBrite. La inscripci贸n es gratuita.
Proyectos realizados
Los proyectos en elaboraci贸n se enlazar谩n en en esta p谩gina. Los de las ediciones anteriores est谩n en este directorio.
Instrucciones de uso
make y pandoc deben estar presentes para generar los PDFs.
make
o
make doc
generar谩 los proyectos en un solo PDF.
Si tienes instalado mask,
puedes usarlo tambi茅n.