Figma:
- https://www.figma.com/
- https://www.figma.com/best-practices/guide-to-developer-handoff/components-styles-and-documentation/
- https://www.figma.com/developers/api
Основы верстки и JS
Работа с CSS:
/* | |
Необходимо создать функцию fetchRetryer, которая будет выполнять запрос на определенный api и повторять его до 5 раз, пока не получит ответ (статус 200). | |
Если после 5 повторов сервер не отвечает - возвращаем ошибку. | |
*/ | |
const fetchRetryer = (url, counter = 0) => { | |
return fetch(url).then(response => { | |
if(response.status !== 200) { |
Онлайн учебник по JS - https://learn.javascript.ru/
Курсы HTML/CSS - https://htmlacademy.ru/
Спецификация W3C или WHATWG: https://htmlacademy.ru/blog/articles/short-11
TC 39: https://tc39.es/ru/
WCAG: https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/
Репозиторий с приложением - https://github.com/epifanov-sergey/bff-perm-dev-meetup | |
Материалы по архитектуре: | |
https://microservices.io/patterns/apigateway.html | |
https://docs.microsoft.com/ru-ru/dotnet/architecture/microservices/ | |
https://martinfowler.com/articles/microservices.html | |
Способы взаимодействия клиента и сервера: | |
https://restfulapi.net/ | |
https://www.jsonrpc.org/specification |
Епифанов Сергей Владимирович, Senior Frontend Developer в Сбербанке | |
E-mail: Epifanov.S.Vl@sberbank.ru | |
Whatsapp, Telegram - +79136531226 | |
Наш сайт для студентов: https://sbergraduate.ru | |
Наш карьерный портал: https://sberbank-talents.ru | |
Чат-бот: https://sbergraduate.ru/chat | |
Квиз: https://java-quiz.ru/#/ |
# Dependency directory | |
node_modules/ | |
dist/ | |
.vscode | |
tests/__coverage__/ | |
.idea/ |
module.exports = { | |
setupFiles: ['<rootDir>/jest.setup.js'], | |
testPathIgnorePatterns: ['<rootDir>/.next/', '<rootDir>/node_modules/'], | |
moduleNameMapper: { | |
'^Static(.*)$': '<rootDir>/static$1', | |
'^SRC(.*)$': '<rootDir>/src$1', | |
'^Core(.*)$': '<rootDir>/src/core$1', | |
'^API(.*)$': '<rootDir>/src/api$1' | |
} | |
} |
getRenderPermissions = () => { | |
let isBrandShouldRender = false | |
let isProductShouldRender = false | |
let isServiceShouldRender = false | |
let isServiceTypeShouldRender = false | |
if (this.props.category) { | |
if (this.props.category.requiredAdOptions === 'BrandModel') { | |
isBrandShouldRender = true | |
isProductShouldRender = true | |
} else if (this.props.category.requiredAdOptions === 'BrandOnly') { |
#!/bin/sh | |
WORK_FOLDER="$(git rev-parse --show-toplevel)" | |
printf "\n\033[33mSearching TODO blocks:\033[0m\n" | |
grep -nr '@TODO' "$WORK_FOLDER/src" "$WORK_FOLDER/pages" | |
if [[ $? == 1 ]]; then | |
printf "\n \033[32mTODO blocks not found\033[0m\n" |