Ilarion Halushka
Ilarion Halushka
  • 51
  • 522 799
Browser Context, Hooks, Steps, Tags. Advanced web automation course. Lesson 13.
In this lesson we're:
1. Running multiple browser contexts & pages.
2. Learning useful test Hooks (skip, fail, fixme, only, etc.).
3. Understanding the sequence of before/after Hooks.
4. Tagging smoke tests @smoke.
5. Adding test.step for reporting.
🚩 Subscribe ➜ bit.ly/3sXxmqM
❓ Questions ➜ Please post them in the comments under this video. I reply to all comments.
👇 Follow Me On Social Media:
GitHub: github.com/IlarionHalushka
LinkedIn: www.linkedin.com/in/ilarion-halushka-6a31a5173
Instagram: h.i.l.a.r.i.o.n
⭐️ Source Code: github.com/IlarionHalushka/advanced-playwright-course
🔗 Playlist for this JS/TS Web Automation Course: ua-cam.com/play/PLoZfdp36DZcoBeCxz_q3YX4I4NaWW6Kn0.html
⏩ Navigation:
0:00 Lesson Plan
0:57 Browser Contexts - profiles
10:57 Playwright BrowserContext API
13:08 tags @ -grep, -grep-invert
19:48 Test hooks sequence (describe, before, after)
27:43 Hooks - skip, only, fail, fixme, slow, use, timeout,
34:02 use `viewport` for profile or specific test
36:56 Let’s recap + Homework
38:55 test.step for reporting
#automation #javascript #playwright #testing #typescript #selenium #програмування #тестування #тестуванняпз #interview #qa #курсТестування #тестувальник #ІТ #тестуванняПз #безкоштовнийКурс #IT #itjob #it #softwaretesting #programming #itcourses
Переглядів: 425

Відео

Debugging JavaScript. Playwright Inspector, Trace vIewer. Advanced web automation course. Lesson 12.
Переглядів 412Місяць тому
In this lesson we're: 1. Debugging JavaScript in VS Code. 2. Learning useful console methods. 3. Exploring Playwright Inspector and Trace Viewer. 4. Debugging JavaScript in Jetbrains IDE (Webstorm). 🚩 Subscribe ➜ bit.ly/3sXxmqM ❓ Questions ➜ Please post them in the comments under this video. I reply to all comments. 👇 Follow Me On Social Media: GitHub: github.com/IlarionHalushka LinkedIn: www.l...
Why should QA Engineers switch to Development? Pros and Cons. Salaries comparison.
Переглядів 1,2 тис.2 місяці тому
In this video I'll be sharing my journey and reasons behind transitioning from QA manual/automation to Development. Original article: ilarionhalushka.github.io/Why-QA-Automation-Switch-To-Development/ 🚩 Subscribe ➜ bit.ly/3sXxmqM ❓ Questions ➜ Please post them in the comments under this video. I reply to all the comments. 👇 Follow Me On Social Media: GitHub: github.com/IlarionHalushka LinkedIn:...
Page Object, Page Component, OOP Composition. Playwright JavaScript Automation Course. Lesson 11
Переглядів 6442 місяці тому
In this lesson we're: 1. Rewriting tests using Page Component and Page Object Patterns. 2. Learning about Class Composition (OOP). 3. Reviewing React.js components from a real project. 4. Discussing Pros and Cons of using Page Component and Page Object Patterns. 🚩 Subscribe ➜ bit.ly/3sXxmqM ❓ Questions ➜ Please post them in the comments under this video. I reply ALL the comments. 👇 Follow Me On...
Writing Auto-tests for a Web Store. Playwright Advanced JavaScript Web Automation Course. Lesson 10
Переглядів 7103 місяці тому
In this lesson we're: 1. Wriiting tests forNavigation, Cart, Order creation, Product page, Contact form, About us., 2. Learning new methods waitForResponse() and waitForTimeout(). 3. Reviewing real-life tests from a real project. 🚩 Subscribe ➜ bit.ly/3sXxmqM ❓ Questions ➜ Please post them in the comments under this video. I reply ALL the comments. 👇 Follow Me On Social Media: GitHub: github.com...
AAA Pattern. Assertions. Navigation. Playwright Advanced JavaScript Web Automation Course. Lesson 9
Переглядів 5373 місяці тому
In this lesson we're learning: 0. Soft vs. Hard assertions. 1. AAA pattern (example from real project). 2. Assertions (checks). 3. Navigation methods. 🚩 Subscribe ➜ bit.ly/3sXxmqM ❓ Questions ➜ Please post them in the comments under this video. I reply ALL the comments. 👇 Follow Me On Social Media: GitHub: github.com/IlarionHalushka LinkedIn: www.linkedin.com/in/ilarion-halushka-6a31a5173 Insta...
Playwright Actions: Input, Mouse, Keyboard. Advanced JavaScript Web Automation Course. Lesson 8
Переглядів 4144 місяці тому
Today we're: 1. Reviewing Input, Mouse, Keyboard Actions. 2. Understanding the difference between "fill" / "pressSequentially" / "type". 3. Measuring performance of "fill" / "pressSequentially" / JS evaluate set value. 4. Learning how to execute JS directly in the browser (evaluate). 5. How Drag & Drop works under the hood. 6. Understanding the difference between "click" vs "dispatchEvent('clic...
Playwright Locators / Selectors, Strictness, Operators, Filters. Web Automation Course. Lesson - 7.
Переглядів 6714 місяці тому
In this lesson we are reviewing Playwright Locators, understanding Strictness, selecting elements using Operators (and, or), and trying out Filters. 🚩 Subscribe ➜ bit.ly/3sXxmqM ❓ Questions ➜ Please post them in the comments under this video. I reply ALL the comments. 👇 Follow Me On Social Media: GitHub: github.com/IlarionHalushka LinkedIn: www.linkedin.com/in/ilarion-halushka-6a31a5173 Instagr...
What is npm, package.json, SemVer, node_modules, package-lock, npx? Web Automation Course Lesson - 6
Переглядів 6174 місяці тому
How to install/uninstall dependencies? What is NPX, package-lock.json, SemVer, NPM, node_modules, package.json? What's the difference between "dependencies" and "devDependencies"? Additionally we are going to review what "npm init playwright" does under the hood? 🚩 Subscribe ➜ bit.ly/3sXxmqM ❓ Questions ➜ Please post them in the comments under this video. I reply ALL the comments. 👇 Follow Me O...
Lesson 5 - Playwright Architecture, CDP. Advanced Web Automation JavaScript / TypeScript Course.
Переглядів 8944 місяці тому
How does Playwright work? What is CDP (Chrome DevTools Protocol)? What is Node.js, TypeScript, JavaScript? Additionally we are going to review playwright.config.ts and .gitignore. 🚩 Subscribe ➜ bit.ly/3sXxmqM ❓ Questions ➜ Please post them in the comments under this video. I reply ALL the comments. 👇 Follow Me On Social Media: GitHub: github.com/IlarionHalushka LinkedIn: www.linkedin.com/in/ila...
Advanced Web Automation JavaScript / Typescript Course. Lesson 4 - Playwright Recorder - First Test.
Переглядів 7895 місяців тому
Let's play with Playwright Recorder - record the first tests "Create an order" and "Blog search". Make sure to repeat everything after me and additionally play with recorder on any website of your choice. 🚩 Subscribe ➜ bit.ly/3sXxmqM ❓ Questions ➜ Please post them in the comments under this video. I reply ALL the comments. 👇 Follow Me On Social Media: GitHub: github.com/IlarionHalushka LinkedIn...
Advanced Web Automation JavaScript / TS Course. Lesson 3 Playwright Installation, Running first test
Переглядів 9735 місяців тому
Let's install Playwright, Node.js, GIT, VS Code, Playwright VS Code extension and RUN the first example test! Try to find internal motivation and install all these tools. Usually it takes 1-2 hours if you do this for the first time. 🚩 Subscribe ➜ bit.ly/3sXxmqM ❓ Questions ➜ Please post them in the comments under this video. I reply ALL the comments. 👇 Follow Me On Social Media: GitHub: github....
Advanced Web Automation JavaScript / TypeScript Course. Lesson 2 - CSS, XPath selectors, DOM, HTML.
Переглядів 2,5 тис.5 місяців тому
Let's explore the DOM tree, HTML, and how to select elements on a page using CSS and XPath selectors. Sibling, descendant, child, parent elements, by attribute, by text, by tags - you'll be able to select all these after this lesson. 🚩 Subscribe ➜ bit.ly/3sXxmqM ❓ Questions ➜ Please post them in the comments under this video. I reply ALL the comments. 👇 Follow Me On Social Media: GitHub: github...
Advanced Web Automation JavaScript / TypeScript Course. Lesson 1 - JavaScript + Console. Recorders.
Переглядів 3,6 тис.5 місяців тому
Let's play with some JavaScript in browser console: select elements, change input values, click on buttons, open new pages, refresh the tab, replace text, change styles, scroll to elements and many more. Additionally, just in order to show you that automation is easy and you should not be afraid of learning it I am showing you 2 recorders: Selenium IDE and Chrome DevTools Recorder. 🚩 Subscribe ...
ВСЯ Теорія Тестування в Одному Відео. Roman vs Ilarion. Співбесіда QA №10.
Переглядів 1,3 тис.6 місяців тому
A/B test, Alpha/beta test, i18n/l10n, Security, UX, Accessibility, Performance/Load/Stress/Volume, Test cases vs. Checklists, Test Plan, Testing types, Testing levels, Testing Principles, Bug structure, Severity/Priority, Compatibility... Вс можлив питання по теорії тестування на співбесід на Junior QA тестувальника 🧑‍🎓 Співбесіда складається з бліц, теоритичних та практичних питань. Як завжди,...
Databases Бази даних. Oleksii vs Ilarion. Співбесіда QA №9.
Переглядів 6126 місяців тому
Databases Бази даних. Oleksii vs Ilarion. Співбесіда QA №9.
Співбесіда QA №8. Теоретичні питання. Oleksii vs Ilarion
Переглядів 7966 місяців тому
Співбесіда QA №8. Теоретичн питання. Oleksii vs Ilarion
Співбесіда QA №7. Процеси та Методології. Roman vs Ilarion
Переглядів 6006 місяців тому
Співбесіда QA №7. Процеси та Методології. Roman vs Ilarion
Собеседование QA №2. Практические задачки - Техники Тест Дизайна. Roman Pravdiuk vs. Ilarion.
Переглядів 2,5 тис.6 місяців тому
Собеседование QA №2. Практические задачки - Техники Тест Дизайна. Roman Pravdiuk vs. Ilarion.
Middle QA Інтерв'ю́ з Кращим Студентом. Ilarion vs Ivan
Переглядів 2 тис.7 місяців тому
Middle QA Інтерв'ю́ з Кращим Студентом. Ilarion vs Ivan
Історії айтівців #1 Моя хата скраю. Про Мішу і девелоперів.
Переглядів 8949 місяців тому
Історії айтівців #1 Моя хата скраю. Про Мішу девелоперів.
Зарплати джунів після IT курсів. Шлях до першого офера в 2023.
Переглядів 2 тис.9 місяців тому
Зарплати джунів після IT курсів. Шлях до першого офера в 2023.
GIT для чайників. Основні команди + топові фішечки. Github
Переглядів 6 тис.Рік тому
GIT для чайників. Основн команди топов фішечки. Github
BASH / SHELL / Terminal з нуля до мідла. Основні команди + топові фішечки. Пишемо скрипти.
Переглядів 3,6 тис.Рік тому
BASH / SHELL / Terminal з нуля до мідла. Основн команди топов фішечки. Пишемо скрипти.
Співбесіда з вигорівшим Junior QA
Переглядів 4,6 тис.Рік тому
Співбесіда з вигорівшим Junior QA
Співбесіда QA. Екзамен по Методологіям розробки ПО
Переглядів 2,2 тис.Рік тому
Співбесіда QA. Екзамен по Методологіям розробки ПО
QA Interview №4. Ivan Kozenko vs. Ilarion. Собеседование Junior QA Engineer
Переглядів 3,7 тис.Рік тому
QA Interview №4. Ivan Kozenko vs. Ilarion. Собеседование Junior QA Engineer
Собеседование QA №3. Ivan Kozenko vs. Ilarion. QA Interview
Переглядів 5 тис.Рік тому
Собеседование QA №3. Ivan Kozenko vs. Ilarion. QA Interview
Собеседование QA №1. Alexey vs. Ilarion. Техники Тест Дизайна. QA Interview
Переглядів 6 тис.Рік тому
Собеседование QA №1. Alexey vs. Ilarion. Техники Тест Дизайна. QA Interview
Как НЕ Пройти Собеседование В Айти. Пошаговая Инструкция
Переглядів 8 тис.Рік тому
Как НЕ Пройти Собеседование В Айти. Пошаговая Инструкция

КОМЕНТАРІ

  • @user-ws4wu6kn2y
    @user-ws4wu6kn2y 3 години тому

    Супер! Спасибо за качественные лекции! Счастья и всех благ Вам!

  • @QA_mentor
    @QA_mentor День тому

    В тестировании уже давно, сам преподаю на тестерских курсах, наткнулся на видосы Иллариона и залип. Да, Илларион - топчик, зэ бэст of the best

  • @vladimirneverov7065
    @vladimirneverov7065 2 дні тому

    Спасибо тебе огромное за лекции) это самое лучшее что я видел по данной тематике.

  • @artemiusz_j
    @artemiusz_j 2 дні тому

    а что тебя смущают аббревиатуры? тлс - транспорт лэер секурити, смтп - симпл мэил трансфер протокол, ты еще скажи что не знаешь как расшифровываются днс и дхцп

  • @artemiusz_j
    @artemiusz_j 2 дні тому

    Дякую🟨🟦

  • @des7869
    @des7869 4 дні тому

    Question from the dummy: How your console finds expected elements before enter. My show nothing and I can't understand how and what to change. It's bothering me a lot!

  • @alenaskornyakova6437
    @alenaskornyakova6437 7 днів тому

    Просмотрела весь Playlist с удовльствием! Спасибо огромное! Хотелось бы пообщаться, написала в IG.

  • @mzhabel13
    @mzhabel13 12 днів тому

    очень круто про скорость в ютубе, смотрю данные видосы на х2 и все думал как бы хотелось еще сильнее ускорить, а тут сразу и команда подъехала :)

  • @mzhabel13
    @mzhabel13 12 днів тому

    Лог, Логирование - можно перевести как журнал/журналирование

  • @mzhabel13
    @mzhabel13 12 днів тому

    видимо у нас на работе очень серьезные проекты или у него простые, уже который раз те вещи которые он не слышал чтоб особо использовали, у меня постоянно встречаются (такие сущности как, Session Storage, tcp/udp и тд..)

  • @user_dmtt
    @user_dmtt 12 днів тому

    Thank you very much for the lesson!

  • @digitalworldkz
    @digitalworldkz 13 днів тому

    Илориан дякую за ваші зантія

  • @nikitaantonenko3287
    @nikitaantonenko3287 14 днів тому

    Thank you so much for the lesson 🤩 It is awesome 👍

  • @kittyhawk784
    @kittyhawk784 17 днів тому

    начинаю проходить курс, вернусь с отчетом когда получу оффер, настрой боевой 💥

  • @mzhabel13
    @mzhabel13 19 днів тому

    про xml вообще не рассказано..

  • @svitlanaN199
    @svitlanaN199 19 днів тому

    Дякую за вашу роботу! Дуже крута інформація, вже пройшла декілька курсів, але багато чого нового❤

  • @svitlanaN199
    @svitlanaN199 19 днів тому

    Супер! Ваша українська дуже крута! Вас приємно слухати будь-якою мовою ❤

  • @svitlanaN199
    @svitlanaN199 19 днів тому

    Дякую! Дуже крута подача інформації, дуже легко дивиться ❤❤❤

  • @liroq94
    @liroq94 20 днів тому

    Офигеть, я всегда хотел использовать скорость отличную от предложенной ютуб, а тут оказывается все так просто) Спасибо огромнейшее. И курс просто супер и такие фишечки просто улет!

  • @user-dj7nt5qb6i
    @user-dj7nt5qb6i 23 дні тому

    такблийа принятия решений могла бы быть и на другом примере

  • @duke007x3
    @duke007x3 24 дні тому

    не, ну це просто ні**я собі. Красавчик!)

  • @seekerofsense
    @seekerofsense 24 дні тому

    Do you think switching to FE dev or DevOps from AQA is easier/faster? Which path is quicker and easier in your opinion? :)

  • @Octavia_Ragn
    @Octavia_Ragn 26 днів тому

    Спасибо тебе большое, Илларион❤ Всегда очень скептически относилась к урокам, где повествование прерывается всякими отступлениями, шуточками и прочим, НО ТЫ ПРОСТО ВЕЛИКОЛЕПЕН😎 Настолько всё живо и понятно рассказываешь, и главное, что всё всегда к месту и так хорошо запоминается! Я так рада, что нашла твои видео на просторах ютуба. Спасибо тебе большое, что сделал эти лекции доступными для всех))

  • @livestreams5673
    @livestreams5673 28 днів тому

    Топ лекция спасибо

  • @lyubovshcherbata2337
    @lyubovshcherbata2337 Місяць тому

    Чому "тест с'ют"? Англійською ж test suite (swi:t). С'ют - то костюм 🤔.

  • @marina_preshel
    @marina_preshel Місяць тому

    Илларион, огромное спасибо за Ваш труд! На 30ой странице конспекта закончилась ручка😂 Взяла другую - продолжаю ))

  • @marina_preshel
    @marina_preshel Місяць тому

    Илларион, спасибо большое за Ваши лекции. Прекрасная подача материала) Очень доступно и по делу! Мотивирует! После годового курса, только на Ваших лекциях пришло понимание, чем тестировщики должны заниматься в реальной жизни ))Проснулся реальный интерес к профессии❤ Благодарю Вас

  • @oblakaoblaka6457
    @oblakaoblaka6457 Місяць тому

    Illarion :) A couple of months ago I was preparing for the interviews for a middle+/senior automation position. Your advanced theory course helped me a lot to remember some things about testing theory that wasn't frequently used in daily tasks but interviewers still like digging deep in it. Anyway, it helped me a lot. My main automation experience was with Python but my new project is going to challenge me with TS Playwright automation from scratch. So here I am again to learn it with you. Thanks a lot for your effort! When someone asks me how to start learning testing - I always mention your channel. You're doing a great job.

  • @tanyavas2082
    @tanyavas2082 Місяць тому

    Илларион!!! Вы самый крутой !!!! Блин столько времени потеряла на просмотры других видео- надо было сразу начинать тебя смотреть!!! Супер понятно! Приятно смотреть на тебя - обаяние зашкаливает )) отличная подача материала. Я в восторге !

  • @HarkivZalizobeton
    @HarkivZalizobeton Місяць тому

    Дякую за відоси, просто і зрозуміло

  • @arteria-circumflexa6527
    @arteria-circumflexa6527 Місяць тому

    Смотрим, учим, конспектируем. Спасибо, бро!

  • @Marina-bh8iw
    @Marina-bh8iw Місяць тому

    лучшее объяснение эвер!

  • @user-xh8gn4lh2k
    @user-xh8gn4lh2k Місяць тому

    а где домашку смотреть? задания

  • @diasha_di
    @diasha_di Місяць тому

    ❤❤❤

  • @user-hn4bq2xx2d
    @user-hn4bq2xx2d Місяць тому

    I see yours videos - i make a "handshake"😉

  • @IlarionHalushka
    @IlarionHalushka Місяць тому

    Side note: at 24:00 I am showing the sequence of test hooks execution. This order might differ depending on the “fullyParallel” flag in playwright.config.ts In my case I have `fullyParallel: false` so it runs: first describe block, tests from first describe block one by one, then second describe block, and tests inside of second describe block one by one. If `fullyParallel` was to `true` then it would run `describe` and `test` blocks in parallel and the console output would be different. However, `beforeAll` and `afterAll` hooks always run once per `describe` and `beforeEach`, `afterEach` run before/after each `test`.

    • @prasannamallisetty7208
      @prasannamallisetty7208 Місяць тому

      Awesome video with detailed explanation with diagrams. I wish i found you on UA-cam earlier. Started going through all your videos. Awesome and kudos 🎉 to you

    • @prasannamallisetty7208
      @prasannamallisetty7208 Місяць тому

      W

  • @arteria-circumflexa6527
    @arteria-circumflexa6527 Місяць тому

    Спасибо, хоть и сумбурно, но объясняете хорошо, завлекает, самое главное.

    • @IlarionHalushka
      @IlarionHalushka Місяць тому

      спасибо!) лекции были подготовлены за пару вечеров после работы, поэтому последовательное изложение материала не гарантирую)) но начиная с 3 лекции, как по мне, уже лучше

    • @arteria-circumflexa6527
      @arteria-circumflexa6527 Місяць тому

      @@IlarionHalushka обучающийся обязан тоже прилагать усилия, поэтому Вы сделали очень многое для нас. Самое главное вложили, что смотреть и впитывать очень интересное, а потом и догуглить можно всё.

  • @user-fv7mm4tt1z
    @user-fv7mm4tt1z Місяць тому

    спасибо вам! по вашим видео я закрепляю пройденный материал и подготавливаюсь к собесам. У вас очень запоминающаяся и приятная манера подачи материала! Большое вам спасибо

    • @IlarionHalushka
      @IlarionHalushka Місяць тому

      спасибо за фидбек!) удачи в обучении

  • @pe4enbka130
    @pe4enbka130 Місяць тому

    Thank you for the quality content! After watching your testing videos, I was able to significantly increase my knowledge and get a job (everything you talked about came in handy). I started looking into automated testing and I already understand that the quality here is not inferior to the previous course.

    • @IlarionHalushka
      @IlarionHalushka Місяць тому

      niiiice, really happy for you 🔥 thanks for the feedback and good luck with learning automation

  • @yuliag996
    @yuliag996 Місяць тому

    Відповідь на запитання: "скільки запитів може відправити браузер на один домен?" 6?

    • @IlarionHalushka
      @IlarionHalushka Місяць тому

      ну якщо нічого не змінилося, то на один домен хром може надсилати в паралелі максимум 6 запитів. з гугла: "Each browser has a different default value for the maximum parallel connections. For example, in Google Chrome, the default value is 6 connections per domain. This means that Chrome will only make a maximum of 6 HTTP requests to a single domain at the same time."

  • @russellwallace2327
    @russellwallace2327 Місяць тому

    Promo_SM

  • @pavel_arabadzhy
    @pavel_arabadzhy Місяць тому

    Thanks for the new lesson, this topic is very important/useful and also interesting, looking forward to the next videos) Special thanks for showing the debug in jetbrains

    • @IlarionHalushka
      @IlarionHalushka Місяць тому

      indeed, very important across all languages and technologies. thank you, glad you liked it :)

  • @nikolay1669
    @nikolay1669 Місяць тому

    Здравствуйте! Не совсем понятно как повторить за вами если вы отправляете запрос на локальный сервер? Поэтому не хочу продолжать просто смотреть

    • @IlarionHalushka
      @IlarionHalushka Місяць тому

      можешь в интернете 100500 апишек со сваггером найти и для него постман коллекцию создать :) самый простой: petstore.swagger.io/

  • @andsps
    @andsps Місяць тому

    Илларион, благодарю за полезный и не имеющий аналогов контент. Ваш подход задавать наводящие вопросы, на мой взгляд, работает отлично и вопросы сами собой начинают возникать в голове. Кстати, подобный метод, если правильно помню, называется майевтика (или метод Сократа). В качестве пожелания: сделать видео по разбору тестовых заданий (подобного контента почти нет в Ютубе).

    • @IlarionHalushka
      @IlarionHalushka Місяць тому

      Да, была идея с тестовыми, но как-то руки не дошли. Сейчас хочу доснимать автоматизацию, а потом будет видно. Или тестирование мобилок или автоматизация апи, или действительно тестовые поделать лайв )) Спасибо за идею!

  • @ivankozenko9710
    @ivankozenko9710 Місяць тому

    A very short haircut and no beard - it makes you look younger 😄

  • @alexeline473
    @alexeline473 Місяць тому

    Great lesson, but I prefer the UI mode. It might be helpful for someone else too. Playwright's UI mode offers a graphical interface for recording and replaying interactions with a web page, which can assist in understanding how your tests behave and aid in debugging purposes. npx playwright test --ui

    • @IlarionHalushka
      @IlarionHalushka Місяць тому

      Thank you. I’ve covered -ui mode in previous videos. First time in Lesson 3 -23:14 Running in --ui mode. Please keep posting your suggestions or advices. Thank you again!

  • @littlebird6415
    @littlebird6415 Місяць тому

    ❤❤❤❤❤ It’s cool ! Give me a favor. Go on 😊

  • @seekerofsense
    @seekerofsense Місяць тому

    Топ контент і подача

  • @IlarionHalushka
    @IlarionHalushka Місяць тому

    Working with a debugger is a core skill that can be applied to any language/framework/code editor. Learn once - save a lot of time in the future.

  • @diasha_di
    @diasha_di Місяць тому

    ❤❤❤