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

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

description

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.

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

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

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

Gabriel BOUHATOUS Expert Magento @ e-Commerce Academy

Page 2: Mageconf - Developper sous magento : bonnes pratiques apres 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

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

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

La spécificité de Magento en 1 chiffre

1.207.032 nombre de lignes de code Magento Enterprise 1.12

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

Bien développé…

Magento est une F1

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

Sinon…

Magento est un gouffre financier

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

1 Les bonnes connaissances

2

3 Les bonnes pratiques

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

Les bons outils

Page 8: Mageconf - Developper sous magento : bonnes pratiques apres 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

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

Les bonnes connaissances

P.O.O maîtrise objet primordiale fait souvent la différence !

ZF Zend Framework est un + mais pas un prérequis

les + culture e-Commerce compréhension métier

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

Les bonnes compétences

formation continue

parfois « en option » indispensable pour bien faire

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

l’auto-formation

peut servir au début pas une finalité

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

Le développeur idéal en une image

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

Jugés sur la performance et la qualité

Page 13: Mageconf - Developper sous magento : bonnes pratiques apres 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

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

Les bons outils

1 un environnement de développement professionnel (+ plugin éventuel)

2 un profiler et une toolbar pour connaître le coût de son code

3 en complément logs, testing, outils pros spécifiques

Page 15: Mageconf - Developper sous magento : bonnes pratiques apres 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

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

Préalable : architecte != développeur

1 on ne peut pas exiger d’un développeur qu’il fasse le travail de l’architecte

2 mais de fait, la composition des équipes ne laisse bien souvent pas le choix

3 le respect de ce principe assure maintenabilité, performance et sécurité

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

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/*

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

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

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

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

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

n° 1 : modularité et adhérence faible

3 •  backend model ? •  attribut ? •  event & observer ?

connaître les techniques existantes et justifier de la méthode adaptée

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

n° 1 : modularité et adhérence faible

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

n° 1 : modularité et adhérence faible

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

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

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

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

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

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

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

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, …)

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

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

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

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é

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

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, …

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

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 !

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

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

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

n° 5 : sécurité

1 identifier et utiliser les paramètres de sécurité natifs

•  protection admin •  https •  droits admin & API

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

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 !

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

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 ?

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

n° 6 : indexes et autres points avancés

save EAV 4%

cleanCache BS 8%

cleanCache AS 8%

indexation 76%

divers 4%

$product-­‐>save();  save EAV

cleanCache BS

cleanCache AS

indexation

divers

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

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.

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

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. » !

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

Magento 2 ?

migration automatisée partielle prochaines versions 1.x (optims) 1.x maintenue au moins 2 ans

Release prévue pour 2014 …2015 ?

Q2 2012 Q4 2012 Q1 2013 Q4 2013

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

blog.academy-ecommerce.com www.academy-ecommerce.com [email protected] Twitter @ecommerce_acdmy Formation. Conseil. Audit.

Le centre Magento de référence.  

Merci ! @expert_magento

blog.academy-ecommerce.com