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 ...
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 bon...
DÉVELOPPER SOUS MAGENTO
BONNES PRATIQUES APRÈS 6 ANS DE RECUL

1

Les bonnes connaissances

2

Les bons outils

3

Les bon...
Les bonnes connaissances

P.O.O
ZF
les +

maîtrise objet primordiale
fait souvent la différence !
Zend Framework est un +
...
Les bonnes compétences

formation
continue
l’autoformation

parfois « en option »
indispensable pour bien faire
peut servi...
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 bon...
Les bons outils

1
2
3

un environnement de développement
professionnel (+ plugin éventuel)
un profiler et une toolbar pou...
DÉVELOPPER SOUS MAGENTO
BONNES PRATIQUES APRÈS 6 ANS DE RECUL

1

Les bonnes connaissances

2

Les bons outils

3

Les bon...
Préalable : architecte != développeur

1
2
3

on ne peut pas exiger d’un développeur
qu’il fasse le travail de l’architect...
n° 1 : modularité et adhérence faible

1

connaître les composants et
respecter l’intégrité du Magento Core
•  app/code/co...
n° 1 : modularité et adhérence faible

2

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

3

connaître les techniques existantes et
justifier de la méthode adaptée
•  surcha...
n° 1 : modularité et adhérence faible

3

connaître les techniques existantes et
justifier de la méthode adaptée
•  backen...
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....
n° 2 : style de codage et lisibilité

2

faire le moins possible le mieux possible
utiliser le natif technique
•  méthodes...
n° 2 : style de codage et lisibilité

3

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

• ...
n° 3 : performance, gestion du cache

1

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

• 
• 
• 
• 
...
n° 3 : performance, gestion du cache

2

ensuite, déterminer et configurer
la bonne stratégie de cache
•  cache != « cache...
n° 3 : performance, gestion du cache

3

finalement, mesurer et valider :
les performances doivent être adaptées
•  SQL : ...
n° 4 : templating = développement !

1

y attacher de l’importance aussi car
en réalité, templating = développement
•  usa...
n° 4 : templating = développement !

2

comprendre la différence entre
blocks vs. templates

• 
• 
• 
• 

phtml = pHTML !
...
n° 4 : templating = développement !

3

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

• ...
n° 5 : sécurité

1

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

2

identifier et
sécuriser fichiers et dossiers sensibles

• 
• 
• 
• 

.htaccess app, var, lib
fichiers ...
n° 6 : indexes et autres points avancés

1

comprendre leur fonctionnement et
maîtriser le paramétrage des indexes
•  que ...
n° 6 : indexes et autres points avancés
save EAV
4%
divers
4%
cleanCache
BS
8%

cleanCache AS
8%

$product-­‐>save();	
  
...
n° 6 : indexes et autres points avancés
Un cleanCache lent ralentit les performances du save et
allonge la durée de transa...
n° 6 : indexes et autres points avancés

2

identifier et garder à l’esprit
l’existence de problématiques natives
•  produ...
Magento 2 ?

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

2014
…2015 ?

migration automatisée partielle
prochaines...
Merci !
@expert_magento
blog.academy-ecommerce.com

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

blog....
Mageconf - Developper sous magento : bonnes pratiques apres 6 ans de recul
Prochain SlideShare
Chargement dans…5
×

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

2 449 vues

Publié le

Spécialiste Magento de la première heure, l'e-Commerce Academy vous présente après 6 ans d'expériences son guide des bonnes pratiques afin d'optimiser vos développements.

Publié dans : Technologie
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 449
Sur SlideShare
0
Issues des intégrations
0
Intégrations
34
Actions
Partages
0
Téléchargements
36
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

  1. 1. DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 6 ANS DE RECUL Gabriel BOUHATOUS Expert Magento @ e-Commerce Academy
  2. 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. 3. La spécificité de Magento en 1 chiffre 1.207.032 nombre de lignes de code Magento Enterprise 1.12
  4. 4. Bien développé… Magento est une F1
  5. 5. Sinon… Magento est un gouffre financier
  6. 6. DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 6 ANS DE RECUL 1 Les bonnes connaissances 2 Les bons outils 3 Les bonnes pratiques
  7. 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. 8. 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
  9. 9. 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
  10. 10. Le développeur idéal en une image
  11. 11. Jugés sur la performance et la qualité
  12. 12. DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 6 ANS DE RECUL 1 Les bonnes connaissances 2 Les bons outils 3 Les bonnes pratiques
  13. 13. 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
  14. 14. DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 6 ANS DE RECUL 1 Les bonnes connaissances 2 Les bons outils 3 Les bonnes pratiques
  15. 15. 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é
  16. 16. 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/*
  17. 17. 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
  18. 18. 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
  19. 19. 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 ?
  20. 20. n° 1 : modularité et adhérence faible
  21. 21. n° 1 : modularité et adhérence faible
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. 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, …)
  26. 26. 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
  27. 27. 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é
  28. 28. 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, …
  29. 29. 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 !
  30. 30. 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
  31. 31. n° 5 : sécurité 1 identifier et utiliser les paramètres de sécurité natifs •  protection admin •  https •  droits admin & API
  32. 32. 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 !
  33. 33. 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 ?
  34. 34. 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%
  35. 35. 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.
  36. 36. 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. » !
  37. 37. 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
  38. 38. 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

×