Retrouvez le support de présentation utilisé par notre expert Magento, Gabriel Bouhatous, lors de la conférence que l'e-Commerce Academy a tenu sur l'édition 2014 de la MageConf.
6. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
250k!
• sites Magento en production
• 30% du top 100k Alexa
MAGENTO 2!
M A G E N T O 1 . x : c o n t e x t e
6.000!
• modules disponibles sur Magento Connect
• ... % de modules fiables/qualitatifs...
MAGENTO
aujourd’hui ?
7. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 1 . x : c o n t e x t e
Mais surtout…!
7 années de
développement!
• 2007 – 2014
9. MAGENTO 2!
M A G E N T O 2 : p o u rq u o i u n e s i l o n g u e a t t e n t e ?
« The platform is
mature enough
when it’s requiring
a new major
version. »
Yoav KUTNER !
CTO d’origine!
10. MAGENTO 2!
M A G E N T O 2 : p o u rq u o i u n e s i l o n g u e a t t e n t e ?
11. MAGENTO 2!
M A G E N T O 2 : p o u rq u o i u n e s i l o n g u e a t t e n t e ?
12. MAGENTO 2!
M A G E N T O 2 : p o u rq u o i u n e s i l o n g u e a t t e n t e ?
13. Le rachat par eBay a occasionné :!
• une réorganisation des équipes
• le départ du CTO & de l’architecte vers OroCRM
• une tentative d’intégration dans X.Commerce
• et finalement une ré-allocation des ressources X.Commerce vers Magento 2
MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 2 : p o u rq u o i u n e s i l o n g u e a t t e n t e ?
15. Même sans le retard lié au rachat :!
• une fois la solution adoptée à large échelle,
tout changement majeur est impossible
• l’éditeur est contraint de garantir
une rétrocompatibilité sur la version majeure
MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 2 : p o u rq u o i u n e s i l o n g u e a t t e n t e ?
16. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 2 : p o u rq u o i u n e s i l o n g u e a t t e n t e ?
• Magento 2.x permet de repartir sur de nouvelles bases
sans devoir garantir la rétrocompatibilité
• tous les développements et thèmes 1.x
sont donc à refaire suivant les nouveaux principes 2.x
17. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
Mais cette attente
est finalement
une très bonne chose!
MAGENTO 2!
M A G E N T O 2 : p o u rq u o i u n e s i l o n g u e a t t e n t e ?
18. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 2 : p o u rq u o i u n e s i l o n g u e a t t e n t e ?
• cette longue période de « gestation » a permis aux dévs.
la liberté d’expérimenter jusqu’à aboutir à des solutions matures
• exemple avec le moteur de template Twig
implémenté dans dev44,
amélioré dans dev45,
et finalement supprimé dans dev49
19. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
« Good things take time.
Great things take a long
time. »
(et ce n’est pas moi qui le dit…)
MAGENTO 2!
M A G E N T O 2 : p o u rq u o i u n e s i l o n g u e a t t e n t e ?
21. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : t r a n s p a re n c e
• le suivi et les contributions sont désormais possibles
directement via github.com/magento/magento2
mais surtout, elles sont intégrées voire enrichies
ex. : filtre IP sur la maintenance
soumis par Tim « Enterprise Killer » Bezhashvyly
• des webinaires et une documentation technique
mais qui reste à remettre à jour (2012 > 2014)
(attention, une bonne partie de la documentation
d’avant mi-2014 est obsolète !)
22. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
« Do we have a roadmap ?
Yes, we have a roadmap. »
Will you share it with us ?!
« No, we won’t share it with you.
Check Github. »
MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : t r a n s p a re n c e
24. MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : t e c h n o l o g i e s
ZF1 (ZF2 ?)
Côté serveur!
25. MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : t e c h n o l o g i e s
ZF1 (ZF2 ?)
Côté serveur!
26. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : t e c h n o l o g i e s
Côté client!
• dans la lignée de Magento CE 1.9 et EE 1.14, Magento 2 fournit un blank
theme responsive, il s’agit de RWD « mobile-first approach »
• ce blank theme est basé sur HTML5 et CSS 3
• jQuery devient le framework JS natif
la fin des doubles implémentations, lourdes, jQuery + prototype ?
• les scripts associés sont mis à jour, exemple : validation.js avec html5
avant : <input class="required-entry validate-email anotherclass" [...] />
après : <input data-validate="{required:true, 'validate-email':true}" [...] />
27. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : t e c h n o l o g i e s
Côté client!
• implémentation de RequireJs, gestion de dépendances
entre composants JS permet in fine des chargements
« à la demande » sur une home : 4 JS dans le html,
le reste en asynchrone attention au total : 46 sur une
alpha104 en developer mode
• LESS CSS (ou SASS), langage css dynamique
simplifie la maintenance réduit le poids des feuilles de style
• les ressources de prod sont désormais à « déployer »
dev/tools/Magento/Tools/View/deploy.php
30. MAGENTO 2!
S é c u r i t é
• Structure renforcée, répertoire « pub » dédié
répertoires var et app hors du répertoire public
• var/log : system.log et exception.log
• var/backups
• fichiers clients dans /var/export et import
• app/etc/local.xml
• Sécurité renforcée par des pratiques
conformes Top 10 OWASP
32. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
Gestion du cache & FPC!
• le full page cache devient natif en CE :
• interne via Redis (ou FileSystem, ou…)
• externe via Varnish
• gestion de cache public vs. privé : en FPC (Ajax) comme avec Varnish (ESI)
pour délivrer un haut % de pages via le FPC
• chaque MagentoFrameworkViewElementAbstractBlock (anciennement
Mage_Core_Block_Template) définit $_isScopePrivate
MagentoPageCache « gère le reste »
33. MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
34. MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
35. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
36. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
37. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
Gestion du cache & FPC!
• logique d’invalidation du cache « fine », mais améliorable
pas de correction sur les tags liés au layout, c’est même pire
• techniquement, tout était déjà possible et/ou fait en 1.x (Turpentine, NitroGento, ...)
mais l’intégration native en 2.x encouragera l’adoption
38. save EAV
4%
cleanCache BS
8%
cleanCache AS
8%
indexation
76%
divers
4%
MAGENTO2!
MAGENTO1.xVs.MAGENTO2.x:performances
Sauvegarde produit
lente ?!
$product->save();!
save EAV
cleanCache beforeSave
cleanCache afterSave
indexation
divers
39. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
Gestion des indexes!
• tous les nouveaux indexes EE 1.13 deviennent natifs en CE
• les nouveaux indexes sont (à nouveau) refactorisés
• performances de ré-indexation : conditions de test insuffisantes
pour faire une comparaison fiable (plus rapide mais pas
forcément grâce au refactoring des indexes, plutôt grâce aux
changements globaux dans la structure de M2)
• testez avec dev/shell/indexer.php, qui indique les temps en natif
40. MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
Gestion des indexes!
• l’indexation partielle devient native, exemple pour un produit :
MagentoCatalogModelProduct::_afterSave exécute
MagentoCatalogModelProduct::reindex (publique)
• l’indexation manuelle est remplacée par l’indexation
asynchrone - via cron - ou à la sauvegarde
• à date, officiellement, pas de plan d’alternative à EAV
• techniquement, tout cela était déjà possible en 1.x
mais l’intégration native en 2.x limitera le spécifique
41. MAGENTO 2!
M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
Performance toolkit!
• une suite de générateurs pour
simuler des volumes S/M/L/XL
(stores, products, customers, cart & catalog price rules ...)
dans dev/tools/performance-toolkit/generate.php
• une suite de tests basés sur Jmeter pour
mesurer et suivre les performances
• permet en natif de valider, en build puis run,
la bonne performance de comportements clés :
ajout panier, recherche, checkout, ...
MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
43. • Magento 1.x était modulaire « pour l’époque » mais finalement :
des adhérences fortes existent : mauvais pour les perfs, l’extensibilité
(et difficilement testable)
• Magento 2.x l’est théoriquement « encore +, encore mieux »
• Magento 2 suit les principes de « SOLID », « 5 principes
censés apporter une ligne directrice permettant le
développement de logiciel plus fiable et plus robuste » (Wikipedia)
1. Single responsibility
2. Open-closed
3. Liskov substitution
4. Interface segregation
5. and Dependency inversion
MAGENTO 2!
C o n c e p t s d e d é v e l o p p e m e n t
MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
44. MAGENTO 2!
C o n c e p t s d e d é v e l o p p e m e n t
• S : « Single responsibility principle »
Responsabilité unique : « une classe doit avoir une et une seule responsabilité »
• O : « Open/closed principle »
Ouvert/fermé : « une classe doit être ouverte à l'extension, mais fermée à la
modification »
• L : « Liskov Substitution Principle »
Substitution de Liskov : « une classe doit pouvoir être remplacée par une instance
d'un de ses sous-types, sans modifier la cohérence du programme »
• I : « Interface Segregation Principle »
Ségrégation des interfaces : « préférer plusieurs interfaces spécifiques pour
chaque client plutôt qu'une seule interface générale »
• D : « Dependency Investion Principle »
Inversion des dépendances : « il faut dépendre des abstractions, pas des
implémentations »
Cet instant de bingo blabla vous est offert par
fr.wikipedia.org/wiki/SOLID_(informatique)
MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
45. MAGENTO 2!
C o n c e p t s d e d é v e l o p p e m e n t
Parmi les conséquences sur les changements de concepts de
développement :
• plus de classe finale Mage : Magento_ObjectManager
• injection de dépendances pour pallier les « limites » des rewrites
• intercepteurs pour « remplacer » les events
• couche service pour l’ensemble de l’application (vues ET Api)
Et « accessoirement » :
• utilisation des namespaces (php 5.3)
MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
48. MAGENTO 2!
C o n c e p t s d e d é v e l o p p e m e n t
Catalog
Configurable
Product
Grouped
Product
Layered
Navigation
Bundle
(1.x)
Downloadable
(1.x)
Checkout
Checkout
Agreements
Multi
Shipping
49. refactoring de
la gestion des
prix
vues dans les
modules
widget grid
serializer (Grid
data via
layout)
code obsolète
supprimé
config XML
découpée en
mutiples *.xml,
moins lourds
et validés par
XSD
MAGENTO 2!
C o n c e p t s d e d é v e l o p p e m e n t
50. MAGENTO 2
C o n c e p t s d e d é v e l o p p e m e n t
fallback
illimité
validation
XML des
layouts
merge
partiel des
layouts
1 page-
action = 1
fichier de
layout
Magento UI
Library
62. MAGENTO 2
C o n c e p t s d e d é v e l o p p e m e n t
• bref, avec Magento 2,
théoriquement, tout est « plus mieux »
théoriquement, tout est « plus simple »
• mais aussi plus compliqué ?
namespaces php 5.3
concepts techniques « opposés »à la 1.x
concepts techniques « récents » pour php
risque de sur-modularité
MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
63. MAGENTO 2
C o n c e p t s d e d é v e l o p p e m e n t
• constat :
pas franchement plus accessible technique que la 1.x
pourrait être moins accessible compte tenu de certains prérequis
prévoyez en plus de devoir maintenir une double compétence 1.x et 2.x : exigeant
la 2.x comme la 1.x ne se laisse pas « dompter » facilement, mais la courbe
d’apprentissage sera « amortie » par un léger gain de temps sur le long-terme
MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
66. MAGENTO 2!
Q u a l i t é
• avis : la vraie nouveauté de Magento 2 est
la présence de tests automatisés
• le véritable intérêt des changements apportés
est d’avoir rendu le socle Magento 2 :
• nativement testable
• nativement testé
• donc cohérent avec le positionnement « Enterprise »
• AgileGento / TestGento ?
pratiques de réalisation de projets encouragées par Magento 2
MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
68. MAGENTO 2!
F o n c t i o n n a l i t é s
• recherche améliorée
notamment par la pondération des attributs
• Google Adwords
suivi de la conversion
• légères améliorations ergonomiques
sur la création de produits dans le backend
et… c’est tout.
pour le moment…!
MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
69. MAGENTO 2
F o n c t i o n n a l i t é s
Annoncées…!
• Editeur visuel :
edition du frontend « à la Magento Go » (mise en place puis retiré, non prioritaire)
• Editeur de template :
export, intégration, import automatique
• Mises à jour plus sûres :
sauvegarde, aperçu (DB tierce), confirmation
MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
70. MAGENTO 2!
F o n c t i o n n a l i t é s
Supposées…!
0
20
40
60
80
100
120
Import/
export
CMS Staging Reporting Recherche
Votes
Fonctionnalités les plus demandées au MLUK 2014 (extrait, sur 628 votes)
71. MAGENTO 2!
F o n c t i o n n a l i t é s
Théorie : versions « métiers »!
• avis : une autre « vraie nouveauté » de Magento 2 est
la séparation entre Produit et Logiciel
• (théorie) cela faciliterait une stratégie de :
distribution de modules / versions spécialisées
73. MAGENTO 2!
R o a d m a p & b i l a n
1
2
3
4
Décembre 2014!
Dev. Beta
Mars 2015!
Dev. RC
Mi-2015!
Merchant Beta
Fin 2015!
Merchant GA
MAGECONF
2014
–
E-‐COMMERCE
ACADEMY
« 1.x maintenue 3 ans »!
« (...) can upgrade to Magento 2 by first exporting (...)
customer records, product catalog (...) and then importing
these records into Magento 2. » (?!)
74.
75. Rejoignez-nous :
• blog.ecommerce-academy.com
• contact@ecommerce-academy.fr
• www.ecommerce-academy.fr
Gabriel BOUHATOUS
@ecommerce_acdmy | gabriel.bouhatous@ecommerce-academy.fr
Interrogez
directement
notre expert !
stand 15
Gabriel BOUHATOUS!
@expert_magento | gbo@acd.my!