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

2,599 views

Published on

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.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,599
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
41
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

×