Этот пост не защищает от зависимостей, но использует их экономно.

Можно добавить зависимость, которую вы не понимаете. Вот некоторые примеры:

  • NodeJS - это зависимость от вашей разработки, программисты редко понимают, как работает код, и им не обязательно писать его самостоятельно, если они этого хотят.
  • js-cookie - это зависимость, которая инкапсулирует, как работать с cookie-файлами браузера. Вам не нужно знать все нюансы RFC 6265, если вы хотите эффективно кодировать / декодировать значения. На это у вас уйдет много дней. На самом деле, вам даже следует избегать файлов cookie в своем приложении, если это возможно, но это отдельная история.
  • Eslint допускает некоторый статический анализ вашего кода, который полезен, чтобы убедиться, что вы не делаете некоторых типичных ошибок, и обеспечить согласованность кодовой базы.
  • TypeScript полезен, чтобы убедиться, что вы не измените типы ввода и вывода ваших функций по ошибке.

Но теперь, когда вы коснулись Redux ...

Redux - это библиотека, которая неправильно реализует архитектуру Event Sourcing, что делает ее менее надежной и менее расширяемой. Redux (как пакет) связывает вас с управлением версиями, мы все знаем, что произойдет, если вы начнете связывать свою основную архитектуру с библиотекой или фреймворком поставщика: цена изменений.

Источники событий могут быть реализованы поэтапно, в то время как для Redux вы либо получаете все функции, либо нет. Чтобы изменить Redux, вам нужно изменить другой репозиторий и, если сопровождающие согласны с изменениями, обновить версию в вашем проекте. Все это просто для того, чтобы изменить код вашего основного приложения, потому что он привязан к этому поставщику.

Поиск событий настолько абстрактен, что для этого не нужны никакие инструменты.

Это может быть нормально, если вы - агентство, которое хочет ускорить работу и впоследствии создать одноразовый код, но Redux определенно не масштабируется для каждого отдельного варианта использования. Это звучит непопулярно, но представьте, что вы говорили то же самое о двусторонней привязке Angular много лет назад? Люди бы назвали тебя сумасшедшим. Теперь люди используют React, чтобы избежать всей этой магии Angular. То же самое и с Redux сегодня.

Людям может потребоваться некоторое время, чтобы заметить, что есть компромиссы для добавления зависимостей и что они применимы не во всех обстоятельствах. Однако эти компромиссы могут быть не так очевидны для всех.

Всегда стремитесь сократить количество кода.

Я бы предпочел не пытаться уменьшить только код, но также и сложность времени выполнения, включая зависимости.