Webinar Recap: Official Magento 2 Development Update

·

·

It is still 2 weeks until Christmas, but after yesterday’s Magento 2 Development Update Webinar and today’s release of Magento v1.8.1.0 it already feels like Christmas eve. Some of you might have hoped that Magento 2 would be released in 2014, but if you read on, we will disclose some never before revealed, highly classified information by one of the Magento community’s finest developers, Tim Bezhashvyly.

This article does not aim to summarize yesterday’s webinar in all details, but only gives a rough summary of Magento 2 in general and then addresses one area that, as a frontend developer, struck me most, i.e. theme customizations. Another area covered in this article is test driven development (TDD) in Magento 2, which is of interest to both frontend and backend developers: some pretty amazing figures that show why Magento in gerenal has evolved to the next level of maturity in terms of enterprise software and code quality.

Summary

Here a list of some of the advantages of the Magento 2 programming approach and the Magento 2 platform.

  • Less overall code coupling
  • Clear and organized dependencies
  • Enables testing
  • Enables using well-known OOP patterns
  • Enables rubust and compact customization
  • Enables Aspect-Oriented Programming (AOP)

Theme Customizations

Inheritence will work differently in Magento 2, which means that you can define your own fall back mechanism.

Magento 2 Theme Customizations: Inheritance

  • Simplified concepts: only themes instead of skins and packages
  • Most of the files in themes are per module
  • Unlimited levels of theme fallback
  • Using language context for localization

Magento 2 Theme Customizations: Languages

Layout Customizations

The following changes will result in 80% less code in layout XML-files:

  • Contents of all layout XML-files are completely revisted
  • The are broken down into smaller pieces: 1 handle = 1 layout file
  • Instead of overriding, the «melding» of layouts is by default
  • Considerable reduction of copy paste

Test Driven Development

The Magento 1 Test Automation Framework (TAF) will not be used in Magento 2. Instead, there are already thousands of tests available in the Magento 2 Github repository and there will be many more once Magento 2 has been released.

Integration Tests

  • Location: dev/tests/integration
  • PHPUnit
  • Framework features: Tests isolation; Fixtures for database and configuration
  • 2,500 tests, 25 minutes

Unit Tests

  • Location: dev/tests/unit
  • PHPUnit
  • Unit testing became possible due to dependency injection
  • 5,500 tests, 11 seconds

JavaScript Unit Tests

  • Location: dev/tests/js
  • JsTestDriver, browser
  • 170 tests, 2 secondes

Static Tests

  • Mess Detector – code complexity
  • Code Sniffer – code style
  • Copy/Paste Detector – code duplicator
  • JSHint – JavaScript code style

Integrity/Health Checks

Non-Existing Files

<img src="<?php echo $this->getViewUrl('new_year_2014.png') ?>" />

Typos

<observer instance="Magneto\Observer" mehtod="makeIt" /> 

Wrong Configuration

<module name="Magento_Catalog">
  <depends module="Magento_Cms" />
</module>
<module name="Magento_Cms">
  <depends module="Magento_catalog" />
</module>

Static Tests

  • Location: dev/tests/static
  • PHPUnit
  • ~120,000 tests, 1 hour

Performance Tests

  • Control of the system response time
  • Location: dev/tests/performance
  • Typical scenarios: Adding product to cart; Admin login; Checkout; Data viewing for bigger stores, etc.
  • 2 hours

Functional Tests

This is still work in progress.

Magento 2 Release Date?

So finally, here’s Tim’s eye-opening revelation from a highly classified tweet:

https://twitter.com/tim_bezhashvyly/status/410699714556739584

But seriously: Unfortunately, there is still no exact release date for Magento 2, but the weekly Github development updates will be continued until the team is more confident about giving a definite release date. They are using agile methods like 2 week Scrum sprints to steadily progress to a more and more complete version.

I can actually understand from my own development and project management experience that it might be still too early to give any exact dates for the final release of Magento 2, but the statement in yesterday’s webinar that no roadmap will been made public, either, left sort of a bitter aftertaste. There is obviously some goodwill towards the developer community, but Magento Inc. (and/or eBay?)  should be much more open to benefit from real open source developer community synergies.

Magento 2 Development Update YouTube Recording