00 - La Forja: la práctica del curso

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

  • Al principio es una aplicación de consola para gestionar el Gremio de Héroes: registrar héroes, consultar su ficha y gestionar el inventario de la forja.
  • Cada tema del módulo aporta un concepto nuevo que la aplicación necesita, y ese concepto se aplica directamente sobre ella.
  • Al final del curso, La Forja es una API REST con Spring Boot y login con tokens.
  • Tras explicar cada tema en clase, se abre la versión actual de La Forja y se presenta el paso nuevo: no es un tutorial, es un encargo.
  • Cada paso define tres cosas: el problema que sufre la versión anterior, la funcionalidad que se exige y las pruebas que deben pasar.
  • El paso no trae diseño ni código resuelto: cómo se agrupan los datos, cómo se nombran las funciones, qué estructura de datos se elige, cómo se organizan los paquetes… son decisiones de cada alumno, razonadas y defendibles.
  • Solo se da como fijo lo externo: los contratos que no se diseñan (el formato del JSON de configuración, el intercambio de tokens, el HTTP).
  • Cada paso termina con una lista de pruebas: si las pasa, la versión cumple. Lo que sigue doliendo es la motivación del paso siguiente.
  • Cada práctica tiene una solución de referencia: se publica después del encargo, y lo valioso no está en acertar el diseño a la primera, sino en comparar las decisiones razonadas de cada uno con las de la solución.

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

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

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

  • clase/daw/prog/1eval/practicas/p1.txt
  • Última modificación: 2026/10/29 10:02
  • por cesguiro