SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
DÉVELOPPER SOUS MAGENTO
BONNES PRATIQUES APRÈS 6 ANS DE RECUL

Gabriel BOUHATOUS
Expert Magento @ e-Commerce Academy
DÉVELOPPER SOUS MAGENTO
BONNES PRATIQUES APRÈS 6 ANS DE RECUL

Gabriel BOUHATOUS
Expert Magento
Audit, conseil, formation @ e-Commerce Academy
Communauté @ (Bar | Fra)gento
e-Commerce @ Linea Chic
@expert_magento  | @ecommerce_acdmy
La spécificité de Magento en 1 chiffre

1.207.032

nombre de lignes de code
Magento Enterprise 1.12
Bien développé…

Magento est une F1
Sinon…

Magento est un
gouffre financier
DÉVELOPPER SOUS MAGENTO
BONNES PRATIQUES APRÈS 6 ANS DE RECUL

1

Les bonnes connaissances

2

Les bons outils

3

Les bonnes pratiques
DÉVELOPPER SOUS MAGENTO
BONNES PRATIQUES APRÈS 6 ANS DE RECUL

1

Les bonnes connaissances

2

Les bons outils

3

Les bonnes pratiques
Les bonnes connaissances

P.O.O
ZF
les +

maîtrise objet primordiale
fait souvent la différence !
Zend Framework est un +
mais pas un prérequis
culture e-Commerce
compréhension métier
Les bonnes compétences

formation
continue
l’autoformation

parfois « en option »
indispensable pour bien faire
peut servir au début
pas une finalité

Les qualités qui font toute la différence :
1.  être fainéant
2.  savoir se remettre en question
3.  se donner les moyens de développer ses compétences
Le développeur idéal en une image
Jugés sur la performance et la qualité
DÉVELOPPER SOUS MAGENTO
BONNES PRATIQUES APRÈS 6 ANS DE RECUL

1

Les bonnes connaissances

2

Les bons outils

3

Les bonnes pratiques
Les bons outils

1
2
3

un environnement de développement
professionnel (+ plugin éventuel)
un profiler et une toolbar pour
connaître le coût de son code
en complément
logs, testing, outils pros spécifiques
DÉVELOPPER SOUS MAGENTO
BONNES PRATIQUES APRÈS 6 ANS DE RECUL

1

Les bonnes connaissances

2

Les bons outils

3

Les bonnes pratiques
Préalable : architecte != développeur

1
2
3

on ne peut pas exiger d’un développeur
qu’il fasse le travail de l’architecte
mais de fait, la composition des équipes
ne laisse bien souvent pas le choix
le respect de ce principe assure
maintenabilité, performance et sécurité
n° 1 : modularité et adhérence faible

1

connaître les composants et
respecter l’intégrité du Magento Core
•  app/code/core
•  fichiers natifs /lib/*
•  fichiers natifs /js/*
n° 1 : modularité et adhérence faible

2

comprendre l’architecture native pour
faire bon usage des codePool
•  local vs. community
•  choix des modules tiers
•  choix des librairies
n° 1 : modularité et adhérence faible

3

connaître les techniques existantes et
justifier de la méthode adaptée
•  surcharge locale ?
•  surcharge ?
•  nombre et conflits
n° 1 : modularité et adhérence faible

3

connaître les techniques existantes et
justifier de la méthode adaptée
•  backend model ?
•  attribut ?
•  event & observer ?
n° 1 : modularité et adhérence faible
n° 1 : modularité et adhérence faible
n° 2 : style de codage et lisibilité

1

faire le moins possible le mieux possible
utiliser le natif fonctionnel
•  K.I.S.S. vs. usine à gaz
•  limiter le paramétrage
•  détourner avec modération
n° 2 : style de codage et lisibilité

2

faire le moins possible le mieux possible
utiliser le natif technique
•  méthodes natives vs.
méthodes indésirables
•  écriture dans le flux
n° 2 : style de codage et lisibilité

3

faire le moins possible le mieux possible
les conventions, c’est pour le bien

• 
• 
• 
• 

encodage, config, FK
usage des pattern factory
bannir les $ GLOBAL
commenter si nécessaire
n° 3 : performance, gestion du cache

1

au préalable, développer des logiques
performantes, même sans cache

• 
• 
• 
• 

loads d’entités lourdes
loads de collections lourdes
Mage : register, registry
attention aux pièges
(getFirstItem, …)
n° 3 : performance, gestion du cache

2

ensuite, déterminer et configurer
la bonne stratégie de cache
•  cache != « cache-misère »
•  gestion des backends
•  cache applicable aux
blocks, comme aux datas
•  gestion FPC via Varnish
n° 3 : performance, gestion du cache

3

finalement, mesurer et valider :
les performances doivent être adaptées
•  SQL : de 150 à 5
•  coût : de 1s à 0,1s
•  valider par des TMC
conformes à la réalité
n° 4 : templating = développement !

1

y attacher de l’importance aussi car
en réalité, templating = développement
•  usage du fallback
•  structure package & theme
•  append, insert, remove,
unsetChild, update handle,
ifconfig, …
n° 4 : templating = développement !

2

comprendre la différence entre
blocks vs. templates

• 
• 
• 
• 

phtml = pHTML !
logique : dans les vues
get : dans les templates
important pour le caching !
n° 4 : templating = développement !

3

inclure dans les critères de qualité
l’optimisation de l’intégration graphique

• 
• 
• 
• 

style html vs. css
cdata pour les scripts
délivrer peu, délivrer vite
50 requêtes http par page
n° 5 : sécurité

1

identifier et
utiliser les paramètres de sécurité natifs
•  protection admin
•  https
•  droits admin & API
n° 5 : sécurité

2

identifier et
sécuriser fichiers et dossiers sensibles

• 
• 
• 
• 

.htaccess app, var, lib
fichiers inutiles ou à risque
downloader
RELEASE_NOTES.txt !
n° 6 : indexes et autres points avancés

1

comprendre leur fonctionnement et
maîtriser le paramétrage des indexes
•  que fait reindexAll ?
•  indexes inutiles ?
•  update on save, manual ?
n° 6 : indexes et autres points avancés
save EAV
4%
divers
4%
cleanCache
BS
8%

cleanCache AS
8%

$product-­‐>save();	
  
save EAV
cleanCache BS
cleanCache AS
indexation
divers

indexation
76%
n° 6 : indexes et autres points avancés
Un cleanCache lent ralentit les performances du save et
allonge la durée de transaction puisque le cleanCache
model est exécuté dans le _afterSave.
n° 6 : indexes et autres points avancés

2

identifier et garder à l’esprit
l’existence de problématiques natives
•  product save lent : cron
•  save order lent : observers
•  « etc. » !
Magento 2 ?

Release prévue pour
Q2 2012 Q4 2012
Q1 2013 Q4 2013

2014
…2015 ?

migration automatisée partielle
prochaines versions 1.x (optims)
1.x maintenue au moins 2 ans
Merci !
@expert_magento
blog.academy-ecommerce.com

Formation. Conseil. Audit.
Le centre Magento de référence.
	
  

blog.academy-ecommerce.com
www.academy-ecommerce.com
contact@academy-ecommerce.com
Twitter @ecommerce_acdmy

Weitere ähnliche Inhalte

Andere mochten auch

¿Por qué es necesario mantener las aplicaciones de seguridad activadas y actu...
¿Por qué es necesario mantener las aplicaciones de seguridad activadas y actu...¿Por qué es necesario mantener las aplicaciones de seguridad activadas y actu...
¿Por qué es necesario mantener las aplicaciones de seguridad activadas y actu...Cigana Anahi
 
Bilan du pam de vescovato 2012
Bilan du pam de vescovato 2012 Bilan du pam de vescovato 2012
Bilan du pam de vescovato 2012 PAMVESCOVATO
 
Les stars portent de la mode éthique !
Les stars portent de la mode éthique !Les stars portent de la mode éthique !
Les stars portent de la mode éthique !Caroline Lcze
 
Audrey Joly - Alexandra berry - la strategie de diversification de l’associ...
Audrey Joly -  Alexandra berry -  la strategie de diversification de l’associ...Audrey Joly -  Alexandra berry -  la strategie de diversification de l’associ...
Audrey Joly - Alexandra berry - la strategie de diversification de l’associ...MBA ESG
 
Marineslinares emprendedor
Marineslinares emprendedorMarineslinares emprendedor
Marineslinares emprendedorMarines Linares
 
Lecture partagée 2 - A. Witko
Lecture partagée 2 - A. WitkoLecture partagée 2 - A. Witko
Lecture partagée 2 - A. Witkoauroreape
 
trabajo Error y estabilidad
trabajo Error y estabilidad  trabajo Error y estabilidad
trabajo Error y estabilidad Julio Perez
 
Objectifs journée technique vie du sol
Objectifs journée technique vie du solObjectifs journée technique vie du sol
Objectifs journée technique vie du solAgriculture Nouvelle
 
Los animales extraños
Los animales extrañosLos animales extraños
Los animales extrañosblancausin1202
 
Source et éléments.Pierre ST Vincent.
Source et éléments.Pierre ST Vincent.Source et éléments.Pierre ST Vincent.
Source et éléments.Pierre ST Vincent.Pierre ST Vincent
 
testDoc
testDoctestDoc
testDocMan Li
 

Andere mochten auch (19)

Ficha tecnica
Ficha tecnicaFicha tecnica
Ficha tecnica
 
¿Por qué es necesario mantener las aplicaciones de seguridad activadas y actu...
¿Por qué es necesario mantener las aplicaciones de seguridad activadas y actu...¿Por qué es necesario mantener las aplicaciones de seguridad activadas y actu...
¿Por qué es necesario mantener las aplicaciones de seguridad activadas y actu...
 
Bilan du pam de vescovato 2012
Bilan du pam de vescovato 2012 Bilan du pam de vescovato 2012
Bilan du pam de vescovato 2012
 
Les stars portent de la mode éthique !
Les stars portent de la mode éthique !Les stars portent de la mode éthique !
Les stars portent de la mode éthique !
 
Audrey Joly - Alexandra berry - la strategie de diversification de l’associ...
Audrey Joly -  Alexandra berry -  la strategie de diversification de l’associ...Audrey Joly -  Alexandra berry -  la strategie de diversification de l’associ...
Audrey Joly - Alexandra berry - la strategie de diversification de l’associ...
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Marineslinares emprendedor
Marineslinares emprendedorMarineslinares emprendedor
Marineslinares emprendedor
 
I.s project .ppt;0
I.s project .ppt;0I.s project .ppt;0
I.s project .ppt;0
 
Lecture partagée 2 - A. Witko
Lecture partagée 2 - A. WitkoLecture partagée 2 - A. Witko
Lecture partagée 2 - A. Witko
 
trabajo Error y estabilidad
trabajo Error y estabilidad  trabajo Error y estabilidad
trabajo Error y estabilidad
 
Objectifs journée technique vie du sol
Objectifs journée technique vie du solObjectifs journée technique vie du sol
Objectifs journée technique vie du sol
 
Ecoconso
EcoconsoEcoconso
Ecoconso
 
Clase de aristoteles
Clase de aristotelesClase de aristoteles
Clase de aristoteles
 
Articles fr les mathematiques_8
Articles fr les mathematiques_8Articles fr les mathematiques_8
Articles fr les mathematiques_8
 
Los animales extraños
Los animales extrañosLos animales extraños
Los animales extraños
 
Source et éléments.Pierre ST Vincent.
Source et éléments.Pierre ST Vincent.Source et éléments.Pierre ST Vincent.
Source et éléments.Pierre ST Vincent.
 
testDoc
testDoctestDoc
testDoc
 
La musica
La musicaLa musica
La musica
 
Articles fr les mathematiques_5
Articles fr les mathematiques_5Articles fr les mathematiques_5
Articles fr les mathematiques_5
 

Mehr von The e-Commerce Academy

Magento 2 à l’essai ! Conférence Bargento 2015 par les experts Magento de l'e...
Magento 2 à l’essai ! Conférence Bargento 2015 par les experts Magento de l'e...Magento 2 à l’essai ! Conférence Bargento 2015 par les experts Magento de l'e...
Magento 2 à l’essai ! Conférence Bargento 2015 par les experts Magento de l'e...The e-Commerce Academy
 
Magento 2 : au-delà du changement de version, un changement de paradigme ?
Magento 2 : au-delà du changement de version, un changement de paradigme ?Magento 2 : au-delà du changement de version, un changement de paradigme ?
Magento 2 : au-delà du changement de version, un changement de paradigme ?The e-Commerce Academy
 
Magento 2 is to migrate or not to migrate, the right question ?
Magento 2 is to migrate or not to migrate, the right question ?Magento 2 is to migrate or not to migrate, the right question ?
Magento 2 is to migrate or not to migrate, the right question ?The e-Commerce Academy
 
Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...
Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...
Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...The e-Commerce Academy
 
Devenir e-Commerçant : c’est (encore) possible !
Devenir e-Commerçant : c’est (encore) possible !Devenir e-Commerçant : c’est (encore) possible !
Devenir e-Commerçant : c’est (encore) possible !The e-Commerce Academy
 
Caches et indexes : optimisez (vraiment) vos performances Magento
Caches et indexes : optimisez (vraiment) vos performances MagentoCaches et indexes : optimisez (vraiment) vos performances Magento
Caches et indexes : optimisez (vraiment) vos performances MagentoThe e-Commerce Academy
 
Ergonomie et référencement, les meilleures pratiques pour 2013
Ergonomie et référencement, les meilleures pratiques pour 2013Ergonomie et référencement, les meilleures pratiques pour 2013
Ergonomie et référencement, les meilleures pratiques pour 2013The e-Commerce Academy
 

Mehr von The e-Commerce Academy (9)

Magento 2 à l’essai ! Conférence Bargento 2015 par les experts Magento de l'e...
Magento 2 à l’essai ! Conférence Bargento 2015 par les experts Magento de l'e...Magento 2 à l’essai ! Conférence Bargento 2015 par les experts Magento de l'e...
Magento 2 à l’essai ! Conférence Bargento 2015 par les experts Magento de l'e...
 
Magento 2 : au-delà du changement de version, un changement de paradigme ?
Magento 2 : au-delà du changement de version, un changement de paradigme ?Magento 2 : au-delà du changement de version, un changement de paradigme ?
Magento 2 : au-delà du changement de version, un changement de paradigme ?
 
Magento 2 is to migrate or not to migrate, the right question ?
Magento 2 is to migrate or not to migrate, the right question ?Magento 2 is to migrate or not to migrate, the right question ?
Magento 2 is to migrate or not to migrate, the right question ?
 
Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...
Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...
Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...
 
Devenir e-Commerçant : c’est (encore) possible !
Devenir e-Commerçant : c’est (encore) possible !Devenir e-Commerçant : c’est (encore) possible !
Devenir e-Commerçant : c’est (encore) possible !
 
e-Commerce : Survivre à 2014
e-Commerce : Survivre à 2014e-Commerce : Survivre à 2014
e-Commerce : Survivre à 2014
 
Caches et indexes : optimisez (vraiment) vos performances Magento
Caches et indexes : optimisez (vraiment) vos performances MagentoCaches et indexes : optimisez (vraiment) vos performances Magento
Caches et indexes : optimisez (vraiment) vos performances Magento
 
Magento 2 : ce qui va changer
Magento 2 : ce qui va changerMagento 2 : ce qui va changer
Magento 2 : ce qui va changer
 
Ergonomie et référencement, les meilleures pratiques pour 2013
Ergonomie et référencement, les meilleures pratiques pour 2013Ergonomie et référencement, les meilleures pratiques pour 2013
Ergonomie et référencement, les meilleures pratiques pour 2013
 

Mageconf - Developper sous magento : bonnes pratiques apres 6 ans de recul

  • 1. DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 6 ANS DE RECUL Gabriel BOUHATOUS Expert Magento @ e-Commerce Academy
  • 2. DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 6 ANS DE RECUL Gabriel BOUHATOUS Expert Magento Audit, conseil, formation @ e-Commerce Academy Communauté @ (Bar | Fra)gento e-Commerce @ Linea Chic @expert_magento  | @ecommerce_acdmy
  • 3.
  • 4. La spécificité de Magento en 1 chiffre 1.207.032 nombre de lignes de code Magento Enterprise 1.12
  • 7. DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 6 ANS DE RECUL 1 Les bonnes connaissances 2 Les bons outils 3 Les bonnes pratiques
  • 8. DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 6 ANS DE RECUL 1 Les bonnes connaissances 2 Les bons outils 3 Les bonnes pratiques
  • 9. Les bonnes connaissances P.O.O ZF les + maîtrise objet primordiale fait souvent la différence ! Zend Framework est un + mais pas un prérequis culture e-Commerce compréhension métier
  • 10. Les bonnes compétences formation continue l’autoformation parfois « en option » indispensable pour bien faire peut servir au début pas une finalité Les qualités qui font toute la différence : 1.  être fainéant 2.  savoir se remettre en question 3.  se donner les moyens de développer ses compétences
  • 11. Le développeur idéal en une image
  • 12. Jugés sur la performance et la qualité
  • 13. DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 6 ANS DE RECUL 1 Les bonnes connaissances 2 Les bons outils 3 Les bonnes pratiques
  • 14. Les bons outils 1 2 3 un environnement de développement professionnel (+ plugin éventuel) un profiler et une toolbar pour connaître le coût de son code en complément logs, testing, outils pros spécifiques
  • 15. DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 6 ANS DE RECUL 1 Les bonnes connaissances 2 Les bons outils 3 Les bonnes pratiques
  • 16. Préalable : architecte != développeur 1 2 3 on ne peut pas exiger d’un développeur qu’il fasse le travail de l’architecte mais de fait, la composition des équipes ne laisse bien souvent pas le choix le respect de ce principe assure maintenabilité, performance et sécurité
  • 17. n° 1 : modularité et adhérence faible 1 connaître les composants et respecter l’intégrité du Magento Core •  app/code/core •  fichiers natifs /lib/* •  fichiers natifs /js/*
  • 18. n° 1 : modularité et adhérence faible 2 comprendre l’architecture native pour faire bon usage des codePool •  local vs. community •  choix des modules tiers •  choix des librairies
  • 19. n° 1 : modularité et adhérence faible 3 connaître les techniques existantes et justifier de la méthode adaptée •  surcharge locale ? •  surcharge ? •  nombre et conflits
  • 20. n° 1 : modularité et adhérence faible 3 connaître les techniques existantes et justifier de la méthode adaptée •  backend model ? •  attribut ? •  event & observer ?
  • 21. n° 1 : modularité et adhérence faible
  • 22. n° 1 : modularité et adhérence faible
  • 23. n° 2 : style de codage et lisibilité 1 faire le moins possible le mieux possible utiliser le natif fonctionnel •  K.I.S.S. vs. usine à gaz •  limiter le paramétrage •  détourner avec modération
  • 24. n° 2 : style de codage et lisibilité 2 faire le moins possible le mieux possible utiliser le natif technique •  méthodes natives vs. méthodes indésirables •  écriture dans le flux
  • 25. n° 2 : style de codage et lisibilité 3 faire le moins possible le mieux possible les conventions, c’est pour le bien •  •  •  •  encodage, config, FK usage des pattern factory bannir les $ GLOBAL commenter si nécessaire
  • 26. n° 3 : performance, gestion du cache 1 au préalable, développer des logiques performantes, même sans cache •  •  •  •  loads d’entités lourdes loads de collections lourdes Mage : register, registry attention aux pièges (getFirstItem, …)
  • 27. n° 3 : performance, gestion du cache 2 ensuite, déterminer et configurer la bonne stratégie de cache •  cache != « cache-misère » •  gestion des backends •  cache applicable aux blocks, comme aux datas •  gestion FPC via Varnish
  • 28. n° 3 : performance, gestion du cache 3 finalement, mesurer et valider : les performances doivent être adaptées •  SQL : de 150 à 5 •  coût : de 1s à 0,1s •  valider par des TMC conformes à la réalité
  • 29. n° 4 : templating = développement ! 1 y attacher de l’importance aussi car en réalité, templating = développement •  usage du fallback •  structure package & theme •  append, insert, remove, unsetChild, update handle, ifconfig, …
  • 30. n° 4 : templating = développement ! 2 comprendre la différence entre blocks vs. templates •  •  •  •  phtml = pHTML ! logique : dans les vues get : dans les templates important pour le caching !
  • 31. n° 4 : templating = développement ! 3 inclure dans les critères de qualité l’optimisation de l’intégration graphique •  •  •  •  style html vs. css cdata pour les scripts délivrer peu, délivrer vite 50 requêtes http par page
  • 32. n° 5 : sécurité 1 identifier et utiliser les paramètres de sécurité natifs •  protection admin •  https •  droits admin & API
  • 33. n° 5 : sécurité 2 identifier et sécuriser fichiers et dossiers sensibles •  •  •  •  .htaccess app, var, lib fichiers inutiles ou à risque downloader RELEASE_NOTES.txt !
  • 34. n° 6 : indexes et autres points avancés 1 comprendre leur fonctionnement et maîtriser le paramétrage des indexes •  que fait reindexAll ? •  indexes inutiles ? •  update on save, manual ?
  • 35. n° 6 : indexes et autres points avancés save EAV 4% divers 4% cleanCache BS 8% cleanCache AS 8% $product-­‐>save();   save EAV cleanCache BS cleanCache AS indexation divers indexation 76%
  • 36. n° 6 : indexes et autres points avancés Un cleanCache lent ralentit les performances du save et allonge la durée de transaction puisque le cleanCache model est exécuté dans le _afterSave.
  • 37. n° 6 : indexes et autres points avancés 2 identifier et garder à l’esprit l’existence de problématiques natives •  product save lent : cron •  save order lent : observers •  « etc. » !
  • 38. Magento 2 ? Release prévue pour Q2 2012 Q4 2012 Q1 2013 Q4 2013 2014 …2015 ? migration automatisée partielle prochaines versions 1.x (optims) 1.x maintenue au moins 2 ans
  • 39. Merci ! @expert_magento blog.academy-ecommerce.com Formation. Conseil. Audit. Le centre Magento de référence.   blog.academy-ecommerce.com www.academy-ecommerce.com contact@academy-ecommerce.com Twitter @ecommerce_acdmy