NICOLÁS BOTTARINI
Volver a la ruta

El recorrido

Principios de diseño

368 páginas de lectura · 16 h 53 min de video

Un buen diseño es el que se puede cambiar fácil. Estos principios son las herramientas para lograrlo: código limpio, objetos que colaboran mandándose mensajes, bajo acoplamiento y alta cohesión. No se aprenden leyendo, se aprenden aplicándolos en cada kata y en cada refactor.

Temas

Etapa 1 · TDD y objetos
  • Clean Code

    Clean Code, Código malo, Deterioro del código, Big Ball of Mud, Naming, Boy Scout Rule, Teoría de las ventanas rotas, Funciones, Parámetros, Comentarios, Formato

  • Encapsulamiento

  • Ocultamiento de información

Etapa 2 · Principios de diseño
  • Tell, Don't Ask

    Tell, Don't Ask

  • Law of Demeter

    Principle of Least Knowledge

  • Las 4 reglas del diseño simple

  • Command Query Separation

  • Uniform Access Principle

  • YAGNI

  • DRY

    Don't Repeat Yourself, Duplicación incidental

  • Balanced Abstraction Principle

  • Law of Leaky Abstractions

  • Principle of Least Astonishment

    Principle of Least Surprise

  • SOLID

    Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, Dependency Inversion Principle, God Objects

  • Acoplamiento

    Niveles de acoplamiento

  • Cohesión

    Niveles de cohesión

  • Software Design Odors

    Rigidez, Fragilidad, Inmovilidad, Viscosidad, Complejidad innecesaria, Repetición innecesaria, Opacidad

  • Diseño por contrato

  • ETC

    Easier to Change Principle

  • Connascence

    de nombre y de tipo, de posición, de valor, de significado, de algoritmo, de orden de ejecución, de timing, de identidad, de tarea manual

  • Composición sobre herencia

Recursos

Katas para practicar

Bowling

Bowling

Calculá el puntaje de un partido de bowling

InicialCorta
Ver kata
Game of Life

Game of Life

Programá el famoso autómata celular de Conway usando TDD

BásicoMedia
Ver kata
Gilded Rose

Gilded Rose

Una kata famosa para arrancar tu camino en refactoring

BásicoMedia
Ver kata
Mars Rover

Mars Rover

Mové rovers por una meseta en Marte

BásicoLarga
Ver kata