36
Introduction à Play Framework 2 Samy Dindane www.dinduks.com @dinduks Be-Zend 2013 - Saint-Quentin

Introduction à Play Framework 2

Embed Size (px)

DESCRIPTION

Une conférence donnée au Be-Zend 2013 visant à présenter Play! 2 ainsi que Scala.

Citation preview

Page 1: Introduction à Play Framework 2

Introduction àPlay Framework 2

Samy Dindanewww.dinduks.com

@dinduks

Be-Zend 2013 - Saint-Quentin

Page 2: Introduction à Play Framework 2

Au menu

● Introduction Scala

● Play! et ses fonctionnalités

● Démo

Page 3: Introduction à Play Framework 2
Page 4: Introduction à Play Framework 2

● Langage orienté objet et fonctionnel

● Lancé en 2003

● Créé par Martin Odersky

● Utilisé par Twitter, Foursquare, Nasa

Page 5: Introduction à Play Framework 2

Programmation fonctionnelle

Principes de la programmation orientée-objet

Profiter de ce qu'offre la FPtout en ayant une base de code robuste, structurée et maintenable

Page 6: Introduction à Play Framework 2

Utilisation des fonctions

Même chose en Java :

Page 7: Introduction à Play Framework 2

Futures

● Conteneur d'un résultat qui n'existe pas encore

● Permettent de faire des opérations○ Parallèles○ Non bloquantes

Page 8: Introduction à Play Framework 2

Exemple

Page 9: Introduction à Play Framework 2

Pattern Matching

Page 10: Introduction à Play Framework 2

OptionConteneur de valeurs optionnelles

Page 11: Introduction à Play Framework 2

Exemple

Page 12: Introduction à Play Framework 2

Typage● Scala est statiquement typé

● Les types sont vérifiés par le compilateur

○ Plus de sécurité

○ Maintenance plus rapide et efficace

○ Pas besoin de tests unitaires pour tester les types

Page 13: Introduction à Play Framework 2

Java

Scala

Page 14: Introduction à Play Framework 2

Inférence de types

Page 15: Introduction à Play Framework 2

Traits

● Équivalent aux Interfaces de Java

● Possibilité d'en implémenter une partie

Page 16: Introduction à Play Framework 2

Actors● Processus concurrents

● Communiquent en échangeant des messages

● Jobs asynchrones

Page 17: Introduction à Play Framework 2

Interopérable avec JavaPeut utiliser les libs Java

Peut parler avec les classes Java

Adoption incrémentielle

Page 18: Introduction à Play Framework 2
Page 19: Introduction à Play Framework 2

● Écrit en Java et en scala

● Répond aux problématiques du Web moderne

● Scalable

● Simple et productif

Page 20: Introduction à Play Framework 2

Full stack

● Tous les composants nécessaires pour faire du dév. Web

○ Streams, WebSockets, cache, SQL, JSON/XML, formulaires,

validation, routing

○ S'intègre avec des technos client (LESS, JS, CoffeeScript)

○ (Vrai) serveur Web intégré

Page 21: Introduction à Play Framework 2

Productivité

● Accessible

● Rechargement à chaud (code, templates, config)

● Compilation et exécution des tests automatiques

● Support des IDE

Page 22: Introduction à Play Framework 2
Page 23: Introduction à Play Framework 2
Page 24: Introduction à Play Framework 2
Page 25: Introduction à Play Framework 2

Stateless et respecte HTTP

● Ne stocke pas d'état côté serveur

● Ne cache pas HTTP et l'expose

Page 26: Introduction à Play Framework 2

Support natif deJava et Scala

API propre et maintenue à chaque langage

Page 27: Introduction à Play Framework 2

Type-safety

● Empêche les erreurs de compilation sur les

○ Classes

○ Templates

○ Routes

Page 28: Introduction à Play Framework 2

Réactif

● Programmation asynchrone

● Parallélisme

● I/O non-bloquantes

● Consommer des données en streaming

Page 29: Introduction à Play Framework 2

Exemple de Futures dans Play

Page 30: Introduction à Play Framework 2

Exemple de Futures dans Play

Page 31: Introduction à Play Framework 2

Tranformer une Future en résultat

Page 32: Introduction à Play Framework 2

Exemple plus concret

Page 33: Introduction à Play Framework 2

Iteratee IO

● Propose une API pour manipuler des streams

● Permet d'avoir le contrôle sur ces flux

● Composable

● API non bloquante, réactive et performante

Page 34: Introduction à Play Framework 2

Iteratee IO

Enumerator Iteratee

● Chunk● EOF

● Cont● Done● Error

Page 35: Introduction à Play Framework 2

DémoUne démo vaut mille slides

Page 36: Introduction à Play Framework 2

Questions ?