implementando un api restfiles.meetup.com/12646812/introduccion-a-clojure.pdf · introducción a...
TRANSCRIPT
![Page 1: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/1.jpg)
Introducción a ClojureImplementando un API REST
![Page 2: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/2.jpg)
Agenda
1. ¿Qué es Clojure?2. Conceptos básicos3. ¿Por qué aprender Clojure?4. ¿Qué necesito para programar?5. Sintaxis del lenguaje6. API REST en Clojure7. Parte final8. Fuentes
![Page 3: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/3.jpg)
Agenda
1. ¿Qué es Clojure?2. Conceptos básicos3. ¿Por qué aprender Clojure?4. ¿Qué necesito para programar?5. Sintaxis del lenguaje6. API REST en Clojure7. Parte final8. Fuentes
![Page 4: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/4.jpg)
1. ¿Qué es Clojure?
Piet Mondrian
Composition II in Red, Blue, and Yellow
1930
![Page 5: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/5.jpg)
1. ¿Qué es Clojure?
Rich Hickey
Clojure programming language
2007
![Page 6: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/6.jpg)
1. ¿Qué es Clojure?
1. Lenguaje de programación
![Page 7: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/7.jpg)
1. ¿Qué es Clojure?
1. Lenguaje de programación
![Page 8: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/8.jpg)
1. ¿Qué es Clojure?
1. Lenguaje de programación
Permite side effects (acceso a la base de datos, consumo de servicios externos, etc.)Idealmente se debe programar sin side effects.
Ejemplo función impura.
![Page 9: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/9.jpg)
1. ¿Qué es Clojure?
1. Lenguaje de programación
Ejemplo función pura.
![Page 10: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/10.jpg)
Agenda
1. ¿Qué es Clojure?2. Conceptos básicos3. ¿Por qué aprender Clojure?4. ¿Qué necesito para programar?5. Sintaxis del lenguaje6. API REST en Clojure7. Parte final8. Fuentes
![Page 11: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/11.jpg)
2. Conceptos básicos
1. Paradigma programación funcional
2. Concepto: Code as data
3. Programación concurrente
![Page 12: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/12.jpg)
2. Conceptos básicos
Paradigma programación funcional1. Estructuras de datos inmutables.
![Page 13: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/13.jpg)
2. Conceptos básicos
Paradigma programación funcional
2. Funciones como “First-class citizens”.
(map inc [1 2 3 4 5])
-> (2 3 4 5 6)
![Page 14: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/14.jpg)
2. Conceptos básicos
Code as data
![Page 15: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/15.jpg)
2. Conceptos básicos
Programación concurrente
![Page 16: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/16.jpg)
2. Conceptos básicos
Programación concurrente
3. Refs (STM)
4. Futures
5. Promises
![Page 17: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/17.jpg)
2. Conceptos básicos (Resumen)
● Estructuras de datos inmutables. (Se pueden compartir entre threads).
● Funciones como elementos de primer orden.
● “Construcciones” propias del lenguaje para el manejo de concurrencia.
![Page 18: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/18.jpg)
Agenda
1. ¿Qué es Clojure?2. Conceptos básicos3. ¿Por qué aprender Clojure?4. ¿Qué necesito para programar?5. Sintaxis del lenguaje6. API REST en Clojure7. Parte final8. Fuentes
![Page 19: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/19.jpg)
3. ¿Por qué aprender Clojure?
“A language that doesn't affect the way you think about programming, is not worth knowing.”
Alan Perlis.
![Page 20: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/20.jpg)
3. ¿Por qué aprender Clojure?
![Page 21: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/21.jpg)
3. ¿Por qué aprender Clojure?
![Page 22: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/22.jpg)
3. ¿Por qué aprender Clojure?
![Page 23: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/23.jpg)
3. ¿Por qué aprender Clojure?
Piet Mondrian
Composition II in Red, Blue, and Yellow
1930
Minimalismo
![Page 24: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/24.jpg)
3. ¿Por qué aprender Clojure?
Clojure es un lenguaje minimalista
Sintaxis: simple limitada consistente
![Page 25: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/25.jpg)
Agenda
1. ¿Qué es Clojure?2. Conceptos básicos3. ¿Por qué aprender Clojure?4. ¿Qué necesito para programar?5. Sintaxis del lenguaje6. API REST en Clojure7. Parte final8. Fuentes
![Page 26: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/26.jpg)
4. ¿Qué necesito para programar?
![Page 27: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/27.jpg)
4. ¿Qué necesito para programar?
Leiningen
Herramienta de automatización de proyectos escritos en Clojure.
![Page 28: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/28.jpg)
Agenda
1. ¿Qué es Clojure?2. Conceptos básicos3. ¿Por qué aprender Clojure?4. ¿Qué necesito para programar?5. Sintaxis del lenguaje6. API REST en Clojure7. Parte final8. Fuentes
![Page 29: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/29.jpg)
5. Sintaxis del lenguaje
¿Este es el lenguaje con muchos paréntesis?
LISP: LISt Processing
![Page 30: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/30.jpg)
5. Sintaxis del lenguaje
1. Expresiones S: “Code as data”
2. Prefix notation
(+ 1 2) (+ 1 2 3 4 5)
-> 3 -> 15
![Page 31: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/31.jpg)
5. Sintaxis del lenguaje
3. Packages Namespaces
(ns bog.jvm.meetup)
¿Cómo declaro una clase?
¿Cómo declaro una variable?
¿Cómo declaro un método?
![Page 32: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/32.jpg)
5. Sintaxis del lenguaje
4. Clases Estructuras de datos
mapas {:key value}
(assoc {} :key1 “value1” :key2 “value2”)
-> {:key1 “value1” :key2 “value2”}
![Page 33: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/33.jpg)
5. Sintaxis del lenguaje
4. Clases Estructuras de datos
a. deftype
b. defrecord
c. reify
![Page 34: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/34.jpg)
5. Sintaxis del lenguaje
4. Estructuras de datos
clojure.core
● nil● Char● Numbers● String
![Page 35: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/35.jpg)
5. Sintaxis del lenguaje
4. Estructuras de datos
clojure.core
● Set● List● Vector● Map
![Page 36: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/36.jpg)
5. Sintaxis del lenguaje
5. Variables Valores inmutables
(def nombre-valor valor)
(def hello-world “Hello world”)
hello-world
-> Hello world
![Page 37: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/37.jpg)
5. Sintaxis del lenguaje
5. Valores inmutables
(def basic-map {})
(def hello-world “Hello world”)
(assoc basic-map :message hello-world)
-> {:message “Hello world”}
![Page 38: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/38.jpg)
5. Sintaxis del lenguaje
6. Métodos Funciones
a. Declarar una función:
(defn nombre-funcion “documentacion”
[lista-de-parametros] cuerpo-funcion)
![Page 39: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/39.jpg)
5. Sintaxis del lenguaje
6. Funciones
b. Llamar una función:
(nombre-funcion lista-de-parametros)
![Page 40: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/40.jpg)
5. Sintaxis del lenguaje
6. Funciones
![Page 41: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/41.jpg)
5. Sintaxis del lenguaje
6. Funciones
Arity overloading
Parámetros opcionales
![Page 42: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/42.jpg)
5. Sintaxis del lenguaje
Code as data (extra)
![Page 43: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/43.jpg)
Agenda
1. ¿Qué es Clojure?2. Conceptos básicos3. ¿Por qué aprender Clojure?4. ¿Qué necesito para programar?5. Sintaxis del lenguaje6. API REST en Clojure7. Parte final8. Fuentes
![Page 44: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/44.jpg)
6. API REST en Clojure
1. REST
El ejemplo es REST nivel 2
![Page 45: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/45.jpg)
6. API REST en Clojure
2. Aplicación
Directorio de servicios
![Page 46: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/46.jpg)
6. API REST en Clojure
2. Aplicación
HTTP request
HTTP response
Front-end Back-end
![Page 47: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/47.jpg)
6. API REST en Clojure
3. Estructura del código back-end
Servicios
Estructuras de datos
Persistencia
Infra
estru
ctur
a
![Page 48: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/48.jpg)
6. API REST en Clojure
4. Pruebas e integración continua
Midje &Midje &
![Page 49: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/49.jpg)
6. API REST en Clojure
5. Nombramiento de archivos
Mejores prácticas de Clojure:a. minusculasb. palabras separadas por -
ej: horario-api.clj, citas-api.clj
![Page 50: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/50.jpg)
6. API REST en Clojure
5. Nombramiento de archivos
horario-api.clj-> horario_api.clj
Interoperabilidad con Java
![Page 51: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/51.jpg)
Agenda
1. ¿Qué es Clojure?2. Conceptos básicos3. ¿Por qué aprender Clojure?4. ¿Qué necesito para programar?5. Sintaxis del lenguaje6. API REST en Clojure7. Parte final8. Fuentes
![Page 52: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/52.jpg)
7. Parte final
![Page 53: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/53.jpg)
7. Parte final
Recursos
1. Code:https://github.com/julianespinel/directory
2. Slides: https://speakerdeck.com/julianespinel
![Page 54: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/54.jpg)
7. Parte final
![Page 55: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/55.jpg)
Agenda
1. ¿Qué es Clojure?2. Conceptos básicos3. ¿Por qué aprender Clojure?4. ¿Qué necesito para programar?5. Sintaxis del lenguaje6. API REST en Clojure7. Parte final8. Fuentes
![Page 56: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/56.jpg)
8. Fuentes1. http://clojure.org2. http://clojure-doc.org3. http://clojuredocs.org/4. http://coding.smashingmagazine.com/2013/04/18/introduction-to-programming-type-systems5. http://blogs.perl.org/users/ovid/2010/08/what-to-know-before-debating-type-systems.html6. http://www.lispcast.com/static-vs-dynamic-typing7. http://gigasquidsoftware.com/blog/2014/02/01/hitchhikers-guide-to-clojure/8. http://christophermaier.name/blog/2011/07/07/writing-elegant-clojure-code-using-higher-order-
functions9. http://blakesmith.me/2012/05/25/understanding-clojure-concurrency-part-2.html
10. http://www.cs.yale.edu/quotes.html11. http://en.wikipedia.org/wiki/Piet_Mondrian12. http://clojure.org/rationale
![Page 57: Implementando un API RESTfiles.meetup.com/12646812/introduccion-a-clojure.pdf · Introducción a Clojure Implementando un API REST. Agenda 1. ¿Qué es Clojure? 2. Conceptos básicos](https://reader034.vdocuments.net/reader034/viewer/2022042622/5f842a730da338321e76f2c1/html5/thumbnails/57.jpg)
8. Fuentes13. http://tech.puredanger.com/2010/02/09/clojure-4-private-functions/14. http://clojure.org/functional_programming15. http://clojure.org/cheatsheet16. http://martinfowler.com/articles/richardsonMaturityModel.html17. http://stackoverflow.com/questions/4420944/why-does-clojure-convert-dashes-in-names-to-
underscores-in-the-filesystem