430 likes | 545 Views
Ibiza June 4 th – 7 th 2011. Magento Developers Paradise. Magento 2 Project Plans, Ideas and State. Dmitriy Soroka System Architect. Talk Structure. Release Date, Framework, Rewrite or Refactoring, JavaScript …. Ambiguity Around The Project. Technology Changes.
E N D
Magento Developers Paradise Magento 2 Project Plans, Ideas and State Dmitriy Soroka System Architect
Release Date, Framework, Rewrite or Refactoring, JavaScript … Ambiguity Around The Project
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
Quality, Performance, Scalability, Security, Modularity, WEB API, RDBMS’s Project Goals
Clear Process and Transparency • A clear roadmap • Publicly available development and collaboration tools • A public code repository
Improved product quality • Automated testing • Unit, Integration, Functional, Performance etc. • Continuous integration • Stable upgrade
Improved product performance and scalability • Optimization of page load time • Optimization of page generation time • Vertical and horizontal scalability • Automated performance tests
Improved product security • Server side validation for all data input • Development process should prevent any vulnerability from OWASP top 10 vulnerabilities list
Truly Modular Product • Loose coupling principles • Module enabling/disabling • Modularity on view level • Improved backend modularity
Improved WEB API • SOAP • XML-RPC • JSON-RPC • REST
Support of multiple RDBMS's • MySQL • Oracle • MSSQL • PostgreSQL
Simplified Customization Process • Development of a new functionality • Customization of the existing functionality • Replacing and disabling of the existing functionality
Improved Multiple Languages support • Data entry per language • Separation of frontend and backend translations
Decreased Learning Curve • Code documentation • Documentation integrated with development process
GUI Design Editor, Templates Editor, Upgrade Preview New Functionality
GUI Design Editor • Managing page types • Managing page layouts • Positioning page blocks • Customizing the blocks look and feel
Safe upgrade between versions • Upgrade in preview mode • Separate DB for upgrade preview • Dedicated code base • Upgrade confirmation step • Latest version backup option
Models, EAV, Modularity, Themes fallbacks, View … Research & Development
Models architecture • Encapsulation • Relations between objects
Modularity app/code/<pool>/<space>/<module>/
Modules coupling Component - group of modules with high code coupling. Conditional dependency outside of component will allow to use just particular components Catalog Sales Bundle Search Payment Report Rule Review Order Customer CMS Checkout Account Page Block Cart PriceRule Balance Segment Widget Shipping Tax
View Architecture • Templates standardization • Themes modularity • Communication with models
Conflicts Between Modules • Multiple extends of one class • Unknown potential conflicts • Database schema modification
And more • Routing • Controllers level • Caching • Translations • Product prices • HTML page semantic • …
Agile Software Development • Scrum • Acceptance criteria • Tests • Documentation • Code review
Automated Testing • Unit testing • Integration testing • Functional testing • Performance testing
Continuous Integration • Unit tests • Integration tests on • MySQL • Oracle • MSSQL • Code inspection
Magento_Profiler • Tracking calls stack (tree) • Various output formats: • HTML • CSV • Firebug • Output filtering
Themes Modularity • Module as last level of fallback • Module “view” folder • Skin files in module • Theme structure
Changes in File System Structure Magento 1.x Magento 2 app dev tests tools lib pub error jslib media skins var app errors js lib media skin tests tools var
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
Autoload • Classes map (http://bit.ly/cYYFWX): • Absolute path to the file • No overhead of code pools • No needs in Mage_Compiler
Summary • Goals • Transparency, modularity, quality, performance, WEB API, documentation • Research • Models, EAV, components, view • State • Process, tools, tests, base theme modularity, performance
Q&A dmitriy@magento.com