На собесе – соловей, на работе – бармалей. Почему на собеседовании кандидат один, а на деле – другой? / Хабр
https://habr.com/ru/articles/797699/
https://habr.com/ru/articles/797699/
Хабр
На собесе – соловей, на работе – бармалей. Почему на собеседовании кандидат один, а на деле – другой?
Часто бывает так, что на интервью мы видим одного кандидата, а после выхода к нам на работу он превращается в… нет, не тыкву, конечно. Но разница «до/после» нас серьезно поражает, и часто – не в...
Forwarded from Front End World
React, Vite and TypeScript: Get started in under 2 minutes
https://blog.nrwl.io/react-vite-and-typescript-get-started-in-under-2-minutes-3bd5cd836175
https://blog.nrwl.io/react-vite-and-typescript-get-started-in-under-2-minutes-3bd5cd836175
Forwarded from Front End World
Forwarded from Front End World
Forwarded from ServerAdmin.ru
На канале было много обучающего материала про git. Как курсы, так и тренажёры, игры. Но при этом я ни разу не упомянул про книгу с переводом на русский язык Pro Git (авторы Scott Chacon и Ben Straub). Она полностью переведена и выложена на сайте:
⇨ https://git-scm.com/book/ru/v2
Я не могу сказать, что это самая лучшая книга про git или что-то в этом роде, потому что других не читал. Но к этой возвращался много раз. На неё ведёт много поисковых запросов из поисковиков. Регулярно вижу их, когда что-то ищу по git. Некоторые главы книги я внимательно изучал, когда разбирался с какой-то темой.
Сейчас существует не так много обучающего материала в текстовом виде, да ещё в веб версии, с которой легко и удобно работать - искать, читать. Книга даже в электронном виде не так удобна для взаимодействия. А вот если она выложена по главам на сайте, то это уже другое дело. Да ещё и полностью бесплатно.
Там же, кстати, есть и pdf, и epub версия. И так же есть git версия на github:
⇨ https://github.com/progit/progit2-ru
#обучение #git
⇨ https://git-scm.com/book/ru/v2
Я не могу сказать, что это самая лучшая книга про git или что-то в этом роде, потому что других не читал. Но к этой возвращался много раз. На неё ведёт много поисковых запросов из поисковиков. Регулярно вижу их, когда что-то ищу по git. Некоторые главы книги я внимательно изучал, когда разбирался с какой-то темой.
Сейчас существует не так много обучающего материала в текстовом виде, да ещё в веб версии, с которой легко и удобно работать - искать, читать. Книга даже в электронном виде не так удобна для взаимодействия. А вот если она выложена по главам на сайте, то это уже другое дело. Да ещё и полностью бесплатно.
Там же, кстати, есть и pdf, и epub версия. И так же есть git версия на github:
⇨ https://github.com/progit/progit2-ru
#обучение #git
Forwarded from Javascript
Проверь себя!
/**
* Нужно написать функцию, которая принимает число N и возвращает функцию,
* вызов которой первые N раз возвращает 'yes', а потом – 'no'.
*/
function canGetCount(n) {
// code here
}
const getOne = canGetCount(2);
getOne() === 'yes'
getOne() === 'yes'
getOne() === 'no'
@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Заметки про React
Лучшие практики по написанию тестов с React Testing Library
Правильно написанные тесты не только предотвращают ошибки в коде, но и в случае React Testing Library улучшают доступность компонента. В своем блоге Алекс Хоменко собрал лучшие практики по написанию тестов с React Testing Library, кратко о них:
- Использовать *ByRole селекторы. Они наиболее надежны и работают для многих элементов. Использование *ByRole селекторов приучают к написанию доступных компонентов. Пример:
- Использовать userEvent вместо fireEvent для симуляции событий. Хотя fireEvent работает во многих случаях, это легкая обертка над dispatchEvent. Также, в новых версиях React Testing Library рекомендуется инициализировать userEvent перед использованием:
- Использовать findBy* вместо waitFor. Бывают случаи, когда элемент, который пытаемся использовать, недоступен при первоначальном рендеринге и появится после получения данных из API. Для таких сценариев можно использовать асинхронный селектор findBy*, который внутри себя использует waitFor. Пример:
- Исправление ошибки
Еще одна из причин данной ошибки может быть неправильная работа с таймерами. Если компонент использует таймеры, то используйте моки для таймеров (useFakeTimers).
https://claritydev.net/blog/improving-react-testing-library-tests
Правильно написанные тесты не только предотвращают ошибки в коде, но и в случае React Testing Library улучшают доступность компонента. В своем блоге Алекс Хоменко собрал лучшие практики по написанию тестов с React Testing Library, кратко о них:
- Использовать *ByRole селекторы. Они наиболее надежны и работают для многих элементов. Использование *ByRole селекторов приучают к написанию доступных компонентов. Пример:
it("should submit correct form data", async () => {
/** --snip-- */
await user.type(screen.getByRole("textbox", { name: "Name" }), "Test");
await user.click(screen.getByRole("button", { name: "Sign up" }));
/** --snip-- */
});
- Использовать userEvent вместо fireEvent для симуляции событий. Хотя fireEvent работает во многих случаях, это легкая обертка над dispatchEvent. Также, в новых версиях React Testing Library рекомендуется инициализировать userEvent перед использованием:
it("should save correct data on submit", async () => {
/** --snip-- */
const user = userEvent.setup();
await user.type(screen.getByRole("textbox", { name: "Name" }), "Test");
/** --snip-- */
});
- Использовать findBy* вместо waitFor. Бывают случаи, когда элемент, который пытаемся использовать, недоступен при первоначальном рендеринге и появится после получения данных из API. Для таких сценариев можно использовать асинхронный селектор findBy*, который внутри себя использует waitFor. Пример:
it("renders without breaking", async () => {
render(<ListPage />);
expect(
await screen.findByRole("heading", { name: "List of items" }),
).toBeInTheDocument();
});
- Исправление ошибки
Fixing the "not wrapped in act(...)" warnings. Одной из причин ошибки может быть использование getBy* вместо findBy*, поскольку рассматриваемый элемент или компонент обновляется после асинхронного действия. Еще одна из причин данной ошибки может быть неправильная работа с таймерами. Если компонент использует таймеры, то используйте моки для таймеров (useFakeTimers).
https://claritydev.net/blog/improving-react-testing-library-tests
claritydev.net
Best Practices for Writing Tests with React Testing Library
Properly written tests not only help prevent regressions and buggy code, but in the case of React Testing Library, they also improve the accessibility of components and the overall user experience. In this post, we'll explore how to get the most out of your…
Продуктовый подход к pet-проекту или как я разработал музыкальное веб-приложение / Хабр
https://habr.com/ru/articles/803673/
https://habr.com/ru/articles/803673/
Хабр
Продуктовый подход к pet-проекту или как я разработал музыкальное веб-приложение
Что будет, если соединить любовь к музыке и к разработке? В моем случае получился pet-проект по созданию музыкального стримингового веб-приложения. Меня зовут Андрей, я работаю frontend-разработчиком...
Бэкапы для самых маленьких и матерых / Хабр
https://habr.com/ru/companies/selectel/articles/804183/
https://habr.com/ru/companies/selectel/articles/804183/
Хабр
Бэкапы для самых маленьких и матерых
Представьте: вы недавно основали небольшое веб-приложение. Но только он стал расти как полноценный проект — Бац! — серверы легли, а данные не сохранились. Нужно было делать бэкапы. Казалось бы, совет...
Состоялся релиз Bun 1.1 — среды выполнения JavaScript и TypeScript / Хабр
https://habr.com/ru/news/804665/
https://habr.com/ru/news/804665/
Хабр
Состоялся релиз Bun 1.1 — среды выполнения JavaScript и TypeScript
1 апреля 2024 года состоялся релиз Bun 1.1 — среды выполнения JavaScript и TypeScript с возможностью отладки кода и поддержкой популярных веб-фрейворков. Это событие произошло спустя шесть месяцев...
Forwarded from mefody.dev
Мгновенная валидация форм
Юлия Макарова делится рецептом, как сделать нативную валидацию форм без фреймворков. Сразу с продумыванием доступности. Как будто можно брать и копировать в свои пет-проекты как основу.
https://doka.guide/recipes/validation/
Юлия Макарова делится рецептом, как сделать нативную валидацию форм без фреймворков. Сразу с продумыванием доступности. Как будто можно брать и копировать в свои пет-проекты как основу.
https://doka.guide/recipes/validation/
Дока
Мгновенная валидация форм — Рецепты — Дока
На лету проверяем, правильно ли пользователь заполнил поля формы.
Forwarded from Заметки разработчика
Все мы — используем git каждый день, однако большинство из нас, как будто задержались в 2005 году, используют только основные команды, такие как add, commit, push или pull.
https://www.dev-notes.ru/articles/git/modern-git-commands-and-features/
https://www.dev-notes.ru/articles/git/modern-git-commands-and-features/
Заметки разработчика
Современные команды и возможности Git
Все мы — используем git каждый день, однако большинство из нас, как будто в 2005, используют только основные команды, такие как add, commit, push или pull.
От «здравствуйте» до こんにちは: языки программирования не на английском языке / Хабр
https://habr.com/ru/companies/sberbank/articles/806051/
https://habr.com/ru/companies/sberbank/articles/806051/
Хабр
От «здравствуйте» до こんにちは: языки программирования не на английском языке
Существует огромное количество самых разных языков программирования, их насчитывается несколько тысяч. Какие‑то — идеальны для работы, другие же созданы just for fun. К слову, есть...
Forwarded from For Web — фронтенд, дизайн, программирование
ESLint Config Inspector, добавленный в ESLint 9.0.0 визуальный инспектор правил из вашего конфига, призванный упростить исследование конфигураций с большим количеством оверрайдов и плагинов → https://eslint.org/blog/2024/04/eslint-config-inspector/
Локальный веб-сервер для разработки с помощью Docker / Хабр
https://habr.com/ru/companies/usetech/articles/808025/
https://habr.com/ru/companies/usetech/articles/808025/
Frontend внутри Bitrix. Использование и написание экстеншенов + SPA приложение на Vue или React / Хабр
https://habr.com/ru/articles/810581/
https://habr.com/ru/articles/810581/
Хабр
Frontend внутри Bitrix. Использование и написание расширений + SPA приложение на Vue или React
В данной статье мы рассмотрим правильный подход к Frontend разработке в Bitrix. А именно разделение на расширения которые сможем подключать в любой момент времени. + напишем SPA приложение на Vue и...
👍2
Forwarded from Cross Join - канал о разработке (Anton Okolelov)
Из мира фронтенда. Я тут вышел из комы, и оказывается, уже во всех основных браузерах работает popover API (https://developer.mozilla.org/en-US/docs/Web/API/Popover_API )
Его можно использовать для менюшек, всплывашек, тостов, диалогов и тд.
Поповеры всегда наверху, независимо от z-index
Клик вне поповера или esc его закрывает.
И тд.
Т.е. на голом html и css можно делать интересные вещи.
Вот примеры:
https://mdn.github.io/dom-examples/popover-api/
Десяток (-другой) лет назад я много верстал, и недоумевал, почему с первой версии css не сделали ничего для "сетки" (все верстали на таблицах) и вот таких вот штук для всплывающих элементов / диалогов, зато постоянно пихали много всякой сомнительной нужности хрени.
Его можно использовать для менюшек, всплывашек, тостов, диалогов и тд.
Поповеры всегда наверху, независимо от z-index
Клик вне поповера или esc его закрывает.
И тд.
Т.е. на голом html и css можно делать интересные вещи.
Вот примеры:
https://mdn.github.io/dom-examples/popover-api/
Десяток (-другой) лет назад я много верстал, и недоумевал, почему с первой версии css не сделали ничего для "сетки" (все верстали на таблицах) и вот таких вот штук для всплывающих элементов / диалогов, зато постоянно пихали много всякой сомнительной нужности хрени.