SlideShare una empresa de Scribd logo
1 de 11
Auteur: Damien GOUYETTE
Si, si
Programmation
fonctionnelle en java
Date: 14 juin 2013
BreizhCamp, 14 juin 2013 - Damien GOUYETTE
BreizhCamp, 14 juin 2013 - Damien GOUYETTE
Programmation fonctionnelle en java
Développeur java/web > 10 ans
Indépendant depuis 2011 :-)
@CestPasDur
http://www.cestpasdur.com
Si, si
Auteur
PAGE: 1 de 6
Programmation fonctionnelle en java
Il n’y aura pas :
•Suite de fibonacci,
•Calcul de nombre premiers,
Mais des exemples mis en place qui en prod
Si, si
Spoiler :
BreizhCamp, 14 juin 2013 - Damien GOUYETTE
Programmation fonctionnelle en java
Après une première approche dans un langage dit
fonctionnel Scala
Comment mettre en place dans son projet Java 6 (le java
d’aujourd’hui ?
Si, si
BreizhCamp, 14 juin 2013 - Damien GOUYETTE
Programmation fonctionnelle en java
1.Découpage en fonctions facilement testables,
2.Code plus expressif,
3.Fonctions composables,
4.Adapté au multicoeur,
Si, si
Avantages :
BreizhCamp, 14 juin 2013 - Damien GOUYETTE
Programmation fonctionnelle en java
•Répétable
•Ne modifie pas l’extérieur,
•Facilement testable
•Composable.
Si, si
Fonction de premier ordre
BreizhCamp, 14 juin 2013 - Damien GOUYETTE
JsonHelper:22
JsonHelper: 34
JsonHelperTest:23
Programmation fonctionnelle en java
Retourne vrai ou faux, selon que l’expression contenue
est respectée, ou non.
Ex : RexgexPredicate retourne vrai s’il y a
correspondance à la regexp.
Si, si
Prédicats
BreizhCamp, 14 juin 2013 - Damien GOUYETTE
HomeMadeTalkService
TalkHelper
TalkHelperTest
FunctionalTalkService
Programmation fonctionnelle en java
Option : type polymorphique représentant
l’encapsulation d’une valeur optionnelle. Il est utilisé
en retour de méthode pour signifier que celle-ci
retourne ou non une valeur significative.
Deux valeurs sont possibles :
• None, absence de valeur,
• Some(valeur), présence de valeur
Si, si
Type Option
BreizhCamp, 14 juin 2013 - Damien GOUYETTE
TalkDao:24
TalkResource:32
Programmation fonctionnelle en java
Le type Either est l’encapsulation de l’appel à une
méthode pouvant échouer.
Deux valeurs sont possibles :
• Left(valeur), indique que le traitement a échoué,
• Right(valeur), indique que le traitement a réussi.
Si, si
Type Either
BreizhCamp, 14 juin 2013 - Damien GOUYETTE
TalkDao:24
TalkResource:32
BreizhCamp, 14 juin 2013 - Damien GOUYETTE
That’s all for today
Auteur: Damien GOUYETTE
Date: 14 juin 2012
Questions ?
Programmation fonctionnelle en java
Functional Programming Principles in Scala
Programmation fonctionnelle : utiliser le type Option
Programmation fonctionnelle : utiliser le type Either
Si, si
En savoir +
BreizhCamp, 14 juin 2013 - Damien GOUYETTE

Más contenido relacionado

Destacado

Tema Centro Del Saber
Tema Centro Del SaberTema Centro Del Saber
Tema Centro Del Saber
RENEGIL
 
Mes SéRie PréFéRait
Mes SéRie PréFéRaitMes SéRie PréFéRait
Mes SéRie PréFéRait
jamalz13
 
Antecedentes Del Teatro
Antecedentes Del TeatroAntecedentes Del Teatro
Antecedentes Del Teatro
porto22
 
Livret vente 2013
Livret vente 2013Livret vente 2013
Livret vente 2013
wizii
 
DINAMICA DE COMO DUERMES
DINAMICA DE COMO DUERMESDINAMICA DE COMO DUERMES
DINAMICA DE COMO DUERMES
Telmo Viteri
 
Loquenecesitaunamujer
LoquenecesitaunamujerLoquenecesitaunamujer
Loquenecesitaunamujer
Armando Lopez
 
port royal
port royalport royal
port royal
isologia
 
Diaporama Humeur
Diaporama HumeurDiaporama Humeur
Diaporama Humeur
lili3472
 
Grupo N°1 Idioma
Grupo N°1 IdiomaGrupo N°1 Idioma
Grupo N°1 Idioma
iabg
 

Destacado (20)

Aplicabilidad de la prospectiva por carmen tortolero
Aplicabilidad de la prospectiva por  carmen tortoleroAplicabilidad de la prospectiva por  carmen tortolero
Aplicabilidad de la prospectiva por carmen tortolero
 
Presentacion drogas publicar
Presentacion drogas publicarPresentacion drogas publicar
Presentacion drogas publicar
 
Tema Centro Del Saber
Tema Centro Del SaberTema Centro Del Saber
Tema Centro Del Saber
 
Hacerel Amor
Hacerel AmorHacerel Amor
Hacerel Amor
 
Dossier de presse - Nightingale, court métrage d'Emile Bertherat
Dossier de presse - Nightingale, court métrage d'Emile BertheratDossier de presse - Nightingale, court métrage d'Emile Bertherat
Dossier de presse - Nightingale, court métrage d'Emile Bertherat
 
Mes SéRie PréFéRait
Mes SéRie PréFéRaitMes SéRie PréFéRait
Mes SéRie PréFéRait
 
Antecedentes Del Teatro
Antecedentes Del TeatroAntecedentes Del Teatro
Antecedentes Del Teatro
 
Livret vente 2013
Livret vente 2013Livret vente 2013
Livret vente 2013
 
El Genio
El GenioEl Genio
El Genio
 
Amphora - Charla: Importancia de la Comunicación en las Relaciones Familiares
Amphora - Charla: Importancia de la Comunicación en las Relaciones FamiliaresAmphora - Charla: Importancia de la Comunicación en las Relaciones Familiares
Amphora - Charla: Importancia de la Comunicación en las Relaciones Familiares
 
Tema X
Tema XTema X
Tema X
 
La marseillaise
La marseillaiseLa marseillaise
La marseillaise
 
Mafalda[2]
Mafalda[2]Mafalda[2]
Mafalda[2]
 
DINAMICA DE COMO DUERMES
DINAMICA DE COMO DUERMESDINAMICA DE COMO DUERMES
DINAMICA DE COMO DUERMES
 
Loquenecesitaunamujer
LoquenecesitaunamujerLoquenecesitaunamujer
Loquenecesitaunamujer
 
Chema Alonso Blind Sql Injection Taller
Chema Alonso Blind Sql Injection TallerChema Alonso Blind Sql Injection Taller
Chema Alonso Blind Sql Injection Taller
 
port royal
port royalport royal
port royal
 
What's up Digital #12 - by ELAN
What's up Digital #12 - by ELANWhat's up Digital #12 - by ELAN
What's up Digital #12 - by ELAN
 
Diaporama Humeur
Diaporama HumeurDiaporama Humeur
Diaporama Humeur
 
Grupo N°1 Idioma
Grupo N°1 IdiomaGrupo N°1 Idioma
Grupo N°1 Idioma
 

BreizhCamp 2013, programmation fonctionnelle en java, si , si...

  • 1. Auteur: Damien GOUYETTE Si, si Programmation fonctionnelle en java Date: 14 juin 2013 BreizhCamp, 14 juin 2013 - Damien GOUYETTE
  • 2. BreizhCamp, 14 juin 2013 - Damien GOUYETTE Programmation fonctionnelle en java Développeur java/web > 10 ans Indépendant depuis 2011 :-) @CestPasDur http://www.cestpasdur.com Si, si Auteur
  • 3. PAGE: 1 de 6 Programmation fonctionnelle en java Il n’y aura pas : •Suite de fibonacci, •Calcul de nombre premiers, Mais des exemples mis en place qui en prod Si, si Spoiler : BreizhCamp, 14 juin 2013 - Damien GOUYETTE
  • 4. Programmation fonctionnelle en java Après une première approche dans un langage dit fonctionnel Scala Comment mettre en place dans son projet Java 6 (le java d’aujourd’hui ? Si, si BreizhCamp, 14 juin 2013 - Damien GOUYETTE
  • 5. Programmation fonctionnelle en java 1.Découpage en fonctions facilement testables, 2.Code plus expressif, 3.Fonctions composables, 4.Adapté au multicoeur, Si, si Avantages : BreizhCamp, 14 juin 2013 - Damien GOUYETTE
  • 6. Programmation fonctionnelle en java •Répétable •Ne modifie pas l’extérieur, •Facilement testable •Composable. Si, si Fonction de premier ordre BreizhCamp, 14 juin 2013 - Damien GOUYETTE JsonHelper:22 JsonHelper: 34 JsonHelperTest:23
  • 7. Programmation fonctionnelle en java Retourne vrai ou faux, selon que l’expression contenue est respectée, ou non. Ex : RexgexPredicate retourne vrai s’il y a correspondance à la regexp. Si, si Prédicats BreizhCamp, 14 juin 2013 - Damien GOUYETTE HomeMadeTalkService TalkHelper TalkHelperTest FunctionalTalkService
  • 8. Programmation fonctionnelle en java Option : type polymorphique représentant l’encapsulation d’une valeur optionnelle. Il est utilisé en retour de méthode pour signifier que celle-ci retourne ou non une valeur significative. Deux valeurs sont possibles : • None, absence de valeur, • Some(valeur), présence de valeur Si, si Type Option BreizhCamp, 14 juin 2013 - Damien GOUYETTE TalkDao:24 TalkResource:32
  • 9. Programmation fonctionnelle en java Le type Either est l’encapsulation de l’appel à une méthode pouvant échouer. Deux valeurs sont possibles : • Left(valeur), indique que le traitement a échoué, • Right(valeur), indique que le traitement a réussi. Si, si Type Either BreizhCamp, 14 juin 2013 - Damien GOUYETTE TalkDao:24 TalkResource:32
  • 10. BreizhCamp, 14 juin 2013 - Damien GOUYETTE That’s all for today Auteur: Damien GOUYETTE Date: 14 juin 2012 Questions ?
  • 11. Programmation fonctionnelle en java Functional Programming Principles in Scala Programmation fonctionnelle : utiliser le type Option Programmation fonctionnelle : utiliser le type Either Si, si En savoir + BreizhCamp, 14 juin 2013 - Damien GOUYETTE