Upgrade to Pro — share decks privately, control downloads, hide ads and more …

El otro TDD: Type Driven Development

El otro TDD: Type Driven Development

Los tipos son una gran ayuda a la hora de escribir programas con menos defectos, ya que el comprobador de tipos nos protege de muchos errores. Ahora veremos el Desarrollo Guiado por Tipos, donde llevamos los tipos al siguiente nivel y los usaremos para construir sistemas de una manera mucho más efectiva. Los sistemas resultantes serán más fáciles de entender, probar y extender.

Quito Lambda

March 28, 2018
Tweet

More Decks by Quito Lambda

Other Decks in Programming

Transcript

  1. Sistemas de Tipos - Conjunto de reglas que asignan una

    propiedad llamada “Tipo” a las construcciones del lenguaje - Estos tipos formalizan y obligan al cumplimiento de ciertas interacciones entre componentes del lenguaje - Su propósito es reducir la cantidad de errores en los programas
  2. Malos sistemas de Tipos Programas correctamente tipados Programas que funcionan

    Región de dolor abismal esperando que pase una tragedia
  3. IDRIS Es un lenguaje de programación funcional con tipos dependientes

    - Una tupla de enteros es un tipo - Una tupla de enteros donde el segundo entero es mayor que el primero es un tipo dependiente
  4. Type Driven Development Los tipos son lo primero. Tiene tres

    pasos - Type: Escribir el tipo para una función - Define: Crear una implementación (posiblemente incompleta) - Refine: Mejorar o completar la definición
  5. IDRIS - First class dependent types - Sintáxis inspirada en

    Haskell - Compilado - Con Type Classes (traits en Scala o interfaces super avanzadas) - Evaluado estrictamente
  6. Type Driven Development - Aprovecha las ventajas de los sistemas

    de tipos - No es un reemplazo para el Desarrollo dirigido por pruebas - Puede ser utilizado en lugares específicos para demostrar la correctitud del programa - Hay casos en los que se va a apreciar más su utilidad