Алексей Соин · zencod.ru
19 subscribers
165 photos
16 videos
4 files
1K links
Статьи по разработке

- frontend
- backend
- server

zencod.ru
Download Telegram
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
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
Лучшие практики по написанию тестов с React Testing Library

Правильно написанные тесты не только предотвращают ошибки в коде, но и в случае 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
Forwarded from mefody.dev
Мгновенная валидация форм

Юлия Макарова делится рецептом, как сделать нативную валидацию форм без фреймворков. Сразу с продумыванием доступности. Как будто можно брать и копировать в свои пет-проекты как основу.

https://doka.guide/recipes/validation/
ESLint Config Inspector, добавленный в ESLint 9.0.0 визуальный инспектор правил из вашего конфига, призванный упростить исследование конфигураций с большим количеством оверрайдов и плагинов → https://eslint.org/blog/2024/04/eslint-config-inspector/
Создание и использование защищенного SSH ключа

https://zencod.ru/articles/ssh-keygen/
Выкиньте свой husky / Хабр
https://habr.com/ru/articles/807763/
Локальный веб-сервер для разработки с помощью Docker / Хабр
https://habr.com/ru/companies/usetech/articles/808025/
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 не сделали ничего для "сетки" (все верстали на таблицах) и вот таких вот штук для всплывающих элементов / диалогов, зато постоянно пихали много всякой сомнительной нужности хрени.
JSDoc как альтернативный синтаксис TypeScript: обширное руководство по типизации JavaScript-кода для тех, кто по каким-либо причинам не может полноценно использовать TypeScript для написания кода, но может использовать его для тайпчекинга JS-файлов → https://alexharri.com/blog/jsdoc-as-an-alternative-typescript-syntax