0% found this document useful (0 votes)
452 views15 pages

Hyva Certified-Exam Overview-Associate Developer

Uploaded by

xigego2355
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
452 views15 pages

Hyva Certified-Exam Overview-Associate Developer

Uploaded by

xigego2355
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Exam overview

Associate
Developer
This guide outlines everything you
need to know to prepare for the
Associate Developer certification.
It includes practical details, key
topics and expected knowledge
areas for the exam.

1 Associate Developer Exam Overview


Hyvä Certified
Associate Developer
exam details.
This certification will require existing Magento experience in relevant frontend
areas. No Hyvä project experience is needed. It is designed so it can be passed
after self-study of the Magento and Hyvä developer documentation (with access
to Hyvä source code) or after completion of a training course.

↗ Register for your exam ↗ Hyvä Docs: Getting Started ↗ Get in touch

This exam will validate the skills and knowledge needed


Audience for developers to document their initiative and provides an
entry way into the Hyvä ecosystem.
It consists of scenario-based questions.
You should have an understanding of Layout XML, Blocks,
and View Models; Templates; Magento Themes; Hyvä
Compatibility Modules; Tailwind CSS and Hyvä; Alpine.js
and JavaScript; Frontend Performance; Hyvä Features.

90 minutes, 60 questions
Duration (subject to change)

€200
Cost

A score of 70% or higher is needed to pass.


Passing (subject to change)

2 Associate Developer Exam Overview


Exam topics.

① Layout XML Blocks and View Models 15%


② Templates 10%
③ Themes 5%
④ Compatibility Modules 10%
⑤ Tailwind CSS and Hyvä 20%
⑥ Alpine.js and JavaScript 18%
⑦ Frontend Performance 14%
⑧ Hyvä Features 8%

3 Associate Developer Exam Overview


Exam topic

Layout XML Blocks



and View Models
1.1 Demonstrate the ability to use Layout Merging for theme customization
Adding a block to a container. Effects of redeclaring a block from a parent theme in a
child theme. Avoiding code duplication with custom layout handles. Moving a child block
from a container into a template block.

1.2 Demonstrate the ability to use Block Arguments for theme customization
Adding a data argument in layout XML to a block instance declared in the parent theme.
Specifying CSS classes in layout XML for containers and blocks.

1.3 Demonstrate the ability to use ViewModels via layout XML and the View
Model Registry

1.4 Demonstrate the ability to use Layout handles to implement


customizations.

4 Associate Developer Exam Overview


Exam topic

Templates

2.1 Determine how to override a Hyvä default theme


template in a custom theme
Overriding a default theme template in a child theme.

2.2 Determine how to override a Hyvä default theme


template in a custom module
Overriding a default theme template in a custom module. Changing the template name in
layout XML.

2.3 Determine how to escape values securely and depending on context


Escaping JSON to be rendered in a data attribute. Escaping the value in a textarea input.
Escaping a strings in a HTML context, e.g. a product name.

5 Associate Developer Exam Overview


Exam topic

Themes

3.1 Create a new theme based on the Hyvä default theme


Required steps to create a child theme. Debugging common errors
(missing preview image, theme-type set to 1 in the DB).

6 Associate Developer Exam Overview


Exam topic

Compatibility Modules

4.1 Configure a module’s template/layout directory


so it is found by Tailwind
Including a Tailwind configuration in a compatibility module. Excluding CSS from a
Compatibility module in a child theme. Setting up a compatibility module to be included
in the Tailwind content path automatically. Adding a module path to the Tailwind content
path of a theme explicitly.

4.2 Override a template provided by a


compatibility module in a theme
Choosing the correct module folder name for template overrides, depending if it is a
template from the original module vs. the compatibility module.

4.3 Demonstrate understanding of common steps to replace Luma JS with


Alpine/vanilla JS

7 Associate Developer Exam Overview


Exam topic

Tailwind CSS and Hyvä


5.1 Compile styles in a Hyvä theme


Demonstrate an understanding of the difference in the styles.css generated by npm run
watch and npm run build

5.2 Customize a theme using the theme Tailwind configuration


Changing of the color theme and breakpoints. Demonstrate an understanding of the
extends section in the tailwind.config.js.

5.3 Demonstrate understanding of influencing the size


of the generated styles.css file
Describe steps to debug excessive styles.css size. Strategies to keep the generated
styles file small, compose common classes rather than declaring new ones.

5.4 Demonstrate knowledge how Tailwind decides what classes


to include in the generated CSS
Composing class names programmatically in templates.

5.5 Demonstrate ability to use CSS variables to customize a Hyvä theme


Declaring and using CSS variables to avoid template overrides

8 Associate Developer Exam Overview


Exam topic

Alpine.js and JavaScript


6.1 Demonstrate understanding of JavaScript events


with and without Alpine.js
Using the debounce, throttle, passive and other Alpine modifiers. Subscribing to events in
the window scope vs element scope. Dispatching an event in JS and in Alpine.js.

6.2 Design Alpine components encapsulated within a single template


Creating a component encapsulated in a single template. When to choose to extract a
script to avoid too much duplication in the rendered page.

6.3 Design JavaScript components to be reused on different pages or


multiple times on a single page
Avoid rendering script instance specific values in the JS by using data attributes instead.

6.4 Demonstrate how to load JavaScript files without


impacting performance metrics
Using the init-external-scripts event and facades

6.5 Demonstrate understanding of how to use x-defer


to optimize frontend performance
Choosing between x-defer=intersect vs x-defer=idle. Determining good candidate
components for x-defer.

6.6 Demonstrate ability to implement a frontend component without


generating an excessive DOM size
Benefits and drawbacks of strategies like paging, AJAX, and Alpine templates to reduce
the DOM size.

6.7 Demonstrate ability to create JS without relying on the content security


policies unsafe-eval and unsafe-inline
Avoiding scripts within Alpine templates. Using Alpine.data(). Using data attributes as
arguments. Using iteration variables within component methods. Avoiding injecting
scripts from AJAX responses after the initial page load.

9 Associate Developer Exam Overview


Exam topic

Frontend Performance

7.1 Demonstrate understanding of FCP, INP, TBT, LCP, CLS


Understanding the dependency of all metrics on TTFB.

7.2 Demonstrate ability to improve given performance metrics of a page


Resolving excessive DOM size issues. Resolving CLS issues. Resolving LCP issues.

7.3 Demonstrate ability to use performance measuring tooling effectively and


follow recommendations (Lighthouse, CWV)
Improve performance in PageSpeed results. Determining low-hanging fruit in
PageSpeed recommendations.

7.4 Demonstrate understanding of CWV


Difference between Lighthouse data and RUM data. Understand the role visitor devices
play in regard to performance results.

10 Associate Developer Exam Overview


Exam topic

Hyvä Features

8.1 Demonstrate understanding of the application


of the theme-fallback module
Configuring a site to use Luma pages for specific routes. Configuring a site to use Hyvä
Theme only for the checkout.

8.2 Demonstrate ability to use the Hyvä modal library


to create custom dialogs
Using multiple modals on the same page, avoiding naming conflicts. Using the return
value of the show promise. Updating modal contents depending on outside values when
it is opened.

8.3 Demonstrate ability to use the Hyvä JavaScript


form validation library in custom forms
Making the form validation library available on the page. Benefits and downsides of
using browser native HTML5 validation compared to JS validation. Writing custom
validation rules.

11 Associate Developer Exam Overview


Practice questions.
You'll find the answers to these questions on the last page of this document.
Good luck!

1 You are working on a large B2B site focused on security. You have added
a new product attribute named sales_message which can be displayed
on the frontend.

How do you render the new attribute securely in a <p> tag?


A <?= /** @escape */ $product->getSalesMessage() ?>
B <?= html_safe($product->getSalesMessage()) ?>
C <?= $escaper->escapeHtml($product->getSalesMessage()) ?>
D Enable Is HTML Allowed in the attribute settings

2 You are converting a module built for a Luma based store. The module
provides in-depth technical specification data for customers in certain
customer groups. Given the amount of data, the original module uses the
mage/storage RequireJS module to get and post data via AJAX upon
various user interactions.

storage.post(
url, JSON.stringify(payload)
).done(function (result) {
...
}).fail(function (response) {
...
}).always(function () {
...
});

How do you convert the AJAX post request implementation to make it


compatible with Hyvä?
A Use the Alpine.js $dispatch magic method.
B Use the native browser fetch() method.
C Use the $.ajax() method.
D Use the axios.post() method.

12 Associate Developer Exam Overview


3 A merchant lists many brand logos on a page of their site. The custom
template uses PHP to iterate through all brands and render each one as
an inline SVG image.

The Lighthouse results for the page flag excessive DOM size as an issue.

How do you improve this?


A Make each logo an Alpine.js component and hide them with x-cloak and
x-defer="intersect" until they enter the browser view port.
B Replace the inline SVG images with <img> tags referencing external files
or a data-uri.
C Extract each logo into a separate .phtml template and declare them as child blocks
of the main content area in layout XML.
D Merge all logo SVGs into a single combined SVG image and display it instead of the
individual SVGs.

13 Associate Developer Exam Overview


Next steps.

Spoiler alert!
Practice question answers: 1 C / 2 B / 3 B
Demonstrate your skills
↗ Register for your exam

Brush up on your knowledge


↗ Hyvä Docs: Getting Started

Read the FAQ or contact us


↗ Get in touch

hyva.io hyvä-themes

[email protected] @hyva_io

You might also like