- Introducción
- Planificación del curso
- Hitos
- Posibles ideas para proyectos
- Lugar
- Título
- Inscripción
- Proyectos realizados
- Instrucciones de uso
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).
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.
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.
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.
Se hará en la plataforma de Spain AI. El enlace se proporcionará en el grupo de Telegram en el que están los inscritos.
Spain AI proporcionará un título en PDF al final del curso.
Inscríbete en EventBrite. La inscripción es gratuita.
Los proyectos en elaboración se enlazarán en en esta página. Los de las ediciones anteriores están en este directorio.
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.