Section 1: Technology Stack (20%) Section Content | Next Section 1.1 Demonstrate understanding of RequireJS Describe the RequireJS framework and its approach to JavaScript module organization What is the main purpose of the RequireJS framework? What are the pros and cons of the AMD approach to JavaScript file organization? Which capabilities does RequireJS provide to create and customize JavaScript modules? Demonstrate the ability to use requirejs-config.js files in the development process What is a requirejs-config.js file? In which cases it is necessary to add configurations to it? What tools does it provide? What are global callbacks? How can mappings be used? https://requirejs.org/docs/api.html#config-callback Demonstrate the ability to use RequireJS plugins What are RequireJS plugins? What are the text and domReady plugins used for? 1.2 Demonstrate understanding of UnderscoreJS Demonstrate understanding of underscore utility functions What are the benefits of using the underscore library versus native JavaScript? Use underscore templates in customizations Describe how underscore templates are used. What are the pros and cons of using underscore templates? Describe how underscore templates are used in Magento together with the text RequireJS plugin. 1.3 Demonstrate understanding of jQuery UI widgets Demonstrate understanding of the jQuery framework and its role in the Magento JavaScript framework What is a jQuery library? What different components does it have (jQuery UI, jQuery events and so on)? How does Magento use it? 1.4 Demonstrate understanding of KnockoutJS Describe key KnockoutJS concepts Describe the architecture of the Knockout library: MVVC concept, observables, bindings. Demonstrate understanding of knockout templates What is the main concept of knockout templates? What are the pros and cons of knockout templates? Compare knockout templates with underscore JavaScript templates. Demonstrate understanding of the knockout-es5 library