Используй библиотеки с умом!
Сложно представить современную разработку без сторонних библиотек. Они помогают нам сэкономить время, избежать множества проблем, с которыми мы бы столкнулись, если бы писали код без использования этой библиотеки, повысить качество кода. И они же с нами могут сыграть злую шутку как при обучении, так и в повседневной работе. Почему? Потому что основная беда сторонних библиотек состоит в том, что вы не контролируете изменения в ней.
“Библиотека is-promise состоит из двух строк кода, а разработчики могут использовать её в своих проектах с помощью однострочного вызова.
Предназначение библиотеки состоит в проверке, что JavaScript-объект является типом Promise, то есть представляет собой конечное завершение асинхронной операции и её результирующее значение.
При использовании в продакшне функция isPromise возвращает логический результат yes или no.
Но оказалось, что is-promise версии 2.2.0 не соответствует стандартам модуля ES. Как только вышло обновление, проекты, которые использовали is-promise внутри цепочки сборки, начали выдавать ошибку при сборке из-за неправильной поддержки ES-модуля. Сбой библиотеки мгновенно отразился на множестве проектов: от проприетарных проектов с закрытой кодовой базой до некоторых крупнейших опенсорсных проектов экосистемы JavaScript. (с) Habr”
Если вы не работаете в RocketScience (условно говоря, фирме, которая стоит на краю технологий, прокладывая путь другим), то проблема, с которой вы столкнулись, скорее всего, уже кем-то решена, и для нее есть решение в виде библиотеки. И очень заманчиво не разбираться самому, а использовать уже готовое решение, записав “разобраться как работает эта библиотека” в технический долг. И это нас может привести к ситуации, которая описана выше. Поэтому, я рекомендую вывести несколько правил.
Правило № 1: Прежде чем использовать библиотеку, нужно ответить на вопрос: “А нужна ли она мне? Сколько это мне сэкономит времени? Сколько будет стоить написать все самому?”
На курсе Java QA студенты часто используют библиотеку WebDriverManager. Безусловно, она очень удобна, ведь нам не надо самому скачивать webdriver, прописывать его в Path…
И поэтому у студентов, которые прочитали best practice, посмотрели видео на YouTube и используют данную библиотеку, возникает большой пробел в этой теме. И когда они по каким-то причинам не могут использовать данную библиотеку, возникают трудности. Ведь до этого данную проблему решала библиотека, а теперь ее нельзя использовать. Следовательно, второе правило, которое я предлагаю вывести, будет звучать так:
Правило № 2: Какую проблему решает эта библиотека? Могу ли я решить ее сам, без использования данной библиотеки?
Если на вторую часть вопроса вы можете ответить положительно, -- смело используйте. Иначе -- это повод задуматься.
Однако не стоит впадать и в другую крайность -- ЯСделаюСам. Безусловно, рано или поздно вы сможете сделать свой аналог фреймворка Spring или Selenium, но сколько это займет времени? Будет ли он такого же качества? Ведь у популярных фреймворков большое коммьюнити, которое помогает искать ошибки и развивать данный проект. Вы уверены, что сможете написать код такого же качества?
Правило № 3: Старайтесь соблюдать “золотую середину”, между своими реализациями и сторонними библиотеками. Где можно -- написать самому. Где необходимо -- скачать готовую.
Данное правило осложняется тем, что грань между “можно” и “необходимо” очень размыта. Ведь самому можно написать все, а сделать задачу нужно еще вчера, поэтому необходимо использовать библиотеку для скорости. Но данное понимание приходит с опытом (в том числе и с негативным).