Tabla de Contenidos

00 - La Forja: la práctica del curso

Durante todo el curso construiremos La Forja, una única aplicación que evoluciona con nosotros:

1. Cómo funciona la práctica

Se explica el tema en clase¿la versión actual "sufre" un problema?sínoEl paso lo plantea como encargoEl concepto nuevo del tema es la herramientaSe practica el concepto con lo ya construidoEl alumno decide el diseño e implementa¿pasan las pruebas del paso?sínoQueda una versión funcional nuevaSe revisa y se vuelve a comprobar

2. El arco de la aplicación

Tema Paso de La Forja Herramientas del tema
01 La app existe antes que el código: diseñar el menú y el registro IPO, diagramas con PlantUML, pseudocódigo
02 Primera versión funcional: arrays paralelos, funciones y estado compartido Variables, IO, selección, bucles, arrays, funciones, sobrecarga
03 El modelo del gremio: objetos, jerarquía de héroes y forja Clases, encapsulación, enum, herencia, polimorfismo, abstract, interfaces, equals/hashCode
04 La plantilla y la forja tienen techo: hay que quitarlo List, Set, Map, Iterator, Comparable
05 La app tumba ante datos malos: reglas que no se rompen Excepciones propias, try/catch, fichero de configuración
06 Los informes del gremio, sin bucles a mano Stream, lambdas, Optional
07 Un montón de clases sin orden ni gestor Paquetes, Maven, librería externa (Gson)
08 El negocio mezclado con la consola: separar en capas Capas, DTO records, mapeadores, inyección manual
09 El contrato de la API, en papel Endpoints, métodos HTTP, JSON, códigos de estado
10 La API en Spring Boot @RestController, ResponseEntity, manejador global, logs
11 Peticiones que llegan a la vez Pool de hilos de Tomcat, estado compartido
12 Acceso identificado al gremio Tokens opacos, roles, filtro Servlet, Principal

3. Nota de material

La práctica es material aparte de los temas de temario/: no sustituye a las explicaciones ni los ejercicios de cada tema. Los pasos se redactan en sintaxis DokuWiki y se publican junto a los temas de la web.

<note tip>Cada paso es corto y no vuelve a explicar los conceptos del tema: describe el problema, los requisitos y las pruebas; el diseño y el código los aport