Ingeniería de Software
Recursos
Lecturas, documentación y herramientas. Para el entorno de trabajo, ver Laboratorio; para la terminología, el glosario.
Libros y lecturas libres
Software Engineering at Google Winters, Manshreck y Wright. Texto principal, libre en línea: equipos, revisión de código, pruebas, dependencias, integración y entrega continuas, deprecación.A Philosophy of Software Design John Ousterhout. Complejidad, módulos profundos y ocultamiento de información. Para las semanas de diseño.The Essence of Software Daniel Jackson (MIT). Diseño por conceptos: qué hace una aplicación desde el punto de vista de quien la usa.Engineering Software as a Service Fox y Patterson, el libro del curso CS 169 de Berkeley: desarrollo ágil, BDD y TDD.Site Reliability Engineering El libro de SRE de Google, libre en línea: SLOs, monitoreo, incidentes y postmortems sin culpables.Investigación de DORA Los reportes anuales sobre desempeño de equipos de software, métricas de entrega y adopción de IA.
Cursos de referencia
CMU 17-313 Foundations of Software Engineering Carnegie Mellon: uso responsable de IA, especificaciones, pruebas basadas en propiedades, arquitectura, CI/CD y ética, con un proyecto en sprints.Stanford CS146S The Modern Software Developer Desarrollo con agentes de IA: MCP, desarrollo guiado por especificaciones e ingeniería de contexto.UMD CMSC 398Z Coding with AI Maryland: herramientas de IA para programar y lo que hay más allá de que pasen las pruebas.Berkeley CS 169A Introducción a la ingeniería de software con desarrollo ágil y software como servicio.UW CSE 403 Software Engineering Washington: un proyecto en equipo que recorre todo el ciclo de vida.
Documentación
Documentación de Node.js 26 Referencia de la biblioteca estándar; en especial node:test, node:assert, node:sqlite y node:http.TypeScript Handbook El lenguaje de los laboratorios y del proyecto.Pro Git (en español) El libro de Git, libre: ramas, fusiones, rebase y flujos de trabajo.GitHub Actions Integración y entrega continuas en GitHub.OWASP Top 10 Los riesgos de seguridad más comunes en aplicaciones web.OWASP Top 10 para aplicaciones con LLM Inyección de prompts, salidas no validadas y otros riesgos de las funcionalidades con modelos de lenguaje.WCAG 2.2 Pautas de accesibilidad para contenido web.
Herramientas
fast-check Pruebas basadas en propiedades para TypeScript.StrykerJS Pruebas de mutación: mide si las pruebas detectan errores sembrados en el código.typescript-eslint ESLint con las reglas que aprovechan los tipos de TypeScript.Redocly CLI Valida y documenta especificaciones OpenAPI.Modelo C4 Diagramas de arquitectura por niveles: contexto, contenedores, componentes y código.Architecture Decision Records Templates y ejemplos para documentar decisiones de arquitectura.Docker Desktop Para correr el contenedor del curso en Windows y macOS.