Skip to content

Требования к Frontend разработчику

От frontend разработчика требуется следующее:

  • Посещение ежедневных встреч по проекту

  • Посещение встреч с frontend разработчиками

Технические требования

В текстовом описании ниже перечислены некоторые требования, которые необходимо знать и исполнять разработчику. Также в тексте ниже могут встречаться знаки-звездочки - " * ", которые сигнализируют о том, что требованием пренебрегать не стоит

1. Знание HTML5 / CSS3, Sass, Tailwind;

В каком случае необходимо использовать svg/картинку/webp

семантика в HTML (main, section, aside, footer, etc.)

вёрстка с использованием grid, flexbox

*Знание абсолютно всех html тегов не требуется, важно знать теги для нумерованных, буквенных списков, семантические теги и прочие основные теги.

2. Знание JS, TypeScript

JS:

Основы js

*Примитивные типы данных:

  • number;

  • string;

  • boolean;

  • null;

  • undefined;

  • object;

  • symbol;

  • bigint

*Операторы сравнения/присваивания

*Условия (if) switch, тернарный оператор

*Циклы for, for in, for of, while, do while, выход из цикла, операторы break и continue.

Функции: классификация, анонимные, именованные, замыкание, callback функции, setTimeout/clearTimeout

ООП, классовый подход

Динамическая типизация

Методы массивов:

every;

fill;

*filter;

*find;

findIndex;

findLast;

flat;

forEach;

includes;

indexOf;

join;

*length;

*map;

*pop;

*push;

reduce;

reverse;

shift;

*slice;

*some;

sort;

splice;

toReversed;

toString;

unshift;

from;

Работа со страницей

*Получение элементов

*События (всплытие/погружение, делегирование , объект события (основные св-ва event), цикл событий)

*Обработчики событий

*Отмена стандартных событий браузера

Параметры глобальных объектов: window, document, screen

Js параметры элементов страницы

Работа скриптов с течением времени

Регулярные выражения (для чего нужны)

JS в работе

this, контекст вызова

Конструкторы

*Формат передачи данных JSON

*Общение с сервером, fetch-запросы

Инкапсуляция данных внутри класса

*Перехват серверных ошибок try/catch

*Promise.race(), promise.all()

*работа с LocalStorage, sessionStorage, cookie

Стандарт ES6

*Переменные let/const

*Стрелочные функции

*Интерполяция (конкатенация строк)

Promise +reject, fullfilled, pending

*Деструктурирование const [one, two, three] = foo

*Spread {...obj}, Rest (остаточные параметры, (a, b, …restParams) )

Понимание работы JS

call stack

event loop

Стандарт ES7, ES8…

Оператор возведения в степень **

*async/await

Array.prototype.includes

Strict Mode

JSON.parse, JSON.stringify

*Object.keys,

*Object.values(),

Object.entries()

Object.prototype.hasOwnProperty()

TS:

*type,

*interface

отличие type, interface

*generic

Utility Types:

Partial, Pick, *Omit, Record, Required,

3. Умение работать в Git

Понимание/умение использовать git pull, git merge, git commit, git push, git clone, git branch, git checkout, знание того, как производится разрешение конфликтов

4. Знание React, Next.js.

React:

Компоненты

*JSX

*useState

*Рендер по условию

*Декомпозиция, компонентный подход, модульность

*Функциональные компоненты, отличие от классовых

Рендеринг

*Жизненный цикл компонента

*Списки и ключи

*Пропсы

Рефы (createRef, useRef)

События

HOC’и (компоненты высшего порядка)

Хуки

useState, useEffect, useLayoutEffect, useCallback, useRef, useMemo, useReducer, useContext, кастомные хуки

Роутинг

React router

Suspense

Portal

Nextjs:

*понимание технологии SSR

*server components

*client components

различие серверных и клиентских компонентов

middleware.ts

dynamic import

5. Работа с REST Api (CRUD)

Необходимо понимать как осуществляется взаимодействие с сервером, как информация отправляется на бэкенд - в каком случае с помощью body или querystring параметров, также понимание для чего используются методы для запросов ниже:

*post,

*get,

*patch/put +отличие

*delete

знание основных error status codes - успешные/ошибочные/непредвиденные

Написание запросов с помощью библиотеки swr

6. *Для чего требуется стейт менеджер; Знание Zustand - хранение/изменение данных

7. Валидация

React Hook Form - *умение валидировать формы, валидация динамических форм

8. *Использование установленной архитектуры (структуры) папки frontend

Как осуществляется проверка ваших знаний:

В формате встречи в дискорде;

Для проверки знаний установленной архитектуры проекта необходимо предоставить ссылку на ваш проект на гитхабе/гитлабе, который повторяет установленную архитектуру.