View
1.281
Download
1
Category
Preview:
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.
Citation preview
DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 6 ANS DE RECUL
Gabriel BOUHATOUS Expert Magento @ e-Commerce Academy
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
La spécificité de Magento en 1 chiffre
1.207.032 nombre de lignes de code Magento Enterprise 1.12
1 Les bonnes connaissances
2
3 Les bonnes pratiques
DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 6 ANS DE RECUL
Les bons outils
1 Les bonnes connaissances
2 Les bons outils
3 Les bonnes pratiques
DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 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
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é
1 Les bonnes connaissances
2 Les bons outils
3 Les bonnes pratiques
DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 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
1 Les bonnes connaissances
2 Les bons outils
3 Les bonnes pratiques
DÉVELOPPER SOUS MAGENTO BONNES PRATIQUES APRÈS 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é
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 • backend model ? • attribut ? • event & observer ?
connaître les techniques existantes et justifier de la méthode adaptée
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%
cleanCache BS 8%
cleanCache AS 8%
indexation 76%
divers 4%
$product-‐>save(); save EAV
cleanCache BS
cleanCache AS
indexation
divers
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 ?
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
blog.academy-ecommerce.com www.academy-ecommerce.com contact@academy-ecommerce.com Twitter @ecommerce_acdmy Formation. Conseil. Audit.
Le centre Magento de référence.
Merci ! @expert_magento
blog.academy-ecommerce.com
Recommended