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

  • 1,062 views
Uploaded 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.

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,062
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
18
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. La spécificité de Magento en 1 chiffre 1.207.032 nombre de lignes de code Magento Enterprise 1.12
  • 4. Bien développé… Magento est une F1
  • 5. Sinon… Magento est un gouffre financier
  • 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. 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. 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. 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. Le développeur idéal en une image
  • 11. Jugés sur la performance et la qualité
  • 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. 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. 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. 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. 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. 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. 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. 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. n° 1 : modularité et adhérence faible
  • 21. n° 1 : modularité et adhérence faible
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. n° 5 : sécurité 1 identifier et utiliser les paramètres de sécurité natifs •  protection admin •  https •  droits admin & API
  • 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. 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. 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. 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. 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. 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. 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