soft-shake.ch - La Tequila du développement Web

Preview:

DESCRIPTION

Nicolas Martignole Votre application Java utilise une base de données, vous travaillez sur un projet de plusieurs mois, la dernière fois que vous avez essayé de coder une page cela vous a demandé 2 jours... Vous voulez tester un nouveau cocktail détonant pour le développement Web ? Venez découvrir Play! Framework, un framework Java open-source qui permet de travailler efficacement et qui partage beaucoup de ses valeurs avec la nouvelle philosophie de Java EE 6.

Citation preview

Nicolas Martignole

2010

J2

La Tequila du développement Web

Agilité iPhone Java Incubateur

8:15 Accueil des participantsAccueil des participantsAccueil des participantsAccueil des participants

8:40 Mot des organisateurs & Criée des orateursMot des organisateurs & Criée des orateursMot des organisateurs & Criée des orateursMot des organisateurs & Criée des orateurs

9:00 Keynote de Nicolas Martignole (30 minutes)Keynote de Nicolas Martignole (30 minutes)Keynote de Nicolas Martignole (30 minutes)Keynote de Nicolas Martignole (30 minutes)

9:40

10:40

- A1 -Le terrain Agile

Jean-Philippe Vigniel

- I1-Hello iPhone

Stephane Tavera

- J1 -NOSQL also means RDF stores: an

Android case studyFabrizio Giudci

- X1 -Le développement durable

Dominic Williams

11:00

12:00

- A2 -Integration of User Centered Design

in Agile Development of RIAJ. Borkenhagen, J. Desmazières

- I2 -Développement d'une application

iPhone pilotée par les testsEmmanuel Etasse, Van-Charles Tran

- J2 -La Tequila du développement Web

Nicolas Martignole

- X2 -Cloud Computing: anatomie et

pratiqueMarc-Elian Bégin

12:20

13:20

- A3 -Adoption de l'Agilité par les usages

Xavier Warzee

- I3 -Distribution d'applications iPhone

en Entreprise: Réalisation d'un AppStore interne

Géraud de Laval

- J3 -Vaadin - Rich Web Applications in

Server-side Java without Plug-ins or JavaScript

Joonas Lehtinen

- X3 -Les DVCS sont vos amis

Sébastien Douche

Pause repas (50 minutes)Pause repas (50 minutes)Pause repas (50 minutes)Pause repas (50 minutes)

14h10 Keynote de Regis Medina (30 minutes)Keynote de Regis Medina (30 minutes)Keynote de Regis Medina (30 minutes)Keynote de Regis Medina (30 minutes)

14h50

15h50

- A4 - Scrum, introduction et mise en

oeuvre avec iceScrumClaude Aubry

- I4 -Agile iOS Development

Jérôme Layat, Alexander Osterwalder

- J4 -JAX-RS and Java EE 6

Paul Sandoz

- X4 -IT Design & Ergonomy

Pascal Petit, Aude Lussigny

16h10

17h10

- A5 -Agilité : 10 ans déjà

Thierry Cros

- I5 -Optimizing iOS applications

Marc-Antoine Scheurer

- J5 -Ecrivez et automatisez vos tests

fonctionnels avec jBehaveXavier Bourguignon

- X5 -NoSQL : Enfin de la biodiversité

dans l'écosystème des BDOlivier Mallassi

17h30

18h30

- A6 -Lean engineering

Jean-Christophe Dubail

- I6 -iPhone et Agile, l'amour vache

Guillaume Duquesnay

- J6 -Let's make this test suite run faster

David Gageot

- X6 -The feel of Scala

Mario Fusco

Mot de la fin & tombolaMot de la fin & tombolaMot de la fin & tombolaMot de la fin & tombola

Programme de la Conférence

www.soft-shake.ch

La Téquila du développement WebNicolas Martignole

Play! Framework

dimanche 24 octobre 2010

• Nicolas Martignole @nmartignole

• Freelance / Technical Team Leader

• Blog Le Touilleur Express

• Fondateur du site eXpress-Board.fr

Speaker

dimanche 24 octobre 2010

What you will learn

dimanche 24 octobre 2010

What you will learn• Play! Framework is an open-source Web

Framework written in Java launched in 2008

dimanche 24 octobre 2010

What you will learn• Play! Framework is an open-source Web

Framework written in Java launched in 2008

• Stateless server-side architecture

dimanche 24 octobre 2010

What you will learn• Play! Framework is an open-source Web

Framework written in Java launched in 2008

• Stateless server-side architecture

• Not based on Java Servlet API

dimanche 24 octobre 2010

What you will learn• Play! Framework is an open-source Web

Framework written in Java launched in 2008

• Stateless server-side architecture

• Not based on Java Servlet API

• No client-side technology

dimanche 24 octobre 2010

What you will learn• Play! Framework is an open-source Web

Framework written in Java launched in 2008

• Stateless server-side architecture

• Not based on Java Servlet API

• No client-side technology

• A full-stack framework : from compilation to deployment

dimanche 24 octobre 2010

What you will learn• Play! Framework is an open-source Web

Framework written in Java launched in 2008

• Stateless server-side architecture

• Not based on Java Servlet API

• No client-side technology

• A full-stack framework : from compilation to deployment

• Close to Rails but based on Java

dimanche 24 octobre 2010

What you will learn• Play! Framework is an open-source Web

Framework written in Java launched in 2008

• Stateless server-side architecture

• Not based on Java Servlet API

• No client-side technology

• A full-stack framework : from compilation to deployment

• Close to Rails but based on Java

• and it’s fun (really)

dimanche 24 octobre 2010

What you will learn

• Play! Framework is an open-source Web Framework written in Java launched in 2008

• Stateless server-side architecture

• Not based on Java Servlet API

• No client-side technology

• A full-stack framework : from compilation to deployment

• Close to Rails but based on Java

• and it’s fun (really)

dimanche 24 octobre 2010

Demo ?dimanche 24 octobre 2010

A Web Framework not based on Servlet API

dimanche 24 octobre 2010

A Web Framework not based on Servlet API

dimanche 24 octobre 2010

A Web Framework not based on Servlet API

dimanche 24 octobre 2010

A Web Framework not based on Servlet API

dimanche 24 octobre 2010

http://www.flickr.com/photos/julia_manzerova/932055526/

Values and background

dimanche 24 octobre 2010

➡ Simple, efficient

http://www.flickr.com/photos/julia_manzerova/932055526/

Values and background

dimanche 24 octobre 2010

➡ Simple, efficient➡ P lay ! i s a fu l l s t ack

framework

http://www.flickr.com/photos/julia_manzerova/932055526/

Values and background

dimanche 24 octobre 2010

➡ Simple, efficient➡ P lay ! i s a fu l l s t ack

framework➡ Shared philosophy from

Rails, Django

http://www.flickr.com/photos/julia_manzerova/932055526/

Values and background

dimanche 24 octobre 2010

➡ Simple, efficient➡ P lay ! i s a fu l l s t ack

framework➡ Shared philosophy from

Rails, Django➡ A Web framework (not a

java framework)

http://www.flickr.com/photos/julia_manzerova/932055526/

Values and background

dimanche 24 octobre 2010

Much of the Java Complexity is cultural

and not imposed

dimanche 24 octobre 2010

Why no Servlet API ?

dimanche 24 octobre 2010

Why no Servlet API ?

dimanche 24 octobre 2010

Why no Servlet API ?

dimanche 24 octobre 2010

http://www.flickr.com/photos/ikhlasulamal/4971821734/lightbox/

dimanche 24 octobre 2010

Servlet API

Threads Pools

Session

Session

DB

Client 1

Client 2

YOU

A set of sessions

Session

dimanche 24 octobre 2010

Servlet API

Threads Pools

Session

Session

DB

Client 1

Client 2

YOU

A set of sessions

Session

dimanche 24 octobre 2010

Servlet API

Threads Pools

Session

Session

DB

Client 1

Client 2

YOU

A set of sessions

Session

dimanche 24 octobre 2010

Servlet API

Threads Pools

Session

Session

DB

Client 1

Client 2

YOU

A set of sessions

Session

dimanche 24 octobre 2010

http://www.flickr.com/photos/pierofix/3094329703/sizes/z/in/photostream/

dimanche 24 octobre 2010

Careful, the beverage you’re about to enjoy is extremely hot

dimanche 24 octobre 2010

http://www.flickr.com/photos/dominik/3281953536/sizes/l/in/photostream/

dimanche 24 octobre 2010

DB

• One Thread to take your order very quickly

• A fixed pool of Worker to process it

• A last Thread to deliver the response

Fixed pool of workers

Play! Framework

dimanche 24 octobre 2010

DB

• One Thread to take your order very quickly

• A fixed pool of Worker to process it

• A last Thread to deliver the response

Fixed pool of workers

Play! Framework

dimanche 24 octobre 2010

DB

• One Thread to take your order very quickly

• A fixed pool of Worker to process it

• A last Thread to deliver the response

Fixed pool of workers

Play! Framework

dimanche 24 octobre 2010

DB

• One Thread to take your order very quickly

• A fixed pool of Worker to process it

• A last Thread to deliver the response

Fixed pool of workers

Play! Framework

dimanche 24 octobre 2010

DB

• One Thread to take your order very quickly

• A fixed pool of Worker to process it

• A last Thread to deliver the response

Fixed pool of workers

Play! Framework

dimanche 24 octobre 2010

DB

• One Thread to take your order very quickly

• A fixed pool of Worker to process it

• A last Thread to deliver the response

Fixed pool of workers

Play! Framework

dimanche 24 octobre 2010

DB

• One Thread to take your order very quickly

• A fixed pool of Worker to process it

• A last Thread to deliver the response

Fixed pool of workers

Play! Framework

dimanche 24 octobre 2010

DB

• One Thread to take your order very quickly

• A fixed pool of Worker to process it

• A last Thread to deliver the response

Fixed pool of workers

Play! Framework

dimanche 24 octobre 2010

Disclaimer :A bit of FUDFear,uncertainty and doubt

dimanche 24 octobre 2010

http://www.flickr.com/photos/esparta/482348262/sizes/o/in/photostream/

dimanche 24 octobre 2010

• http://www.myapp.com/cont/servlet/buyService?sessionId=3gh3haaa2gg2&action=nextPage&idExpanse=false&flow=3C&event=s1e1&entityId=23bS&role=p&date=04%2F12%F2010&returnPage=homeS02&out=true

URL

dimanche 24 octobre 2010

• http://www.myapp.com/cont/servlet/buyService?sessionId=3gh3haaa2gg2&action=nextPage&idExpanse=false&flow=3C&event=s1e1&entityId=23bS&role=p&date=04%2F12%F2010&returnPage=homeS02&out=true

Is that web ?

URL

dimanche 24 octobre 2010

• http://www.express-board.fr/user/sfeir/27

• http://www.express-board.fr/user/objectif-informatique/53

- You can read it- You can boomark it-You can share it

URL with Play!

dimanche 24 octobre 2010

Play! is a web framework

dimanche 24 octobre 2010

The application can be RESTful.

Play! is a web framework

dimanche 24 octobre 2010

The application can be RESTful.URL are important.

Play! is a web framework

dimanche 24 octobre 2010

The application can be RESTful.URL are important.Fully realize the meaning of HTTP as a protocol not just a transport protocol layer.

Play! is a web framework

dimanche 24 octobre 2010

The application can be RESTful.URL are important.Fully realize the meaning of HTTP as a protocol not just a transport protocol layer.Take care of side effects & idempotence

Play! is a web framework

dimanche 24 octobre 2010

The application can be RESTful.URL are important.Fully realize the meaning of HTTP as a protocol not just a transport protocol layer.Take care of side effects & idempotenceThe navigator holds the session

Play! is a web framework

dimanche 24 octobre 2010

http://www.flickr.com/photos/paperpariah/2807820145/sizes/o/in/photostream/

Play! is a server-side stateless framework

dimanche 24 octobre 2010

Application

Play! Framework ServerWeb Browser

Play! Framework Server 2

Application

DB State

Crypted signed cookie

Where is the session ?

dimanche 24 octobre 2010

Application

Play! Framework ServerWeb Browser

Play! Framework Server 2

Application

DB State

Crypted signed cookie

Where is the session ?

dimanche 24 octobre 2010

Application

Play! Framework ServerWeb Browser

Play! Framework Server 2

Application

DB State

Crypted signed cookie

Where is the session ?

dimanche 24 octobre 2010

Application

Play! Framework ServerWeb Browser

Play! Framework Server 2

Application

DB State

Crypted signed cookie

Where is the session ?

dimanche 24 octobre 2010

Application

Play! Framework ServerWeb Browser

Play! Framework Server 2

Application

DB State

Crypted signed cookie

Where is the session ?

dimanche 24 octobre 2010

Application

Play! Framework ServerWeb Browser

Play! Framework Server 2

Application

DB State

Crypted signed cookie

Where is the session ?

dimanche 24 octobre 2010

http://www.flickr.com/photos/onegoodbumblebee/1444006597/sizes/o/in/photostream/

Not a client-side web framework

jQuery ext-JSGWT

dimanche 24 octobre 2010

http://www.flickr.com/photos/ajc1/4663140532/sizes/o/in/photostream/

Play! is a full stack framework

dimanche 24 octobre 2010

Copyright(c) mipan - Fotolia.com

Full stack ?

dimanche 24 octobre 2010

• In dev mode, it compiles your java code (no need for Maven nor Ant)

Copyright(c) mipan - Fotolia.com

Full stack ?

dimanche 24 octobre 2010

• In dev mode, it compiles your java code (no need for Maven nor Ant)

• Embedded Server based on Apache Mina or JBoss Netty

Copyright(c) mipan - Fotolia.com

Full stack ?

dimanche 24 octobre 2010

• In dev mode, it compiles your java code (no need for Maven nor Ant)

• Embedded Server based on Apache Mina or JBoss Netty

• Deployment as a WAR

Copyright(c) mipan - Fotolia.com

Full stack ?

dimanche 24 octobre 2010

• In dev mode, it compiles your java code (no need for Maven nor Ant)

• Embedded Server based on Apache Mina or JBoss Netty

• Deployment as a WAR

• No need for any other JARs

Copyright(c) mipan - Fotolia.com

Full stack ?

dimanche 24 octobre 2010

• Apache Tomcat

• Spring Webflow

• Spring Faces

• Hibernate

• Junit

• JSF and a library such as Rich Faces

• Selenium

• Maven

Meet the Java Web projet

dimanche 24 octobre 2010

• The super-heros pattern

http://www.flickr.com/photos/aloha75/4571410233/sizes/l/in/photostream/

Me as a consultant

dimanche 24 octobre 2010

• The super-heros pattern

http://www.flickr.com/photos/aloha75/4571410233/sizes/l/in/photostream/

Me as a consultant

dimanche 24 octobre 2010

http://www.flickr.com/photos/creative_tools/4324925700/sizes/l/in/photostream/

But I’m getting old

dimanche 24 octobre 2010

http://www.flickr.com/photos/creative_tools/4324925700/sizes/l/in/photostream/

But I’m getting old

dimanche 24 octobre 2010

Play is a development platform

dimanche 24 octobre 2010

• Fast incremental development

Play is a development platform

dimanche 24 octobre 2010

• Fast incremental development

• Production server

Play is a development platform

dimanche 24 octobre 2010

• Fast incremental development

• Production server

• MVC stack with a configurable template engine

Play is a development platform

dimanche 24 octobre 2010

• Fast incremental development

• Production server

• MVC stack with a configurable template engine

• Persistence engine (JPA/Hibernate)

Play is a development platform

dimanche 24 octobre 2010

• Fast incremental development

• Production server

• MVC stack with a configurable template engine

• Persistence engine (JPA/Hibernate)

• Tests Runners (Junit, Selenium)

Play is a development platform

dimanche 24 octobre 2010

• Fast incremental development

• Production server

• MVC stack with a configurable template engine

• Persistence engine (JPA/Hibernate)

• Tests Runners (Junit, Selenium)

• Asynchronous tasks

Play is a development platform

dimanche 24 octobre 2010

• Fast incremental development

• Production server

• MVC stack with a configurable template engine

• Persistence engine (JPA/Hibernate)

• Tests Runners (Junit, Selenium)

• Asynchronous tasks

• Email

Play is a development platform

dimanche 24 octobre 2010

• Fast incremental development

• Production server

• MVC stack with a configurable template engine

• Persistence engine (JPA/Hibernate)

• Tests Runners (Junit, Selenium)

• Asynchronous tasks

• Email

• Scala

Play is a development platform

dimanche 24 octobre 2010

• Fast incremental development

• Production server

• MVC stack with a configurable template engine

• Persistence engine (JPA/Hibernate)

• Tests Runners (Junit, Selenium)

• Asynchronous tasks

• Email

• Scala

• Mobile development

Play is a development platform

dimanche 24 octobre 2010

Compile, reload, enjoy

dimanche 24 octobre 2010

• You think of an idea

Compile, reload, enjoy

dimanche 24 octobre 2010

• You think of an idea

• You write-it in your IDE

Compile, reload, enjoy

dimanche 24 octobre 2010

• You think of an idea

• You write-it in your IDE

• Reload browser

Compile, reload, enjoy

dimanche 24 octobre 2010

• You think of an idea

• You write-it in your IDE

• Reload browser

• There is no session : you can perform progressive creation of Web application in no time

Compile, reload, enjoy

dimanche 24 octobre 2010

• Displayed in your web browser

Error pages

Statically check (yes it’s Java)

dimanche 24 octobre 2010

• Displayed in your web browser

Error pages

Statically check (yes it’s Java)

dimanche 24 octobre 2010

Tests in the browser

dimanche 24 octobre 2010

Tests in the browser

dimanche 24 octobre 2010

dimanche 24 octobre 2010

One more thing...

dimanche 24 octobre 2010

One more thing

dimanche 24 octobre 2010

• Cloud deployment on playapps.net

One more thing

dimanche 24 octobre 2010

• Cloud deployment on playapps.net

• Modules for NoSQL, revert DB, Scaffold, Excel, Senia, MongoDB, Scalate, PDF, search, etc.

One more thing

dimanche 24 octobre 2010

• Cloud deployment on playapps.net

• Modules for NoSQL, revert DB, Scaffold, Excel, Senia, MongoDB, Scalate, PDF, search, etc.

• Hosted on GitHub

One more thing

dimanche 24 octobre 2010

• Cloud deployment on playapps.net

• Modules for NoSQL, revert DB, Scaffold, Excel, Senia, MongoDB, Scalate, PDF, search, etc.

• Hosted on GitHub

• Easy to learn

One more thing

dimanche 24 octobre 2010

• Cloud deployment on playapps.net

• Modules for NoSQL, revert DB, Scaffold, Excel, Senia, MongoDB, Scalate, PDF, search, etc.

• Hosted on GitHub

• Easy to learn

• .............................. and it’s Java

One more thing

dimanche 24 octobre 2010

Demonstration

dimanche 24 octobre 2010

Demo• A simple Todo list application

• Create an application

• Add simple HTML

• Add bootstrap

• Create a todo

• Show a specific

dimanche 24 octobre 2010

Demo 2• GeekEvent is a Java User Group event

organizer

• Code source hosted on GitHub

dimanche 24 octobre 2010

JugUseremailfirstNamelastName

JugEventtitledateshortDesclongDesctotalSlots

Simple model

dimanche 24 octobre 2010

JugUseremailfirstNamelastName

Set<JugEvent> attendeesEventsSet<JugEvent> organizedEvents

JugEventtitledateshortDesclongDesctotalSlots

Set<JugUser> attendeesJugUser eventOrganizer

dimanche 24 octobre 2010

dimanche 24 octobre 2010