Reproducción automática
Autocompletar
Clase anterior
Completar y continuar
Diseño Sostenible | Ingeniería y Artesanía del Software con TypeScript
1. Introducción
1.1. ¿Perderemos el trabajo por la IA? (2:08)
1.2. Programar para las personas (1:59)
2. Las reglas del diseño simple
2.1. Las 4 reglas del diseño simple (3:04)
2.2. El código pasa los tests (2:39)
2.3. El código revela la intención (2:19)
2.4. Principio Dry: no hay duplicidad de conocimiento (1:14)
2.5. Prinicipios YAGNI y KISS: minimo numero de elementos (2:10)
3. Las reglas del Código Sostenible
3.1. Las reglas del código sostenible (1:13)
3.2. Sin tests no hay calidad en el software (1:14)
3.3. Abstracciones adecuadas e intencionalidad (3:34)
4. La kata Bowling
4.1. Las katas de código (2:33)
4.2. El entorno, refactor y atajos (3:08)
4.3. Repaso a TDD (3:39)
4.4. Enunciado de la kata bowling (4:15)
4.5. Primeros pasos (4:45)
4.6. La técnica del refactor en paralelo (3:40)
4.7. Calculando el semipleno (2:18)
4.8. Calculando el pleno (2:01)
4.9. El juego perfecto (2:55)
4.10 Repositorio de la Plantilla
4.11 Repositorio de la Solución
5. Principio de Menor Sorpresa
5.1. POLA (1:35)
5.2. Código coherente (1:44)
5.3. Consistencia en los tipos de retorno (1:27)
5.4. Evita el Monkey Patching (1:43)
6. Técnicas para elegir nombres
6.1. Técnicas de naming (2:16)
6.2. Nombres pronunciables (4:28)
6.3. Sin información técnica (3:40)
6.4. Nombres concretos (3:16)
6.5. Nombres que combinan con el lenguaje (1:49)
6.6. Evitar alias (4:14)
6.7. Considerando su contexto (5:42)
6.8. Qué distinga entre sustantivos y verbos (4:05)
6.9. Otras consideraciones (5:58)
7. La Kata del Juego de La Vida
7.1. Enunciado (2:03)
7.2. Implementando la Célula (4:28)
7.3. Refactorizando la Célula (3:40)
7.4. Gestionando el estado no válido (1:31)
7.5. Primeros pasos en el mundo (3:57)
7.6. La fila actual (3:35)
7.7. Calculando el resto de filas (6:07)
7.8. Algunos patrones conocidos (2:27)
7.9 Repositorio
8. Formato y Comentarios
8.1. Estilo (1:09)
8.2. Indentación (2:17)
8.3. Distancia vertical (3:11)
8.4. Esto no va de gustos personales (1:11)
8.5. Comentarios (5:55)
9. Diseño de funciones
9.1. Funciones (4:15)
9.2. Parámetros y argumentos (3:57)
9.3. Simplificación de la lógica condicional (5:49)
9.4. Separación del control de flujo (5:22)
9.5. Funciones puras (1:51)
9.6. Principio CQS (4:14)
9.7. Equilibrio entre optimización y legibilidad - Notación Big O (6:39)
10. La Kata Template Engine
10.1. Enunciado (1:54)
10.2. Happy Path (6:06)
10.3. Refactorizando a tipos propios (2:49)
10.4. Primeros Casos Edge (7:04)
10.5. Cubriendo los Nulos (4:46)
10.6. Refactor Final (2:47)
10.7 Repositorio con la solución
11. Diseño de Clases y Módulos
11.1. Clases (1:25)
11.2. Reducir el ámbito (3:55)
11.3. Constructores Simples (3:56)
11.4. Organización (1:33)
11.5. Constructores con Nombre (3:32)
11.6. Limitando la accesibilidad (5:24)
11.7. Ley de Demeter y Tell Dont Ask (4:31)
11.8. Evita los modelos anémicos (3:18)
11.9. Estáticos y Singleton (3:44)
11.10. Composición vs Herencia (3:14)
11.11. Tipos Específicos (4:23)
11.12. Value Objects y Entidades (3:26)
12. La Kata Rover de Marte
12.1. Enunciado (4:02)
12.2. Artefactos (2:33)
12.3. El Value Object Coordenadas (2:39)
12.4. Envolviendo el mundo (2:17)
12.5. Operaciones en el Value Object (5:02)
12.6. Navigator y Patrón State (5:18)
12.7. Resto de Estados (6:34)
12.8. El Rover (4:53)
12.9. Refactorizando el Rover (3:14)
12.10. Tests Parametrizados (5:53)
12.11. Repositorio con la Solución
13. Cohesión, Acoplamiento y SOLID
13.1 Introduccion (1:09)
13.2 Cohesión y Acoplamiento (2:35)
13.3. Connascence (1:42)
13.4 La importancia de la cohesión (1:12)
13.5. SRP - Principio de Responsabilidad Única (2:42)
13.6. SRP - Funciones Puras en Métodos Privados (2:22)
13.7. SRP - Evita la responsabilidad Compartida (1:35)
13.8. OCP - Principio Abierto Cerrado (3:03)
13.9. OCP - Encapsular las Dependencias (2:21)
13.10. LSP - Principio de Sustitución de Liskov (4:26)
13.11. LSP - Las 3 Reglas (4:29)
13.12. ISP - Principio de Segregación de la Intefaz (1:28)
13.13. ISP - Evita crear Interfaces para una sola implementación (2:51)
13.14. DIP - Principio de Inversión de la Dependencia (0:54)
13.15. DIP - Arquitectura Hexagonal (1:21)
13.16. DIP - Inyección de Dependencias (2:26)
13.17. DIP - Invirtiendo las Dependencias (2:41)
14. La Kata Markdown Transformer
14.1 Enunciado (2:25)
14.2. Lista de Ejemplos y primeros pasos (3:42)
14.3. Buscando los enlaces (4:14)
14.4. Añadiendo más tests auxiliares (2:55)
14.5. Almacenando los links en un diccionario (4:12)
14.6. Reemplazando los links en el texto (3:41)
14.7. Refactoring y Notas al Pie (4:36)
14.8. Juntando las piezas y eliminando los tests (4:23)
14.9 Repositorio con la Solución
15. Gestión y Prevención de Errores
15.1 Gestión y prevención de errores (1:16)
15.2 Evaluación de expresiones complejas (3:52)
15.3 Funciones de Primer Orden (5:55)
15.4 Asignación de valores (3:54)
15.5 Asignación de Referencias (4:53)
15.6 Tramos de concentración de Accidentes (0:51)
15.7 Gestión del Estado (2:37)
15.8 Expresiones booleanas combinadas (0:58)
15.9 Intervalos y Rangos (1:58)
15.10 Asincronía y Concurrencia (3:31)
15.11 Excepciones (2:18)
15.12 Excepciones en Consultas y Comandos (3:51)
15.13 El Patrón Notificación (2:35)
15.14 Captura de Excepciones (4:28)
15.15 No capturarla en ese nivel (1:02)
15.16 Capturarla, Abstraerla y Propagarla (2:29)
15.17 Capturarla, Registrarla y Propagarla (0:36)
15.18 El Bloque Finally (0:53)
16. Kata Final: Backend con Arquitectura Hexagonal
16.1. Enunciado y requisitos (2:13)
16.2. Planteamiento (2:30)
16.3. Tests de Integración (2:02)
16.4. El entorno (1:29)
16.5. El Dominio (3:34)
16.6. El Value Object Email (6:56)
16.7. El Value Object Password (7:11)
16.8. Acumulando los errores (3:31)
16.9. Password Hashing (5:36)
16.10. El identificador (7:33)
16.11. La Entidad Usuario (6:17)
16.12. El patrón Repositorio (13:30)
16.13. El Servicio de Aplicación (9:32)
16.14. La capa de Infraestructura (2:25)
16.15. El controlador con TDD (9:08)
16.16. Resto de casos del Controlador (6:09)
16.17. El servidor y los tests de integración (9:40)
16.18. Repositorio con la solución
15.3 Funciones de Primer Orden
Contenido de las clases bloqueado
Si ya estás inscrito,
tendrás que iniciar sesión
.
Inscríbete en el curso para desbloquearlo