SlideShare a Scribd company logo
1 of 75
Download to read offline
BECOMING
CERTIFIEDBecoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Who here has sat in
one or more Magento 1 exams?
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Who here has sat in
one or more Magento 2 exams?
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
SO LET'S NOT TAKE
THIS TOO SERIOUSLY
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Magento 1 Certificaton
!=
Magento 2 Certification
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
How so?
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Magento 1 &
Magento 2:
Questions are developed by a
Community Advisory Board
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Magento 1 &
Magento 2:
Each question is written to fit an
Exam Blueprint Objective
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Magento 1 != Magento 2:
Time frame and
Review Process
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Magento 1:
Months of online meetings and reviews
Magento 2:
One week focus group, all in one room
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Magento 1:
Rather contrived, memorization friendly
Magento 2:
Scenario based, real life, more natural
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Magento 1:
Questions about Config XML Paths and Class Names.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
The Reasoning was:
"Magento Developers with experience will have written
them countless times and know them by heart."
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
This was before Magicento existed...
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Magicento:
▸ Code generation
▸ Autocompletion
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Magento 2:
No questions about things
with IDE autocompletion
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
How do the questions look like?
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Each item has 3 Parts:
▸ The Scenario
▸ The Stem
▸ The Options
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
▸ The Scenario
Information required to choose the correct answer
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
▸ The Stem
The question
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
▸ The Options
The possible answers
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Valid answer keys:
▸ Choose 1 out of 4
▸ Choose 2 out of 4
▸ Choose 3 out of 5
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
If more than one answer has to be selected,
the number of required options is stated like this:
"Which three actions do you take? (Choose three)"
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
For questions with multiple answers,
the right number of options have to be selected and
all selected answers have to be correct.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
▸ No trick questions
▸ No “none of the above”
▸ No “all of the above”
▸ No “which of the following are true”
▸ No double negatives
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
ACTIONABLE
QUESTIONS!
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
"How do you fix the issue?"
"What actions do you take?"
"What is the effect of that code?"
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
EXAMPLE
QUESTIONBecoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
(1/2)
You are working for an extensions vendor who protects their
intellectual property by validating licenses against a license server.
Customers are complaining that running any bin/magento command is
very slow after installing one of the companies extensions.
The extension adds a command to bin/magento.
While investigating, you discover the following code in the
command class:
public function __construct($license)
{
$this->isLicenseValid = $this->validateLicense($license);
parent::__construct();
}
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
(2/2)
public function __construct($license)
{
$this->isLicenseValid = $this->validateLicense($license);
parent::__construct();
}
How do you resolve the issue?
A. Implement local license validation instead of over the internet
B. Move the validateLicense() call into the execute() method
C. Check the license at random samples instead of every time
D. Cache the validation result in the Magento config cache
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Answer:
B. Move the validateLicense() call into the execute() method
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Magento Technical Guidelines
2.3. Class constructor can have only dependency
assignment operations and/or argument validation
operations. No other operations are allowed.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Example Excerpt:
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
But why?
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Why?
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
(back to the topic of exam questions)
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
SOME QUESTIONS HAVE QUALIFIERS.
What are qualifiers?
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Qualifiers are part of the Stem:
▸ Keeping simplicity in mind ...
▸ Keeping maintainability in mind ...
▸ Keeping compatibility in mind ...
▸ Keeping testability in mind ...
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
WHAT IS THE PURPOSE OF QUALIFIERS?
They guide us to the correct answer.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Magento is flexible.
There are many ways to accomplish a goal.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
We often have to make decisions
how to implement a requirement.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
For questions with qualifiers
often more than one answer is technically correct.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Do we use ...
a preference,
a type argument configuration
or a plugin?
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Do we use ...
an ORM model
or a Api Data model?
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Do we inject ...
an interface
or a concrete implementation?
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Depending on the circumstances,
every approach could be valid.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Faster development vs. better maintainability
More upgradable code vs. more performant code
...
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
▸ lifetime of the project
▸ project budget
▸ developer skill level
▸ security considerations (internal / external access)
▸ use of third party modules
▸ desired code reuse
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Qualifiers tell us which answer to choose
for the given scenario.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Maintainability?
Probably rules out options where code is copied.
Favor answers that make changes and upgrades simpler.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Compatibility?
Rule out options with a higher
extension conflict probability.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Simplicity?
Favor expressive options using the
least number of elements.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Testability or Reusability?
Favor answers that allow replacing collaborators
with test doubles or other classes.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
EXAMPLE
QUESTIONBecoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
You need to customize the Magento_Checkout/js/proceed-to-checkout
JavaScript module.
How do you do that, keeping compatibility in mind?
A. Add a path override configuration to the requirejs-config.js
B. Add a global map alias override to the requirejs-config.js
C. Copy the file proceed-to-checkout.js to the folder
Magento_Checkout/js/ of the active frontend theme
D. Add a JavaScript mixin to the requirejs-config.js
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Answer:
D. Add a JavaScript mixin to the requirejs-config.js
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
GETTING
READY
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Study Guide
The study guide is based on the exam blueprint.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
SWIFT OTTER STUDY GUIDES
Based on the Magento U study guide
but much expanded.
The Official Technical Developer Guidelines
(ask Why?)
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Don't memorize OOP patterns and principles for the exam.
Without experience, that does more harm than good.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Better to go from first principles:
▸ What is a source code dependency?
▸ What are the consequences of a dependency?
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Deeper understanding
of the principles behind the labels.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
▸ Interfaces and the Liskov Substitution principle
▸ Coupling and Cohesion
▸ Favor Composition over Inheritance
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Familiarize yourself with
Kent Beck’s 4 rules of simple design.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
1. Passes all tests
2. Expresses intent 3. No duplication
4. Fewest possible elements
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
When a question has the qualifier
“Keeping simplicity in mind...”
apply these rules.
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
SMART
GUESSING
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
And finally...
Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
Becoming Certified - MageTitansMCR 2018

More Related Content

What's hot

Fundamentals of Extending Magento 2 - php[world] 2015
Fundamentals of Extending Magento 2 - php[world] 2015Fundamentals of Extending Magento 2 - php[world] 2015
Fundamentals of Extending Magento 2 - php[world] 2015David Alger
 
How to Install Magento 2 [Latest Version]
How to Install Magento 2 [Latest Version]How to Install Magento 2 [Latest Version]
How to Install Magento 2 [Latest Version]M-Connect Media
 
Magento 2: Modernizing an eCommerce Powerhouse
Magento 2: Modernizing an eCommerce PowerhouseMagento 2: Modernizing an eCommerce Powerhouse
Magento 2: Modernizing an eCommerce PowerhouseBen Marks
 
Imagine recap-devhub
Imagine recap-devhubImagine recap-devhub
Imagine recap-devhubMagento Dev
 
How To Install Magento 2 (updated for the latest version)
How To Install Magento 2 (updated for the latest version)How To Install Magento 2 (updated for the latest version)
How To Install Magento 2 (updated for the latest version)Magestore
 
Max Yekaterinenko - Magento 2 & Quality
Max Yekaterinenko - Magento 2 & QualityMax Yekaterinenko - Magento 2 & Quality
Max Yekaterinenko - Magento 2 & QualityMeet Magento Italy
 
Oleh Kobchenko - Configure Magento 2 to get maximum performance
Oleh Kobchenko - Configure Magento 2 to get maximum performanceOleh Kobchenko - Configure Magento 2 to get maximum performance
Oleh Kobchenko - Configure Magento 2 to get maximum performanceMeet Magento Italy
 
Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015
Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015
Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015Joshua Warren
 
Magento 2 Development
Magento 2 DevelopmentMagento 2 Development
Magento 2 DevelopmentDuke Dao
 
Magento 2 Modules are Easy!
Magento 2 Modules are Easy!Magento 2 Modules are Easy!
Magento 2 Modules are Easy!Ben Marks
 
Magento 2: New and Innovative? - php[world] 2015
Magento 2: New and Innovative? - php[world] 2015Magento 2: New and Innovative? - php[world] 2015
Magento 2: New and Innovative? - php[world] 2015David Alger
 
MidwestPHP - Getting Started with Magento 2
MidwestPHP - Getting Started with Magento 2MidwestPHP - Getting Started with Magento 2
MidwestPHP - Getting Started with Magento 2Mathew Beane
 
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarksMagento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarksYireo
 
Magento 2 Dependency Injection, Interceptors, and You - php[world] 2015
Magento 2 Dependency Injection, Interceptors, and You - php[world] 2015Magento 2 Dependency Injection, Interceptors, and You - php[world] 2015
Magento 2 Dependency Injection, Interceptors, and You - php[world] 2015Joshua Warren
 
The journey of mastering Magento 2 for Magento 1 developers
The journey of mastering Magento 2 for Magento 1 developersThe journey of mastering Magento 2 for Magento 1 developers
The journey of mastering Magento 2 for Magento 1 developersGabriel Guarino
 
Sergii Shymko: Magento 2: Composer for Extensions Distribution
Sergii Shymko: Magento 2: Composer for Extensions DistributionSergii Shymko: Magento 2: Composer for Extensions Distribution
Sergii Shymko: Magento 2: Composer for Extensions DistributionMeet Magento Italy
 
Guillaume Thibaux - Can we win the fight against performance bottlenecks? Les...
Guillaume Thibaux - Can we win the fight against performance bottlenecks? Les...Guillaume Thibaux - Can we win the fight against performance bottlenecks? Les...
Guillaume Thibaux - Can we win the fight against performance bottlenecks? Les...Meet Magento Italy
 
Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2Mathew Beane
 
Magento 2 Deployment Automation: from 6 hours to 15 minutes - Max Pronko
Magento 2 Deployment Automation: from 6 hours to 15 minutes - Max PronkoMagento 2 Deployment Automation: from 6 hours to 15 minutes - Max Pronko
Magento 2 Deployment Automation: from 6 hours to 15 minutes - Max PronkoMax Pronko
 

What's hot (20)

Fundamentals of Extending Magento 2 - php[world] 2015
Fundamentals of Extending Magento 2 - php[world] 2015Fundamentals of Extending Magento 2 - php[world] 2015
Fundamentals of Extending Magento 2 - php[world] 2015
 
How to Install Magento 2 [Latest Version]
How to Install Magento 2 [Latest Version]How to Install Magento 2 [Latest Version]
How to Install Magento 2 [Latest Version]
 
Magento 2: Modernizing an eCommerce Powerhouse
Magento 2: Modernizing an eCommerce PowerhouseMagento 2: Modernizing an eCommerce Powerhouse
Magento 2: Modernizing an eCommerce Powerhouse
 
Imagine recap-devhub
Imagine recap-devhubImagine recap-devhub
Imagine recap-devhub
 
How To Install Magento 2 (updated for the latest version)
How To Install Magento 2 (updated for the latest version)How To Install Magento 2 (updated for the latest version)
How To Install Magento 2 (updated for the latest version)
 
Max Yekaterinenko - Magento 2 & Quality
Max Yekaterinenko - Magento 2 & QualityMax Yekaterinenko - Magento 2 & Quality
Max Yekaterinenko - Magento 2 & Quality
 
Oleh Kobchenko - Configure Magento 2 to get maximum performance
Oleh Kobchenko - Configure Magento 2 to get maximum performanceOleh Kobchenko - Configure Magento 2 to get maximum performance
Oleh Kobchenko - Configure Magento 2 to get maximum performance
 
Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015
Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015
Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015
 
Magento 2 Development
Magento 2 DevelopmentMagento 2 Development
Magento 2 Development
 
Magento 2 Modules are Easy!
Magento 2 Modules are Easy!Magento 2 Modules are Easy!
Magento 2 Modules are Easy!
 
Magento 2: New and Innovative? - php[world] 2015
Magento 2: New and Innovative? - php[world] 2015Magento 2: New and Innovative? - php[world] 2015
Magento 2: New and Innovative? - php[world] 2015
 
MidwestPHP - Getting Started with Magento 2
MidwestPHP - Getting Started with Magento 2MidwestPHP - Getting Started with Magento 2
MidwestPHP - Getting Started with Magento 2
 
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarksMagento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarks
 
Magento 2 Dependency Injection, Interceptors, and You - php[world] 2015
Magento 2 Dependency Injection, Interceptors, and You - php[world] 2015Magento 2 Dependency Injection, Interceptors, and You - php[world] 2015
Magento 2 Dependency Injection, Interceptors, and You - php[world] 2015
 
The journey of mastering Magento 2 for Magento 1 developers
The journey of mastering Magento 2 for Magento 1 developersThe journey of mastering Magento 2 for Magento 1 developers
The journey of mastering Magento 2 for Magento 1 developers
 
Sergii Shymko: Magento 2: Composer for Extensions Distribution
Sergii Shymko: Magento 2: Composer for Extensions DistributionSergii Shymko: Magento 2: Composer for Extensions Distribution
Sergii Shymko: Magento 2: Composer for Extensions Distribution
 
Guillaume Thibaux - Can we win the fight against performance bottlenecks? Les...
Guillaume Thibaux - Can we win the fight against performance bottlenecks? Les...Guillaume Thibaux - Can we win the fight against performance bottlenecks? Les...
Guillaume Thibaux - Can we win the fight against performance bottlenecks? Les...
 
Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2
 
Magento 2 Deployment Automation: from 6 hours to 15 minutes - Max Pronko
Magento 2 Deployment Automation: from 6 hours to 15 minutes - Max PronkoMagento 2 Deployment Automation: from 6 hours to 15 minutes - Max Pronko
Magento 2 Deployment Automation: from 6 hours to 15 minutes - Max Pronko
 
Magento 2 development
Magento 2 developmentMagento 2 development
Magento 2 development
 

Similar to Becoming Certified - MageTitansMCR 2018

Vinai Kopp - How i develop M2 modules
Vinai Kopp - How i develop M2 modules Vinai Kopp - How i develop M2 modules
Vinai Kopp - How i develop M2 modules Meet Magento Italy
 
Modern goal tracking stratgies for the web
Modern goal tracking stratgies for the webModern goal tracking stratgies for the web
Modern goal tracking stratgies for the webMichael Freeman
 
Writing Testable Code (for Magento 1 and 2)
Writing Testable Code (for Magento 1 and 2)Writing Testable Code (for Magento 1 and 2)
Writing Testable Code (for Magento 1 and 2)vinaikopp
 
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by DefaultJS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by DefaultJSFestUA
 
SMX West 2014 - Schemas & Microdata
SMX West 2014 - Schemas & MicrodataSMX West 2014 - Schemas & Microdata
SMX West 2014 - Schemas & MicrodataBenu Aggarwal
 
Most Advanced GTM Deployment. Ever!
Most Advanced GTM Deployment. Ever!Most Advanced GTM Deployment. Ever!
Most Advanced GTM Deployment. Ever!Phil Pearce
 
How to recover from an unsuccessful SEO relaunch by activating your data (SMX...
How to recover from an unsuccessful SEO relaunch by activating your data (SMX...How to recover from an unsuccessful SEO relaunch by activating your data (SMX...
How to recover from an unsuccessful SEO relaunch by activating your data (SMX...Christopher Gutknecht
 
Schemas and Microdata
Schemas and Microdata Schemas and Microdata
Schemas and Microdata Benu Aggarwal
 
Architecture in-the-small-slides
Architecture in-the-small-slidesArchitecture in-the-small-slides
Architecture in-the-small-slidesvinaikopp
 
Yuriy Chapran: Cyber Shield - від запуску до перших клієнтів
Yuriy Chapran: Cyber Shield - від запуску до перших клієнтівYuriy Chapran: Cyber Shield - від запуску до перших клієнтів
Yuriy Chapran: Cyber Shield - від запуску до перших клієнтівLviv Startup Club
 
QSDA2022: Qlik Sense Data Architect | Q & A
QSDA2022: Qlik Sense Data Architect | Q & AQSDA2022: Qlik Sense Data Architect | Q & A
QSDA2022: Qlik Sense Data Architect | Q & APalakMazumdar1
 
International Search Summit 2013 - International Magento SEO
International Search Summit 2013 - International Magento SEOInternational Search Summit 2013 - International Magento SEO
International Search Summit 2013 - International Magento SEOSteve Lock
 
How to Maximize Revenues on Your Customer Loyalty Program using Predictive An...
How to Maximize Revenues on Your Customer Loyalty Program using Predictive An...How to Maximize Revenues on Your Customer Loyalty Program using Predictive An...
How to Maximize Revenues on Your Customer Loyalty Program using Predictive An...Tatvic Analytics
 
Extension Submission to Marketplace
Extension Submission to MarketplaceExtension Submission to Marketplace
Extension Submission to MarketplaceWagento Kangiya
 
ClojureScript in Magento 2 - PHPUGMRN
ClojureScript in Magento 2 - PHPUGMRNClojureScript in Magento 2 - PHPUGMRN
ClojureScript in Magento 2 - PHPUGMRNvinaikopp
 
Voxxed Athens 2018 - Getting real with progressive web apps in 2018
Voxxed Athens 2018 - Getting real with progressive web apps in 2018Voxxed Athens 2018 - Getting real with progressive web apps in 2018
Voxxed Athens 2018 - Getting real with progressive web apps in 2018Voxxed Athens
 
Overdose / The Left Bank / WeWork - What Does Google Want
Overdose / The Left Bank / WeWork - What Does Google WantOverdose / The Left Bank / WeWork - What Does Google Want
Overdose / The Left Bank / WeWork - What Does Google WantJason Mun
 
SOS UiComponents
SOS UiComponentsSOS UiComponents
SOS UiComponentsvinaikopp
 
Setting Up a Machine Learning Platform
Setting Up a Machine Learning PlatformSetting Up a Machine Learning Platform
Setting Up a Machine Learning PlatformChristopher Mohritz
 

Similar to Becoming Certified - MageTitansMCR 2018 (20)

Vinai Kopp - How i develop M2 modules
Vinai Kopp - How i develop M2 modules Vinai Kopp - How i develop M2 modules
Vinai Kopp - How i develop M2 modules
 
Modern goal tracking stratgies for the web
Modern goal tracking stratgies for the webModern goal tracking stratgies for the web
Modern goal tracking stratgies for the web
 
Writing Testable Code (for Magento 1 and 2)
Writing Testable Code (for Magento 1 and 2)Writing Testable Code (for Magento 1 and 2)
Writing Testable Code (for Magento 1 and 2)
 
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by DefaultJS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
 
SMX West 2014 - Schemas & Microdata
SMX West 2014 - Schemas & MicrodataSMX West 2014 - Schemas & Microdata
SMX West 2014 - Schemas & Microdata
 
Most Advanced GTM Deployment. Ever!
Most Advanced GTM Deployment. Ever!Most Advanced GTM Deployment. Ever!
Most Advanced GTM Deployment. Ever!
 
How to recover from an unsuccessful SEO relaunch by activating your data (SMX...
How to recover from an unsuccessful SEO relaunch by activating your data (SMX...How to recover from an unsuccessful SEO relaunch by activating your data (SMX...
How to recover from an unsuccessful SEO relaunch by activating your data (SMX...
 
Schemas and Microdata
Schemas and Microdata Schemas and Microdata
Schemas and Microdata
 
Architecture in-the-small-slides
Architecture in-the-small-slidesArchitecture in-the-small-slides
Architecture in-the-small-slides
 
Yuriy Chapran: Cyber Shield - від запуску до перших клієнтів
Yuriy Chapran: Cyber Shield - від запуску до перших клієнтівYuriy Chapran: Cyber Shield - від запуску до перших клієнтів
Yuriy Chapran: Cyber Shield - від запуску до перших клієнтів
 
QSDA2022: Qlik Sense Data Architect | Q & A
QSDA2022: Qlik Sense Data Architect | Q & AQSDA2022: Qlik Sense Data Architect | Q & A
QSDA2022: Qlik Sense Data Architect | Q & A
 
International Search Summit 2013 - International Magento SEO
International Search Summit 2013 - International Magento SEOInternational Search Summit 2013 - International Magento SEO
International Search Summit 2013 - International Magento SEO
 
How to Maximize Revenues on Your Customer Loyalty Program using Predictive An...
How to Maximize Revenues on Your Customer Loyalty Program using Predictive An...How to Maximize Revenues on Your Customer Loyalty Program using Predictive An...
How to Maximize Revenues on Your Customer Loyalty Program using Predictive An...
 
Extension Submission to Marketplace
Extension Submission to MarketplaceExtension Submission to Marketplace
Extension Submission to Marketplace
 
ClojureScript in Magento 2 - PHPUGMRN
ClojureScript in Magento 2 - PHPUGMRNClojureScript in Magento 2 - PHPUGMRN
ClojureScript in Magento 2 - PHPUGMRN
 
Ruby 2010
Ruby 2010Ruby 2010
Ruby 2010
 
Voxxed Athens 2018 - Getting real with progressive web apps in 2018
Voxxed Athens 2018 - Getting real with progressive web apps in 2018Voxxed Athens 2018 - Getting real with progressive web apps in 2018
Voxxed Athens 2018 - Getting real with progressive web apps in 2018
 
Overdose / The Left Bank / WeWork - What Does Google Want
Overdose / The Left Bank / WeWork - What Does Google WantOverdose / The Left Bank / WeWork - What Does Google Want
Overdose / The Left Bank / WeWork - What Does Google Want
 
SOS UiComponents
SOS UiComponentsSOS UiComponents
SOS UiComponents
 
Setting Up a Machine Learning Platform
Setting Up a Machine Learning PlatformSetting Up a Machine Learning Platform
Setting Up a Machine Learning Platform
 

More from vinaikopp

Building Mage-OS - MageTitans 2023
Building Mage-OS - MageTitans 2023Building Mage-OS - MageTitans 2023
Building Mage-OS - MageTitans 2023vinaikopp
 
Property Based Testing in PHP
Property Based Testing in PHPProperty Based Testing in PHP
Property Based Testing in PHPvinaikopp
 
Property based testing - MageTestFest 2019
Property based testing - MageTestFest 2019Property based testing - MageTestFest 2019
Property based testing - MageTestFest 2019vinaikopp
 
ClojureScript in Magento 2 - MageTitansMCR 2017
ClojureScript in Magento 2 - MageTitansMCR 2017ClojureScript in Magento 2 - MageTitansMCR 2017
ClojureScript in Magento 2 - MageTitansMCR 2017vinaikopp
 
Lizards & Pumpkins Catalog Replacement at mm17de
Lizards & Pumpkins Catalog Replacement at mm17deLizards & Pumpkins Catalog Replacement at mm17de
Lizards & Pumpkins Catalog Replacement at mm17devinaikopp
 
Stories from the other side
Stories from the other sideStories from the other side
Stories from the other sidevinaikopp
 
Writing testable Code (MageTitans Mini 2016)
Writing testable Code (MageTitans Mini 2016)Writing testable Code (MageTitans Mini 2016)
Writing testable Code (MageTitans Mini 2016)vinaikopp
 
Getting your Hands Dirty Testing Magento 2 (at London Meetup)
Getting your Hands Dirty Testing Magento 2 (at London Meetup)Getting your Hands Dirty Testing Magento 2 (at London Meetup)
Getting your Hands Dirty Testing Magento 2 (at London Meetup)vinaikopp
 
Getting your hands dirty testing Magento 2 (at MageTitansIT)
Getting your hands dirty testing Magento 2 (at MageTitansIT)Getting your hands dirty testing Magento 2 (at MageTitansIT)
Getting your hands dirty testing Magento 2 (at MageTitansIT)vinaikopp
 
Modern Module Architecture
Modern Module ArchitectureModern Module Architecture
Modern Module Architecturevinaikopp
 
The beautiful Magento module - MageTitans 2014
The beautiful Magento module - MageTitans 2014The beautiful Magento module - MageTitans 2014
The beautiful Magento module - MageTitans 2014vinaikopp
 

More from vinaikopp (11)

Building Mage-OS - MageTitans 2023
Building Mage-OS - MageTitans 2023Building Mage-OS - MageTitans 2023
Building Mage-OS - MageTitans 2023
 
Property Based Testing in PHP
Property Based Testing in PHPProperty Based Testing in PHP
Property Based Testing in PHP
 
Property based testing - MageTestFest 2019
Property based testing - MageTestFest 2019Property based testing - MageTestFest 2019
Property based testing - MageTestFest 2019
 
ClojureScript in Magento 2 - MageTitansMCR 2017
ClojureScript in Magento 2 - MageTitansMCR 2017ClojureScript in Magento 2 - MageTitansMCR 2017
ClojureScript in Magento 2 - MageTitansMCR 2017
 
Lizards & Pumpkins Catalog Replacement at mm17de
Lizards & Pumpkins Catalog Replacement at mm17deLizards & Pumpkins Catalog Replacement at mm17de
Lizards & Pumpkins Catalog Replacement at mm17de
 
Stories from the other side
Stories from the other sideStories from the other side
Stories from the other side
 
Writing testable Code (MageTitans Mini 2016)
Writing testable Code (MageTitans Mini 2016)Writing testable Code (MageTitans Mini 2016)
Writing testable Code (MageTitans Mini 2016)
 
Getting your Hands Dirty Testing Magento 2 (at London Meetup)
Getting your Hands Dirty Testing Magento 2 (at London Meetup)Getting your Hands Dirty Testing Magento 2 (at London Meetup)
Getting your Hands Dirty Testing Magento 2 (at London Meetup)
 
Getting your hands dirty testing Magento 2 (at MageTitansIT)
Getting your hands dirty testing Magento 2 (at MageTitansIT)Getting your hands dirty testing Magento 2 (at MageTitansIT)
Getting your hands dirty testing Magento 2 (at MageTitansIT)
 
Modern Module Architecture
Modern Module ArchitectureModern Module Architecture
Modern Module Architecture
 
The beautiful Magento module - MageTitans 2014
The beautiful Magento module - MageTitans 2014The beautiful Magento module - MageTitans 2014
The beautiful Magento module - MageTitans 2014
 

Recently uploaded

Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 

Recently uploaded (20)

Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 

Becoming Certified - MageTitansMCR 2018

  • 1. BECOMING CERTIFIEDBecoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 2. Who here has sat in one or more Magento 1 exams? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 3. Who here has sat in one or more Magento 2 exams? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 4.
  • 5.
  • 6.
  • 7. SO LET'S NOT TAKE THIS TOO SERIOUSLY Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 8.
  • 9. Magento 1 Certificaton != Magento 2 Certification Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 10. How so? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 11. Magento 1 & Magento 2: Questions are developed by a Community Advisory Board Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 12. Magento 1 & Magento 2: Each question is written to fit an Exam Blueprint Objective Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 13. Magento 1 != Magento 2: Time frame and Review Process Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 14. Magento 1: Months of online meetings and reviews Magento 2: One week focus group, all in one room Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 15. Magento 1: Rather contrived, memorization friendly Magento 2: Scenario based, real life, more natural Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 16. Magento 1: Questions about Config XML Paths and Class Names. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 17. The Reasoning was: "Magento Developers with experience will have written them countless times and know them by heart." Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 18. This was before Magicento existed... Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 19. Magicento: ▸ Code generation ▸ Autocompletion Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 20. Magento 2: No questions about things with IDE autocompletion Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 21. How do the questions look like? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 22. Each item has 3 Parts: ▸ The Scenario ▸ The Stem ▸ The Options Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 23. ▸ The Scenario Information required to choose the correct answer Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 24. ▸ The Stem The question Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 25. ▸ The Options The possible answers Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 26. Valid answer keys: ▸ Choose 1 out of 4 ▸ Choose 2 out of 4 ▸ Choose 3 out of 5 Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 27. If more than one answer has to be selected, the number of required options is stated like this: "Which three actions do you take? (Choose three)" Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 28. For questions with multiple answers, the right number of options have to be selected and all selected answers have to be correct. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 29. ▸ No trick questions ▸ No “none of the above” ▸ No “all of the above” ▸ No “which of the following are true” ▸ No double negatives Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 30. ACTIONABLE QUESTIONS! Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 31. "How do you fix the issue?" "What actions do you take?" "What is the effect of that code?" Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 32. EXAMPLE QUESTIONBecoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 33. (1/2) You are working for an extensions vendor who protects their intellectual property by validating licenses against a license server. Customers are complaining that running any bin/magento command is very slow after installing one of the companies extensions. The extension adds a command to bin/magento. While investigating, you discover the following code in the command class: public function __construct($license) { $this->isLicenseValid = $this->validateLicense($license); parent::__construct(); } Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 34. (2/2) public function __construct($license) { $this->isLicenseValid = $this->validateLicense($license); parent::__construct(); } How do you resolve the issue? A. Implement local license validation instead of over the internet B. Move the validateLicense() call into the execute() method C. Check the license at random samples instead of every time D. Cache the validation result in the Magento config cache Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 35. Answer: B. Move the validateLicense() call into the execute() method Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 36. Magento Technical Guidelines 2.3. Class constructor can have only dependency assignment operations and/or argument validation operations. No other operations are allowed. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 37.
  • 38. Example Excerpt: Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 39. But why? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 40. Why? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 41. (back to the topic of exam questions) Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 42. SOME QUESTIONS HAVE QUALIFIERS. What are qualifiers? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 43. Qualifiers are part of the Stem: ▸ Keeping simplicity in mind ... ▸ Keeping maintainability in mind ... ▸ Keeping compatibility in mind ... ▸ Keeping testability in mind ... Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 44. WHAT IS THE PURPOSE OF QUALIFIERS? They guide us to the correct answer. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 45. Magento is flexible. There are many ways to accomplish a goal. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 46. We often have to make decisions how to implement a requirement. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 47. For questions with qualifiers often more than one answer is technically correct. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 48. Do we use ... a preference, a type argument configuration or a plugin? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 49. Do we use ... an ORM model or a Api Data model? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 50. Do we inject ... an interface or a concrete implementation? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 51. Depending on the circumstances, every approach could be valid. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 52. Faster development vs. better maintainability More upgradable code vs. more performant code ... Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 53. ▸ lifetime of the project ▸ project budget ▸ developer skill level ▸ security considerations (internal / external access) ▸ use of third party modules ▸ desired code reuse Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 54. Qualifiers tell us which answer to choose for the given scenario. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 55. Maintainability? Probably rules out options where code is copied. Favor answers that make changes and upgrades simpler. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 56. Compatibility? Rule out options with a higher extension conflict probability. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 57. Simplicity? Favor expressive options using the least number of elements. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 58. Testability or Reusability? Favor answers that allow replacing collaborators with test doubles or other classes. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 59. EXAMPLE QUESTIONBecoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 60. You need to customize the Magento_Checkout/js/proceed-to-checkout JavaScript module. How do you do that, keeping compatibility in mind? A. Add a path override configuration to the requirejs-config.js B. Add a global map alias override to the requirejs-config.js C. Copy the file proceed-to-checkout.js to the folder Magento_Checkout/js/ of the active frontend theme D. Add a JavaScript mixin to the requirejs-config.js Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 61. Answer: D. Add a JavaScript mixin to the requirejs-config.js Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 62. GETTING READY Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 63. Study Guide The study guide is based on the exam blueprint. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 64. SWIFT OTTER STUDY GUIDES Based on the Magento U study guide but much expanded.
  • 65. The Official Technical Developer Guidelines (ask Why?) Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 66. Don't memorize OOP patterns and principles for the exam. Without experience, that does more harm than good. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 67. Better to go from first principles: ▸ What is a source code dependency? ▸ What are the consequences of a dependency? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 68. Deeper understanding of the principles behind the labels. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 69. ▸ Interfaces and the Liskov Substitution principle ▸ Coupling and Cohesion ▸ Favor Composition over Inheritance Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 70. Familiarize yourself with Kent Beck’s 4 rules of simple design. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 71. 1. Passes all tests 2. Expresses intent 3. No duplication 4. Fewest possible elements Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 72. When a question has the qualifier “Keeping simplicity in mind...” apply these rules. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 73. SMART GUESSING Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  • 74. And finally... Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10