SlideShare une entreprise Scribd logo
1  sur  60
RENAULTSHOP

@hikkyu
@chuxiuqiang
@nicolasmassouh
@cbalit
@fredoche
EKINO
WWW.EKINO.COM
AGENCE DIGITALE
FRONT, JAVA ET PHP

@NewsDuFront
@3k1n0
INTRODUCTION
RENAULT QUOI ?
WWW.RENAULTSHOP.FR
EXISTE DEPUIS 2009
FLEX
APPLICATION

Mise en relation
client-revendeur
Moteur de recherche
LA VERSION 2
L’ÉQUIPE

Cyril

Nicolas

Damien

Xiu

Fred
LANCEMENT DU PROJET
PHASE PRÉLIMINAIRE

PROTOTYPAGE / HISTORIQUE

Promoflash

Renault Shop
PHASE PRÉLIMINAIRE

WAR-ROOM
ANALYSE DU FONCTIONNEL
DÉCOUPAGE DES TÂCHES
CONCEPTION ANGULAR
MISE EN PLACE DES FLUX DE DONNÉES
CHOIX DES OUTILS
CHOIX DES OUTILS

Charles

Front

Back

Mock
PHASE DE DÉVELOPPEMENT

REPRISE DES ÉLÉMENTS DU PROTOTYPE

Quelques directives ou services
PARALLÉLISATION DES TÂCHES

Montage de toutes les vues HTML/CSS
Écriture des services et des controllers
Angularisation des vues
LES COMPOSANTS

CHOIX DE LA LIBRAIRIE

Angular UI : UI-bootstrap
• modal
• pagination
LES AUTRES (AVEC UNE DIRECTIVE DE SURCOUCHE)

Selectboxit
FlexSlider
jQuery UI Slider
TOUT AU LONG DU PROJET

DES STAND UP QUOTIDIENNES
TEST UNITAIRES AVEC KARMA

Plutôt TDD
868 tests
•
•
•
•

88% des
67% des
50% des
22% des

filtres
services
controllers
directives
TOUT AU LONG DU PROJET

DES STAND UP QUOTIDIENNES
TEST UNITAIRES AVEC KARMA

Plutôt TDD
868 tests
•
•
•
•

88% des
67% des
50% des
22% des

filtres
services
controllers
directives
TESTS UNITAIRES DES DIRECTIVES

INITIALISATION DE LA DIRECTIVE

EXEMPLE D’UTILISATION
TESTS UNITAIRES DES DIRECTIVES

LE TEMPLATE URL
QUELQUES CHIFFRES

1 Module

22 Directives

7 Filtres

4 Développeurs front
4 Consultants

28 Services

21
Controllers

5 Développeurs back
2 UX

1 Graphiste

Env. 800 tickets bugs et tâches
RESPONSIVE DESIGN
SCOPE
DESKTOP

Chrome : latest release
Firefox : latest release
Safari 5 et 6
IE 8, 9 et 10

TABLETTE

iOS 5.1 à 6.1
Android 3.2 à 4.2
Microsoft Surface RT

MOBILE

iOS 6
Android 4.1
Android 2.3
RESPONSIVE DESIGN
DESKTOP FIRST ET NON MOBILE FIRST
LAYOUT ADAPTIF POUR TABLETTE
PAS DE FRAMEWORK CSS

MAIS PAS QUE !
POURQUOI ADAPTIF DESIGN (AWD) ?

CONTRAINTES FONCTIONNELLES
MISE EN PAGE FLUIDE (RWD) AVEC
UNE AMÉLIORATION PROGRESSIVE
POUR LES IMAGES
UNE CONVENTION
3 tailles d’images SMALL, MEDIUM,LARGE
Un pattern d’url /monurl/[size]/vehicle-cool.png
ON DOIT CONNAÎTRE LE CONTEXTE

MATCHMEDIA
REFRESH (RESIZE)
MATCHMEDIA
POLYFILL FROM WEBLINC FOR < IE10
FASTER THAN NATIVE MATCHMEDIA (DEPEND ON THE
BROWSER)

https://github.com/weblinc/media-match
http://jsperf.com/matchmedia
UTILISATION DE MATCHMEDIA
2 FAMILLES DE TYPE DE DEVICE
TYPE

MACROTYPE

DESKTOP
TABLET
MOBILE

DESKTOP_TABLET
MOBILE

Inclusion d’un fragment HTML en fonction du flag
SNIFFING (USER AGENT)
UN DOM RESPONSIVE NE SERA PAS ALTÉRÉ
PAR ANGULAR
TIPS AND TRICKS
ORIENTÉ URL
URL

Action utilisateur

Mise à jour du
modèle

Appel serveur
ORIENTÉ SERVICE
SearchForm

Criteria

Range

Query

Search

SearchResult
‘$APPLY / $DIGEST
ALREADY IN PROGRESS’ ERROR
SELECT SKIN TIPS
LES ANIMATIONS
DEBUG SUR LES DEVICES
SUR IOS POUR LES MACS USERS

SIMULATEUR IOS
APPAREIL BRANCHÉ USB
IOS 6, SAFARI 6
42
SUR ANDROID

ANDROID 3.2
APPAREIL BRANCHÉ EN USB
PAS DE DÉBUG POSSIBLE HORMIS AVEC CHROME
https://developers.google.com/chrome-developer-tools/docs/remote-debugging
LA PERFORMANCE
Séquence de chargement
SEO
L’EXISTANT

DES URL DÉJÀ INDEXÉES À CONVERTIR
DYNAMISATION DU SITEMAP.XML
1. UNE CONVENTION …
POUR UN BOT

http://www.renaultshop.fr/#!/home

devient
http://www.renaultshop.fr/?_escaped_fragment_=/home
2. UNE REDIRECTION…
Ex: https://gist.github.com/Stanback/7028309

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /prerender-test/

# Virtual/pushState URIs (requests not matching an existing file get forwarded to
index.html)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.html [L]
<IfModule mod_proxy_http.c>
# Enable prerendering for .html and directory index files
RewriteCond %{HTTP_USER_AGENT} googlebot|yahoo|bingbot|baiduspider [NC,OR]
RewriteCond %{QUERY_STRING} _escaped_fragment_|prerender=1
RewriteCond %{HTTP_USER_AGENT} !^Prerender
RewriteRule ^(.*.html)?$
http://prerender.herokuapp.com/http://www.yourdomain.com/prerender-test/$1 [P,L]
</IfModule>
</IfModule>
# Optionally add a ProxyPassReverse directive to ensure that 301/302 redirects
# issued by the prerender service are correctly forwarded to the client.
# Note that this must be located in your Apache config rather than .htaccess
# <IfModule mod_proxy_http.c>
#
ProxyPassReverse /prerender-test/
http://prerender.herokuapp.com/http://www.yourdomain.com/prerender-test/
# </IfModule>
3. UN RENDERING STATIC

## Démarrer phantomJs et pour voir l'utiliser depuis
node.js
phantom = require "phantom" ## avec le pont
phantomjs-node
phantom.create (ph)->
ph.createPage (page)->
## Sérialisation du dom
page.evaluate ->
# Exécution dans le runtime
nodejs
return JSON.stringify({dom :
encodeURIComponent(document.documentElement.outerHTM
L)}) # Et là au sein de phantomJs
, (result)->
... ## on écrit le dom dans le fichier
ph.exit() ## TA-DAA!
FILTRE

SEO

renaultshop.fr/?_escaped_fragment_=/home
renaultshop.fr/#!/home

RENAULT
SHOP
SOLUTIONS

SEO4AJAX (PAYANT)
BROMBONE (PAYANT)
PRERENDER.IO (OPEN-SOURCE)
OU …. SOLUTION MAISON
GOOGLE WEBMASTER TOOLS (POUR LE DEBUG)
SCALABILITÉ
beanstalkd

File System
Sitemap.js

proxy.js
QUELQUES CHIFFRES …

30 SITES INDEXÉS
3000 URL /SITE
1GO DE FICHIERS/SITE
20000 URL POUR RENAULTSHOP
1 REQUÊTE DE BOT/SITE/SECONDE
5 À 7 SECONDES DE CALCUL PAR PAGE
BILAN

OK POUR LA TECHNIQUE
MAIS ON VEUT DES RÉPONSES PERTINENTES

Pour un SEO efficace il faut du contenu
Pertinence des url à indexer, de leurs nombres …
• « cool uris don’t change »

Tim Berners-Lee

Pertinence des informations (géolocalisation)
ATTENTION AU JAVASCRIPT
DONC …
ON A AIMÉ
L’INDÉPENDANCE DES ÉQUIPES
L’ARCHITECTURE ANGULAR
LES TESTS UNITAIRES
//TODO

ON AURAIT AIMÉ
ENCORE PLUS ORIENTÉ SERVICES
PLUS DE TESTS ET AVEC LES TESTS E2E
NE PAS SOUS ESTIMER
LA MONTÉE EN COMPÉTENCE DES ÉQUIPES
LE DEBUG SUR LES DIFFÉRENTS DEVICES CIBLES
LE SEO
@cbalit

@hikkyu

@nicolasmassouh

@fredoche

@chuxiuqiang

@NewsDuFront
@3k1n0

Contenu connexe

En vedette

Performances & SEO in AngularJS
Performances & SEO in AngularJSPerformances & SEO in AngularJS
Performances & SEO in AngularJSPhilos.io
 
Curriculum vitae MARIA ELSA LOPEZ
Curriculum vitae MARIA ELSA LOPEZCurriculum vitae MARIA ELSA LOPEZ
Curriculum vitae MARIA ELSA LOPEZmaria_elsa
 
Top 10 Sex Myths: DEBUNKED
Top 10 Sex Myths: DEBUNKEDTop 10 Sex Myths: DEBUNKED
Top 10 Sex Myths: DEBUNKEDThe Thump
 
tarea--ejercicios propuestos 4
tarea--ejercicios propuestos 4 tarea--ejercicios propuestos 4
tarea--ejercicios propuestos 4 kimsavi
 
Gebeurtenis: Explorer 1
Gebeurtenis: Explorer 1Gebeurtenis: Explorer 1
Gebeurtenis: Explorer 1Robinvdh
 
Ob attitude
Ob attitudeOb attitude
Ob attitudeMj Payal
 
Organización chart of coomeva
Organización chart of coomevaOrganización chart of coomeva
Organización chart of coomevamaria_elsa
 
Soc 220 mass and movement
Soc 220 mass and movementSoc 220 mass and movement
Soc 220 mass and movementjrmurray6
 
Reported speech (tugas softskill)
Reported speech (tugas softskill)Reported speech (tugas softskill)
Reported speech (tugas softskill)ilyaspriangga
 
Angular decorator, interceptor and error handler
Angular decorator, interceptor and error handlerAngular decorator, interceptor and error handler
Angular decorator, interceptor and error handlerCyril Balit
 
Non verbal communication
Non verbal    communicationNon verbal    communication
Non verbal communicationM'dee Phechudi
 

En vedette (19)

Performances & SEO in AngularJS
Performances & SEO in AngularJSPerformances & SEO in AngularJS
Performances & SEO in AngularJS
 
Curriculum vitae MARIA ELSA LOPEZ
Curriculum vitae MARIA ELSA LOPEZCurriculum vitae MARIA ELSA LOPEZ
Curriculum vitae MARIA ELSA LOPEZ
 
Website designs
Website designsWebsite designs
Website designs
 
Call sheet Powerpoint
Call sheet PowerpointCall sheet Powerpoint
Call sheet Powerpoint
 
Top 10 Sex Myths: DEBUNKED
Top 10 Sex Myths: DEBUNKEDTop 10 Sex Myths: DEBUNKED
Top 10 Sex Myths: DEBUNKED
 
Laurence simon salary survey 2011/2012
Laurence simon salary survey 2011/2012Laurence simon salary survey 2011/2012
Laurence simon salary survey 2011/2012
 
Tom Jenkins
Tom JenkinsTom Jenkins
Tom Jenkins
 
Mario testino
Mario testinoMario testino
Mario testino
 
tarea--ejercicios propuestos 4
tarea--ejercicios propuestos 4 tarea--ejercicios propuestos 4
tarea--ejercicios propuestos 4
 
Gebeurtenis: Explorer 1
Gebeurtenis: Explorer 1Gebeurtenis: Explorer 1
Gebeurtenis: Explorer 1
 
Ob attitude
Ob attitudeOb attitude
Ob attitude
 
Tom jenkins
Tom jenkinsTom jenkins
Tom jenkins
 
Organización chart of coomeva
Organización chart of coomevaOrganización chart of coomeva
Organización chart of coomeva
 
Soc 220 mass and movement
Soc 220 mass and movementSoc 220 mass and movement
Soc 220 mass and movement
 
Audience feedback
Audience feedbackAudience feedback
Audience feedback
 
Marietje Kessels
Marietje KesselsMarietje Kessels
Marietje Kessels
 
Reported speech (tugas softskill)
Reported speech (tugas softskill)Reported speech (tugas softskill)
Reported speech (tugas softskill)
 
Angular decorator, interceptor and error handler
Angular decorator, interceptor and error handlerAngular decorator, interceptor and error handler
Angular decorator, interceptor and error handler
 
Non verbal communication
Non verbal    communicationNon verbal    communication
Non verbal communication
 

Similaire à Meetup angular rshop

Présentation welcom la webperf by object23
Présentation welcom la webperf by object23Présentation welcom la webperf by object23
Présentation welcom la webperf by object23Brigitte Marandon
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonyVincent Composieux
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - SOGETI
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - SOGETIIBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - SOGETI
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - SOGETIIBM France Lab
 
TIAD : Choisir et construire son projet d’automatisation
TIAD : Choisir et construire son projet d’automatisationTIAD : Choisir et construire son projet d’automatisation
TIAD : Choisir et construire son projet d’automatisationThe Incredible Automation Day
 
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...pierredargham
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Jean-Laurent de Morlhon
 
RennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostRennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostDamien Jubeau
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applicationsgoldoraf
 
Partie 2: Angular
Partie 2: AngularPartie 2: Angular
Partie 2: AngularHabib Ayad
 
Glowroot, le petit APM qui vous veut du bien
Glowroot, le petit APM qui vous veut du bienGlowroot, le petit APM qui vous veut du bien
Glowroot, le petit APM qui vous veut du bienHenri Gomez
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-endClément Dubois
 
Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endFrançois Petitit
 
Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009Frédéric Queudret
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans DrupalAdyax
 

Similaire à Meetup angular rshop (20)

Meetup angular rshop
Meetup angular rshopMeetup angular rshop
Meetup angular rshop
 
Présentation welcom la webperf by object23
Présentation welcom la webperf by object23Présentation welcom la webperf by object23
Présentation welcom la webperf by object23
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
sfPot aop
sfPot aopsfPot aop
sfPot aop
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - SOGETI
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - SOGETIIBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - SOGETI
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - SOGETI
 
TIAD : Choisir et construire son projet d’automatisation
TIAD : Choisir et construire son projet d’automatisationTIAD : Choisir et construire son projet d’automatisation
TIAD : Choisir et construire son projet d’automatisation
 
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
 
RennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostRennesJS Talk webperf by Dareboost
RennesJS Talk webperf by Dareboost
 
TP GWT JDEV 2015
TP GWT JDEV 2015TP GWT JDEV 2015
TP GWT JDEV 2015
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
 
Partie 2: Angular
Partie 2: AngularPartie 2: Angular
Partie 2: Angular
 
Glowroot, le petit APM qui vous veut du bien
Glowroot, le petit APM qui vous veut du bienGlowroot, le petit APM qui vous veut du bien
Glowroot, le petit APM qui vous veut du bien
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-end
 
Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-end
 
Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 

Meetup angular rshop