SlideShare ist ein Scribd-Unternehmen logo
1 von 48
AGENDA
 Shopware 4.1
 Refaktorierung
 Ausblick
SHOPWARE 4.1
TECHNISCHE ÄNDERUNGEN
 Weniger komplexe Queries im Frontend
 Queries skalieren besser
 Aufteilung der Lese- und Schreibzugriffe
OPTIMIERTE KATEGORIESTRUKTUR
 Artikelmodul - Daten werden asynchron nachgeladen
 Artikel - Modul ist sofort verfügbar
 Split-View in Artikel-Übersicht
NACHLADEN DER ARTIKELDATEN
NACHLADEN DER ARTIKELDATEN
PASSWORT-HASHING
PASSWORT-HASHING
 Probleme
 MD5 + SALT veraltetes Verfahren
 Passwort Übernahme bei der Shopmigration auf Shopware
PASSWORT-HASHING
 Lösung neuer Login Algorithmus
 Automatisch Umstellung auf bcrypt für sicheres Passworthashing
 Live Migration der Passwörter
 Passwörter können bei Shopmigration übernommen werden
 Über Plugin erweiterbar auf spezielle Algorithmen
PASSWORT-HASHING
RANDOM-GENERATOR
RANDOM-GENERATOR
RANDOM-GENERATOR
// Returns random integer
ShopwareComponentsRandom::getInteger(5, 99);
// Generate random string the following charlist: a-zA-Z0-9
ShopwareComponentsRandom::getAlphanumericString(20);
// Generate random float between 0..1
ShopwareComponentsRandom::getFloat();
SICHERE DISPATCH-EVENTS
SICHERE DISPATCH EVENTS
$this->subscribeEvent(
        'Enlight_Controller_Action_PostDispatch',
        'onPostDispatchFrontend'
);
public function onPostDispatchFrontend(Enlight_Event_EventArgs $args)
{
        $view    = $args->getSubject()->View();
        $request = $args->getSubject()->Request();
        if (!$request->isDispatched()
            || $response->isException()
            || $request->getModuleName() != 'frontend'
            || !$view->hasTemplate() ) {
            return;
         }
         [...]
}
SICHERE DISPATCH EVENTS
$this->subscribeEvent(
        'Enlight_Controller_Action_PostDispatchSecure_Frontend ',
        'onPostDispatchFrontend'
);
public function onPostDispatchFrontend(Enlight_Event_EventArgs $args)
{
       [...]
}
SICHERE DISPATCH EVENTS
 Enlight_Controller_Action_PreDispatch_{Modulname}
 Enlight_Controller_Action_PostDispatch_{Modulname}
 Enlight_Controller_Action_PostDispatchSecure
 Enlight_Controller_Action_PostDispatchSecure_{Modulname}
 Enlight_Controller_Action_PostDispatchSecure_{Modulname}_{Controllername}
CACHE-ORDNER
CACHE-ORDNER
 Refaktorierung der generierten Daten
 Caches
 Meta-Daten
 Proxies
PERFORMANCE
PERFORMANCE
 Frontend
 Generelle Query Optimierungen
 Optimierung Kategorie-Datenbank-Struktur
 Stabiler HTTP-Cache
PERFORMANCE
 Frontend
 Aggregierte Zwischenspeicherung der Marketingdaten
 Vollständige Auslagerung der SEO und Such –Indexgenerierung
PERFORMANCE
 Backend
 Pre-Loader für Backend-Module
 Asynchrones Nachladen von Modul-Content
 Optimierung HTTP-Requests
 Optimierung der Backend-Ressourcen
 Modul-Optimierung für große Datenmengen
PERFORMANCE
PERFORMANCE
PERFORMANCE
PERFORMANCE
MUSS MEIN PLUGIN ANGEPASST WERDEN?
MUSS MEIN PLUGIN ANGEPASST WERDEN?
NEIN!
MUSS MEIN PLUGIN ANGEPASST WERDEN?
Es sei denn...
MUSS MEIN PLUGIN ANGEPASST WERDEN?
A. Ja, wenn Sie einen neuen Tab im Artikelmodul hinzufügen
B. Ja, wenn Sie direkt per SQL auf die Kategorie-Tabellen zugreifen
UPGRADE – GUIDE
Upgrade -GUIDE STEHT BEREIT!
REFAKTORIERUNG
REFAKTORIERUNG
SYMFONY 2
SYMFONY 2
 Warum Symfony 2?
 Code-Qualität / Dokumentation / Community
 Shopware 4 verwendet Symfony 2 bereits
 http-Cache
 Model-Validierung
 Bepado wurde komplett auf Basis Symfony 2 entwickelt
REFAKTORIERUNG
 Sukzessives Vorgehen
 Zuerst Basket / Order Objekte
 Plugin-Hersteller & Partner erhalten frühzeitig Zugriff auf RC
 Der bestehende Code wird mit Unit-/Integrations-Tests abgesichert
 Sofern möglich werden die bestehenden Core-Klassen Events übernommen
AUSBLICK
DEVELOPER-TOOLBAR
DEVELOPER TOOLBAR
BACKEND STANDARD-KOMPONENTEN
BACKEND STANDARD KOMPONENTEN
 Vorgefertigten ExtJS Standardkomponenten
 Reduzierung des Entwicklungsaufwandes
 Leichte Erweiterbarkeit der Standardkomponenten
 Neuer Default PHP Backend Controller mit den vorgefertigten CRUD
Methoden
RESPONSIVE - TEMPLATE
RESPONSIVE-TEMPLATE
 Ein Template für alle Geräte
 Gleicher Seitenaufbau und Interface
 Keine Installation notwendig
AUSBLICK
 Update auf ExtJS 4.2.0
 ~ 20-25 % höhere Rendering-Performance Backend
 Performance-Verbesserungen & Erweiterung Rest-API
 Alte API wird in der 4.3.0 entfernt
 Entwickler-Goodies ab 4.2.0 –
 z.B. Events als Konstanten vordefinieren für Auto-Vervollständigung etc.
AUSBLICK
Dev roadmap-scd clean

Weitere ähnliche Inhalte

Andere mochten auch

IBP_Whitepaper_Nach der Pflicht die Kür - Verkaufen im Customer Service
IBP_Whitepaper_Nach der Pflicht die Kür - Verkaufen im Customer ServiceIBP_Whitepaper_Nach der Pflicht die Kür - Verkaufen im Customer Service
IBP_Whitepaper_Nach der Pflicht die Kür - Verkaufen im Customer ServiceIskander Business Partner GmbH
 
Trastornos del sueño en estudiantes de medicina
Trastornos del sueño en estudiantes de medicinaTrastornos del sueño en estudiantes de medicina
Trastornos del sueño en estudiantes de medicinaHillary Arres
 
Microsoft Kompendium IT-Compliance und -Security
Microsoft Kompendium IT-Compliance und -SecurityMicrosoft Kompendium IT-Compliance und -Security
Microsoft Kompendium IT-Compliance und -SecurityMichael Hettich
 
Aparato Digestivo de Ser Humano
Aparato Digestivo de Ser HumanoAparato Digestivo de Ser Humano
Aparato Digestivo de Ser HumanoDalther
 
Los perifericos
Los perifericosLos perifericos
Los perifericosfloralba22
 
Redes sociales yazmin yalico - 5to
Redes sociales   yazmin yalico - 5toRedes sociales   yazmin yalico - 5to
Redes sociales yazmin yalico - 5toyazmin11295
 
Reporte expocicion (1)
Reporte expocicion (1)Reporte expocicion (1)
Reporte expocicion (1)Rut Cruz S
 

Andere mochten auch (16)

Colina
ColinaColina
Colina
 
IBP_Whitepaper_Nach der Pflicht die Kür - Verkaufen im Customer Service
IBP_Whitepaper_Nach der Pflicht die Kür - Verkaufen im Customer ServiceIBP_Whitepaper_Nach der Pflicht die Kür - Verkaufen im Customer Service
IBP_Whitepaper_Nach der Pflicht die Kür - Verkaufen im Customer Service
 
Pronóstico Climatico Campaña 12/13
Pronóstico Climatico Campaña 12/13Pronóstico Climatico Campaña 12/13
Pronóstico Climatico Campaña 12/13
 
Trastornos del sueño en estudiantes de medicina
Trastornos del sueño en estudiantes de medicinaTrastornos del sueño en estudiantes de medicina
Trastornos del sueño en estudiantes de medicina
 
Microsoft Kompendium IT-Compliance und -Security
Microsoft Kompendium IT-Compliance und -SecurityMicrosoft Kompendium IT-Compliance und -Security
Microsoft Kompendium IT-Compliance und -Security
 
Aparato Digestivo de Ser Humano
Aparato Digestivo de Ser HumanoAparato Digestivo de Ser Humano
Aparato Digestivo de Ser Humano
 
eqm andres felipe
eqm andres felipe eqm andres felipe
eqm andres felipe
 
Plaza de la Concordia
Plaza de la ConcordiaPlaza de la Concordia
Plaza de la Concordia
 
Homofobia
HomofobiaHomofobia
Homofobia
 
Circular no. 30
Circular no. 30Circular no. 30
Circular no. 30
 
Los perifericos
Los perifericosLos perifericos
Los perifericos
 
Bebitos chic
Bebitos chicBebitos chic
Bebitos chic
 
Quienes somos daniel y paola
Quienes somos daniel y paolaQuienes somos daniel y paola
Quienes somos daniel y paola
 
Expo hardware (1)
Expo hardware (1)Expo hardware (1)
Expo hardware (1)
 
Redes sociales yazmin yalico - 5to
Redes sociales   yazmin yalico - 5toRedes sociales   yazmin yalico - 5to
Redes sociales yazmin yalico - 5to
 
Reporte expocicion (1)
Reporte expocicion (1)Reporte expocicion (1)
Reporte expocicion (1)
 

Ähnlich wie Dev roadmap-scd clean

SCD13: Template Startup
SCD13: Template StartupSCD13: Template Startup
SCD13: Template Startupshopware AG
 
W-JAX 2013 Spring Batch - Performance und Skalierbarkeit
W-JAX 2013 Spring Batch - Performance und SkalierbarkeitW-JAX 2013 Spring Batch - Performance und Skalierbarkeit
W-JAX 2013 Spring Batch - Performance und Skalierbarkeittobiasflohre
 
Frontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 BestellsystemeFrontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 BestellsystemeNico Steiner
 
TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)Marcus Schwemer
 
Arcavias on TYPO3 camp Stuttgart
Arcavias on TYPO3 camp StuttgartArcavias on TYPO3 camp Stuttgart
Arcavias on TYPO3 camp Stuttgartarcavias
 
TYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der ZukunftTYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der ZukunftJochen Rau
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenBjoern Reinhold
 
Making AdWords Scripts Scale
Making AdWords Scripts ScaleMaking AdWords Scripts Scale
Making AdWords Scripts ScalePeakAce
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch CachingAOE
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch CachingAOE
 
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Peter Ramm
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdAOE
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Springdenschu
 
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...Mayflower GmbH
 
High Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudHigh Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudAOE
 
Wordpress on steroids
Wordpress on steroidsWordpress on steroids
Wordpress on steroidsBlogwerk AG
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und ReflectionStefan Marr
 
PHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-AnsätzePHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-AnsätzeRalf Lütke
 
APEX 5.1 Ui design crashkurs
APEX 5.1 Ui design crashkursAPEX 5.1 Ui design crashkurs
APEX 5.1 Ui design crashkursSteven Grzbielok
 

Ähnlich wie Dev roadmap-scd clean (20)

SCD13: Template Startup
SCD13: Template StartupSCD13: Template Startup
SCD13: Template Startup
 
W-JAX 2013 Spring Batch - Performance und Skalierbarkeit
W-JAX 2013 Spring Batch - Performance und SkalierbarkeitW-JAX 2013 Spring Batch - Performance und Skalierbarkeit
W-JAX 2013 Spring Batch - Performance und Skalierbarkeit
 
Frontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 BestellsystemeFrontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 Bestellsysteme
 
TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)
 
Arcavias on TYPO3 camp Stuttgart
Arcavias on TYPO3 camp StuttgartArcavias on TYPO3 camp Stuttgart
Arcavias on TYPO3 camp Stuttgart
 
TYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der ZukunftTYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der Zukunft
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
Making AdWords Scripts Scale
Making AdWords Scripts ScaleMaking AdWords Scripts Scale
Making AdWords Scripts Scale
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch Caching
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch Caching
 
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
 
.NET zu .NET Core
.NET zu .NET Core.NET zu .NET Core
.NET zu .NET Core
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Spring
 
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
 
High Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudHigh Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der Cloud
 
Wordpress on steroids
Wordpress on steroidsWordpress on steroids
Wordpress on steroids
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und Reflection
 
PHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-AnsätzePHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-Ansätze
 
APEX 5.1 Ui design crashkurs
APEX 5.1 Ui design crashkursAPEX 5.1 Ui design crashkurs
APEX 5.1 Ui design crashkurs
 

Dev roadmap-scd clean

Hinweis der Redaktion

  1. A. Ja, wenn Sie einen neuen Tab im Artikelmodul hinzufügen B. Ja, wenn Sie direkt per SQL auf die Kategorie-Tabellen zugreifen
  2. A. Ja, wenn Sie einen neuen Tab im Artikelmodul hinzufügen B. Ja, wenn Sie direkt per SQL auf die Kategorie-Tabellen zugreifen