SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

En vedette

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 tortolerocarmen26127
 
Presentacion drogas publicar
Presentacion drogas publicarPresentacion drogas publicar
Presentacion drogas publicarxxtairoxx
 
Tema Centro Del Saber
Tema Centro Del SaberTema Centro Del Saber
Tema Centro Del SaberRENEGIL
 
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 BertheratFelix Boiteux
 
Mes SéRie PréFéRait
Mes SéRie PréFéRaitMes SéRie PréFéRait
Mes SéRie PréFéRaitjamalz13
 
Antecedentes Del Teatro
Antecedentes Del TeatroAntecedentes Del Teatro
Antecedentes Del Teatroporto22
 
Livret vente 2013
Livret vente 2013Livret vente 2013
Livret vente 2013wizii
 
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 FamiliaresAmphora Beauty
 
La marseillaise
La marseillaiseLa marseillaise
La marseillaiseBartok79
 
DINAMICA DE COMO DUERMES
DINAMICA DE COMO DUERMESDINAMICA DE COMO DUERMES
DINAMICA DE COMO DUERMESTelmo Viteri
 
Loquenecesitaunamujer
LoquenecesitaunamujerLoquenecesitaunamujer
LoquenecesitaunamujerArmando Lopez
 
Chema Alonso Blind Sql Injection Taller
Chema Alonso Blind Sql Injection TallerChema Alonso Blind Sql Injection Taller
Chema Alonso Blind Sql Injection TallerCristian Borghello
 
port royal
port royalport royal
port royalisologia
 
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 ELANAgence Elan
 
Diaporama Humeur
Diaporama HumeurDiaporama Humeur
Diaporama Humeurlili3472
 
Grupo N°1 Idioma
Grupo N°1 IdiomaGrupo N°1 Idioma
Grupo N°1 Idiomaiabg
 

En vedette (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