43
Ibiza June 4 th – 7 th 2011

Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Embed Size (px)

Citation preview

Page 1: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Ibiza June 4th – 7th 2011

Page 2: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Magento Developers Paradise

Magento 2 Project Plans, Ideas and State

Dmitriy SorokaSystem Architect

Page 3: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Talk Structure

• Dates, ScopeAmbiguity

• Main directionsGoals

• What will be addedNew Functionality

• Research resultsR&D

• Where we areState

Page 4: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

AMBIGUITY AROUND THE PROJECTRelease Date, Framework, Rewrite or Refactoring, JavaScript …

Page 5: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Technology Changes

•PHP 5.3

•ZF 1.x

PHP•MySQL•Oracle•MSSQL

RDBMS

•JQueryJavaScript

Page 6: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Complete Rewrite or Refactoring?

RewriteBetter architecture

Latest technologies

Experience

RefactoringProcess improvements

Improvements of existing functionality

Developing new features

Page 7: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Release Date and Scope

• Magento 2 will have almost all features of Magento 1.x

• Release scheduled from the middle to the end of 2012

Page 8: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

PROJECT GOALSQuality, Performance, Scalability, Security, Modularity, WEB API, RDBMS’s

Page 9: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Clear Process and Transparency

• A clear roadmap• Publicly available development

and collaboration tools• A public code repository

Page 10: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Improved product quality

• Automated testing– Unit, Integration, Functional, Performance etc.

• Continuous integration• Stable upgrade

Page 11: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Improved product performance and scalability

• Optimization of page load time• Optimization of page

generation time• Vertical and horizontal

scalability • Automated performance

tests

Page 12: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Improved product security

• Server side validation for all data input• Development process should prevent

any vulnerability from OWASP top 10 vulnerabilities list

Page 13: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Truly Modular Product

• Loose coupling principles• Module enabling/disabling• Modularity on view level• Improved backend modularity

Page 14: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Improved WEB API

• SOAP• XML-RPC• JSON-RPC• REST

Page 15: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Support of multiple RDBMS's

• MySQL• Oracle• MSSQL• PostgreSQL

Page 16: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Simplified Customization Process

• Development of a new functionality• Customization of the existing functionality• Replacing and disabling

of the existing functionality

Page 17: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Improved Multiple Languages support

• Data entry per language• Separation of frontend and backend

translations

Page 18: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Decreased Learning Curve

• Code documentation• Documentation integrated with

development process

Page 19: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

NEW FUNCTIONALITYGUI Design Editor, Templates Editor, Upgrade Preview

Page 20: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

• Managing page types• Managing page

layouts• Positioning page

blocks• Customizing the

blocks look and feel

GUI Design Editor

Page 21: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Templates Editor

one_template.phtml

abc.html

footer.phtml

header.phtml

Page 22: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Safe upgrade between versions

• Upgrade in preview mode– Separate DB for upgrade preview– Dedicated code base

• Upgrade confirmation step• Latest version backup option

Page 23: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

RESEARCH & DEVELOPMENTModels, EAV, Modularity, Themes fallbacks, View …

Page 24: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Models architecture

• Encapsulation• Relations between objects

Page 25: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Modularity

Module Part Location

Definition file app/etc/modules/<module>.xml

Classes, configuration app/code/<pool>/<space>/<module>/*

Translations app/locale/<code>/<module>.csv

Templates and layouts app/design/<area>/<interface>/<theme>/*

Skins skin/<area>/<interface>/<theme>/*

app/code/<pool>/<space>/<module>/

Page 26: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Component - group of modules with high code coupling.

Conditional dependency outside of component will allow to use just particular components

Modules coupling

Catalog

BundleRule

SearchReview

CMS

PageWidget

Block

Customer

AccountSegment

Balance

Sales

PaymentOrder

Report

Checkout

CartShipping

PriceRuleTax

Page 27: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

View Architecture

• Templates standardization• Themes modularity• Communication with models

Page 28: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Themes Fallback

My Store Theme

Summer Theme

Independence Day

Customization for the theme

Special Day

Winter Theme New Year Theme

One more theme

Page 29: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Conflicts Between Modules

• Multiple extends of one class• Unknown potential conflicts• Database schema modification

Page 30: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

And more

• Routing• Controllers level• Caching• Translations• Product prices• HTML page semantic• …

Page 31: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

MAGENTO 2 STATE

Page 32: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

• Scrum• Acceptance criteria

– Tests– Documentation– Code review

Agile Software Development

Page 33: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Atlassian Software Development Tools

JIRA issues tracker

Confluence documentation

Crucible code review

Fisheye repository browser

Bamboo continuous integration

Page 34: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

• Unit testing• Integration testing• Functional testing• Performance testing

Automated Testing

Page 35: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

• Unit tests• Integration tests on

– MySQL– Oracle – MSSQL

• Code inspection

Continuous Integration

Page 36: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

• Tracking calls stack (tree)

• Various output formats:– HTML– CSV– Firebug

• Output filtering

Magento_Profiler

Page 37: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

• Module as last level of fallback

• Module “view” folder• Skin files in module• Theme structure

Themes Modularity

Page 38: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Magento 1.x

app

errors

js

lib

media

skin

tests

tools

var

Magento 2app

dev

tests

tools

lib

pub

error

jslib

media

skins

var

Changes in File System Structure

Page 39: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Changes in Configuration

• Class path declaration

config/global/[models|resources|blocks|helpers]

• Table names declaration

config/models/[code]/ entities

• <fieldset> node

config/[area]/fieldsets – entity data migrations rules

Page 40: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Autoload

• Classes map (http://bit.ly/cYYFWX): – Absolute path to the file– No overhead of code pools– No needs in Mage_Compiler

Page 41: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Performance Improvements (~20% already)

1 rps 10 rps 30 rps

Magento 1Magento 2

Page 42: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Summary

• Goals– Transparency, modularity, quality, performance, WEB

API, documentation

• Research– Models, EAV, components, view

• State– Process, tools, tests, base theme modularity,

performance

Page 43: Ibiza June 4 th – 7 th 2011. Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect

Q&A

[email protected]